[РЕШЕНО] iproute2 не видит меток iptables
LinAdmin 9 декабря, 2011 - 09:36
Всем привет!
Я столкнулся со странной проблемой. iptables маркирует пакеты, но фильтры iproute2 не видят меток. Я уже все что можно включил в ядре в секции network options, но это никак не решило проблему. Вот что я делал:
В iptables пишу следующие правила: iptables -t mangle -A PREROUTING -p tcp -m tcp -m state -i eth1 --dport 49152:65534 --state NEW,ESTABLISHED,RELATED -j MARK --set-mark 0x10 iptables -t mangle -A PREROUTING -p tcp -m tcp -m state -i eth1 --dport 21 --state NEW,ESTABLISHED,RELATED -j MARK --set-mark 0x10 Вот настройки iproute2: tc qdisc del dev eth1 root tc qdisc add dev eth1 root handle 1: htb tc class add dev eth1 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit tc class add dev eth1 parent 1:1 classid 1:10 htb rate 100Mbit ceil 100Mbit tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 0x10 fw classid 1:10 Вот вывод iptables, где видно что пакеты маркируются нормально: HOSTROUTER_1 ~ # iptables -nvL -t mangle Chain PREROUTING (policy ACCEPT 885K packets, 674M bytes) pkts bytes target prot opt in out source destination 56557 17M MARK tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:49152:65534 state NEW,RELATED,ESTABLISHED MARK set 0x10 5 240 MARK tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 state NEW,RELATED,ESTABLISHED MARK set 0x10 Вот вывод iproute2: HOSTROUTER_1 ~ # tc -s class show dev eth1 class htb 1:10 parent 1:1 prio 0 rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 2000 ctokens: 2000 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 2000 ctokens: 2000 Здесь видно что пакеты в фильтр не попадают.
Здесь eth1 это сетевая карта смотрящая в офис, в интернет смотрит eth0. Сеть офиса 192.168.1.0/24, работает NAT. Через маркировки я хотел реализовать разделение трафика по приоритетам в частности выделить трафик FTP, долго мучился пока не понял что iproute2 не видит маркировки.
Вот информация о системе:
HOSTROUTER_1 ~ # cat /etc/gentoo-release Calculate Directory Server 11.12 HOSTROUTER_1 ~ # uname -a Linux HOSTROUTER_1 3.1.2-calculate #2 SMP Fri Dec 9 10:34:30 IRKT 2011 x86_64 AMD Athlon(tm) II X2 240e Processor AuthenticAMD GNU/Linux HOSTROUTER_1 ~ # iptables --version iptables v1.4.12.1 HOSTROUTER_1 ~ # emerge -pv iproute2 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-apps/iproute2-3.1.0 USE="berkdb atm -minimal" 0 kB
Кто знает в чем проблема подскажите пожалуйста, а то я уже и не знаю куда копать...
»
- Для комментирования войдите или зарегистрируйтесь
.
Не совсем понятно, чего хочет добиться ТС.
iptables маркирует пакеты, входящие на eth1, а tc работает с пакетами, уходящими с eth1. Какие марки он должен увидеть в этом случае?
Спасибо, разобрался. Глупую
Спасибо, разобрался. Глупую ошибку допустил.)
Проблема решена.
Если ничего не помогает, прочти наконец инструкцию...