|
||||
|
Глава 11. netfilter и iproute – маркировка пакетов.До сих пор мы детально разбирались с работой iproute и лишь вскользь упомянули netfilter. Теперь настало самое время поговорить о нем. Для начала рекомендую вам прочитать Remarkably Unreliable Guides. Netfilter позволяет выполнять фильтрацию трафика и вносить изменения в заголовки пакетов. Одна из замечательных особенностей netfilter — это возможность устанавливать числовые метки на пакеты. Например, следующее правило пометит все пакеты, отправляемые на порт 25: # iptables –A PREROUTING –i eth0 –t mangle –p tcp –dport 25 \ –j MARK –set-mark 1 Допустим, что у нас имеется два подключения к Интернет — одно быстрое, но дорогое, другое медленное, зато дешевое. Естественно, что мы предпочтем отправлять почту по дешевому маршруту. Командой выше, мы уже пометили все пакеты исходящей почты числовой меткой — 1, теперь попробуем направить эти пакеты по дешевому маршруту: # echo 201 mail.out >> /etc/iproute2/rt_tables # ip rule add fwmark 1 table mail.out # ip rule ls 0: from all lookup local 32764: from all fwmark 1 lookup mail.out 32766: from all lookup main 32767: from all lookup default и зададим пусть и медленный, зато недорогой маршрут в таблице mail.out: # /sbin/ip route add default via 195.96.98.253 dev ppp0 table mail.out Это собственно все, что нам пришлось сделать! Если нужно сделать исключения для отдельных хостов, то можно несколько модифицировать набор правил для netfilter, пропуская пакеты с отдельных хостов без метки, или можно добавить правило с более низким приоритетом, которое отправляет отдельные хосты через таблицу main. Можно так же использовать поле TOS, в заголовке пакета, задавая различный тип обслуживания для трафика различного рода, и создавая правила, которые реагируют на это поле. Само собой разумеется, все это прекрасно работает и на хостах, под NAT ('masquerading').
См. так же раздел Прозрачное проксирование с помощью netfilter, iproute2, ipchains и squid. |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх | ||||
|