Документация
Releases
База знаний
Примеры конфигурации
|
|
Правила для data-source
В случае использование FreeBSD правила должны выглядеть следующим образом:
Случай использования "честных" адресов:
rule number "ip from any to any via ifname"
где:
number - относительно любой номер правила в таблице ipfw, например 100
ifname - название внешнего интерфейса, через который трафик идет к провайдеру
Случай использования "левых" адресов и их трансляции:
rule number1 "ip from any to any via ifname"
rule number2 "ip from any to any via ifname"
где:
number1 и number2 - номера правил в таблице ipfw, так чтобы ваше правило по трансляции адресов (заворот пакетов в divert socket NATD) имело номер МЕЖДУ НИМИ.
ifname - название внешнего интерфейса, через который трафик идет к провайдеру
Это сделано для того, чтобы учитывать трафик на не оттранслированные адреса.
В случае Linux, независимо от наличия трансляции адресов (маскарадинга), правила имеют вид:
rule number1 "INPUT -p all -j QUEUE"
rule number2 "FORWARD -p all -j QUEUE"
rule number3 "OUTPUT -p all -j QUEUE"
причем номера number1, 2 и 3 совершенно произвольные так как никак не используются.
Этими действиями выполняется следующее: вы задаете правила для ipfw/iptables, по которым пакеты ядром направляются пихаются в некую виртуальную трубу (которая называется queue), откуда их потом берет программа, прокачивает через себя (смотря на заголовки и делая подсчет) и отдает обратно в систему, после чего они спокойно идут себе дальше.
ВАЖНО!!!
Если вы остановили программу так что она не смогла после себя убрать эти поставленные правила (через kill -9) или она сама неожиданно померла, то все пакеты по прежнему система будет заворачивать туда откуда их никто не заберет, и они пропадут. С точки зрения системы это будет выглядеть как полная потеря работы с сетью. НИКОГДА не экспериментируйте с этим сидя за удаленной машиной. Тренируйтесь непосредственно за консолью, или в крайнем случае на icmp-трафике. Сделайте для доступа "дырку" перед всеми правилами, пропускающую для вас SSH. Это не касается data-source других (неблокирующих) типов, например libpcap или netflow.
|