SSTS Posted December 14, 2009 Posted December 14, 2009 Обновил ядро с linux-2.6.24.4 до 2.6.30.8, перестал работать IMQ Использовал для ядра linux-2.6.30.8-imq-test2.diff Для iptables iptables-1.4.3.2-imq.patch Естественно версии ядра и таблеса совпадают с патчами. Все пропатчилось-собралось, делаю /usr/sbin/ip link set imq0 up, все ок но после iptables -t mangle -A POSTROUTING -o eth0.468 -d ! 91.ххх.ххх.0/22 -j IMQ --todev 0 пакеты перестают ходить через eth0.468, хотя ifconfig показывает что пакеты вроде как есть на TX|RX eth0.468 Link encap:Ethernet HWaddr 00:1B:21:48:3E:70 inet addr:77.ххх.ххх.50 Bcast:77.ххх.ххх.51 Mask:255.255.255.252 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:245287 errors:0 dropped:0 overruns:0 frame:0 TX packets:221880 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:11503561 (10.9 MiB) TX bytes:11414872 (10.8 MiB) Вставить ник Quote
SSTS Posted December 14, 2009 Author Posted December 14, 2009 Неужели никто не использует IMQ? Вставить ник Quote
a0d75 Posted December 14, 2009 Posted December 14, 2009 А зачем? Мучиться патчить ядро, если есть более правильная (?) реализация - ifb Вставить ник Quote
Iva Posted December 15, 2009 Posted December 15, 2009 Неужели никто не использует IMQ?С простыми, не-vlan интерфейсами всё замечательно работает: >uname -rms Linux 2.6.30.9-96.fc11.2.iva.i686.PAE i686 >lsmod | grep -i imq imq 4768 428 xt_IMQ 1552 2 >iptables -t mangle -nvxL PREROUTING Chain PREROUTING (policy ACCEPT 114811103366 packets, 108555888264746 bytes) pkts bytes target prot opt in out source destination 34547502076 23500816073489 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 match-set ua dst /* UA Out */ MARK xset 0xc9/0xffffffff 34547502076 23500816073489 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 IMQ: todev 0 34547502076 23500816073489 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 23438007475 15606338680336 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 /* World Out */ MARK xset 0xca/0xffffffff 23438007475 15606338680336 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xca IMQ: todev 0 >ifconfig imq0 imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16000 Metric:1 RX packets:889360036 errors:0 dropped:0 overruns:0 frame:0 TX packets:771415405 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:11000 Вставить ник Quote
SSTS Posted December 15, 2009 Author Posted December 15, 2009 Неужели никто не использует IMQ?С простыми, не-vlan интерфейсами всё замечательно работает: А с vlan пробывали? >uname -rms Linux 2.6.30.9-96.fc11.2.iva.i686.PAE i686 >lsmod | grep -i imq imq 4768 428 xt_IMQ 1552 2 >iptables -t mangle -nvxL PREROUTING Chain PREROUTING (policy ACCEPT 114811103366 packets, 108555888264746 bytes) pkts bytes target prot opt in out source destination 34547502076 23500816073489 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 match-set ua dst /* UA Out */ MARK xset 0xc9/0xffffffff 34547502076 23500816073489 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 IMQ: todev 0 34547502076 23500816073489 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 23438007475 15606338680336 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 /* World Out */ MARK xset 0xca/0xffffffff 23438007475 15606338680336 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xca IMQ: todev 0 >ifconfig imq0 imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16000 Metric:1 RX packets:889360036 errors:0 dropped:0 overruns:0 frame:0 TX packets:771415405 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:11000 Вставить ник Quote
SSTS Posted December 15, 2009 Author Posted December 15, 2009 А что за модуль такой xt_IMQ ? У меня только lsmod Module Size Used by imq 4448 0 Вставить ник Quote
Iva Posted December 15, 2009 Posted December 15, 2009 А что за модуль такой xt_IMQ ? Это TARGET-модуль IPTables для IMQ-устройства. Например, как в вышеприведенном примере. Вставить ник Quote
SSTS Posted December 16, 2009 Author Posted December 16, 2009 А что за модуль такой xt_IMQ ?Это TARGET-модуль IPTables для IMQ-устройства. Например, как в вышеприведенном примере. А какие патчи для ядра и iptables вы использовали? можно ссылки? Вставить ник Quote
Iva Posted December 16, 2009 Posted December 16, 2009 А какие патчи для ядра и iptables вы использовали? можно ссылки?Патчи и spec-файлы для kernel (добавлены ACCOUNT, IMQ, IPSet; исправлены nf_nat, xt_connlimit, pkt_sched), iptables (добавлены ACCOUNT, IMQ, IPSet) и iproute (исправлен tc_core) из Fedora 11. kernel.tar.gz iptables.tar.gz iproute.tar.gz Вставить ник Quote
SSTS Posted December 16, 2009 Author Posted December 16, 2009 (edited) А какие патчи для ядра и iptables вы использовали? можно ссылки?Патчи и spec-файлы для kernel (добавлены ACCOUNT, IMQ, IPSet; исправлены nf_nat, xt_connlimit, pkt_sched), iptables (добавлены ACCOUNT, IMQ, IPSet) и iproute (исправлен tc_core) из Fedora 11. kernel.tar.gz iptables.tar.gz iproute.tar.gz Спасиба БОЛЬШОЕ, буду пробовать Edited December 16, 2009 by SSTS Вставить ник Quote
SSTS Posted December 17, 2009 Author Posted December 17, 2009 А какие патчи для ядра и iptables вы использовали? можно ссылки?Патчи и spec-файлы для kernel (добавлены ACCOUNT, IMQ, IPSet; исправлены nf_nat, xt_connlimit, pkt_sched), iptables (добавлены ACCOUNT, IMQ, IPSet) и iproute (исправлен tc_core) из Fedora 11. kernel.tar.gz iptables.tar.gz iproute.tar.gz Спасиба БОЛЬШОЕ, буду пробовать Попробовал, все тоже самое. Может я где-то туплю :( Вставить ник Quote
Iva Posted December 17, 2009 Posted December 17, 2009 Попробовал, все тоже самое. Может я где-то туплю :( Покажи как поднимаешь сам IMQ-интерфейс и перенаправляешь в него трафик в IPTables. Вставить ник Quote
SSTS Posted December 17, 2009 Author Posted December 17, 2009 Попробовал, все тоже самое. Может я где-то туплю :(Покажи как поднимаешь сам IMQ-интерфейс и перенаправляешь в него трафик в IPTables. /usr/sbin/ip link set imq0 up ifconfig imq0 imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16000 Metric:1 RX packets:27426 errors:0 dropped:0 overruns:0 frame:0 TX packets:20437 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:11000 RX bytes:2152967 (2.0 MiB) TX bytes:1700377 (1.6 MiB) iptables -t mangle -A POSTROUTING -o eth0.469 ! -d 91.xxx.xxx.0/22 -j IMQ --todev 0 iptables -t mangle -A POSTROUTING -o eth0.470 ! -d 91.xxx.xxx.0/22 -j IMQ --todev 0 Правила отрабатывают. Но трафик через эти вланы перестает бегать. Хотя счетчики на правилах увеличиваются Вставить ник Quote
nickD Posted December 17, 2009 Posted December 17, 2009 (edited) У меня всё работает: kernel 2.6.30.5 iptables v1.4.5 -A POSTROUTING -o vlan0100 -j IMQ --todev 0 -A PREROUTING -i vlan0100 -j IMQ --todev 1 modprobe imq ip link set imq0 up ip link set imq1 up может где то в tc у тебя заморочка. А iptables пачил типа вот так? patch -p1 < ./iptables-1.4.3.2-imq_xt.diff chmod +x /usr/src/sys/iptables-1.4.5/extensions/.IMQ-testx Edited December 17, 2009 by nickD Вставить ник Quote
nickD Posted December 17, 2009 Posted December 17, 2009 А зачем? Мучиться патчить ядро, если есть более правильная (?) реализация - ifb Вы сначала расскажите как подружить NAT с ifb. По мне я бы вообще из ядра эту правильную реализацию выкинул, а неправильный imq втавил. Вставить ник Quote
SSTS Posted December 17, 2009 Author Posted December 17, 2009 (edited) У меня всё работает:kernel 2.6.30.5 iptables v1.4.5 -A POSTROUTING -o vlan0100 -j IMQ --todev 0 -A PREROUTING -i vlan0100 -j IMQ --todev 1 modprobe imq ip link set imq0 up ip link set imq1 up может где то в tc у тебя заморочка. tc я еще даже и не трогал еще А iptables пачил типа вот так? patch -p1 < ./iptables-1.4.3.2-imq_xt.diff chmod +x /usr/src/sys/iptables-1.4.5/extensions/.IMQ-testx patch -p1 < ./iptables-1.4.3.2-imq_xt.diffpatching file extensions/.IMQ-testx patching file extensions/libxt_IMQ.c patching file include/linux/netfilter/xt_IMQ.h chmod +x extensions/.IMQ-testx ls -al extensions/ | grep IMQ -rwxr-xr-x 1 root root 113 2009-12-17 15:19 .IMQ-testx* -rw-r--r-- 1 root root 2483 2009-12-17 15:19 libxt_IMQ.c ./configure make ls -al extensions/ | grep IMQ -rwxr-xr-x 1 root root 113 2009-12-17 15:19 .IMQ-testx* -rw-r--r-- 1 root root 183 2009-12-17 15:22 .libxt_IMQ.oo.d -rw-r--r-- 1 root root 2483 2009-12-17 15:19 libxt_IMQ.c -rw-r--r-- 1 root root 10104 2009-12-17 15:22 libxt_IMQ.oo -rwxr-xr-x 1 root root 12259 2009-12-17 15:22 libxt_IMQ.so* make install iptables -V iptables v1.4.5 iptables -t mangle -A POSTROUTING -o eth0.468 -s 0/0 -m set ! --set LOCAL_NETS dst -j IMQ --todev 0 iptables -L POSTROUTING -n -v -t mangle Chain POSTROUTING (policy ACCEPT 1462M packets, 1153G bytes) pkts bytes target prot opt in out source destination 178 8000 IMQ all -- * eth0.468 0.0.0.0/0 0.0.0.0/0 ! match-set LOCAL_NETS dst IMQ: todev 0 ifconfig imq0 imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16000 Metric:1 RX packets:27449 errors:0 dropped:0 overruns:0 frame:0 TX packets:20460 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:11000 RX bytes:2154459 (2.0 MiB) TX bytes:1701869 (1.6 MiB) ifconfig eth0.468 eth0.468 Link encap:Ethernet HWaddr 00:1B:21:48:3E:70 inet addr:77.xx.xxx.50 Bcast:77.xx.xxx.51 Mask:255.255.255.252 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4567 errors:0 dropped:0 overruns:0 frame:0 TX packets:2787 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:218350 (213.2 KiB) TX bytes:144006 (140.6 KiB) ping 77.xx.xxx.49 PING 77.xx.xxx.49 (77.88.206.49) 56(84) bytes of data. ^C --- 77.xx.xxx.49 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3000ms ^^^^^^^^^^^^^^^^^^^^^^ :( В том-то и дело что это происходит еще до того как я начинаю строить правила tc tc -s -d qdisc ls dev imq0 qdisc pfifo_fast 0: root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 Sent 1244 bytes 19 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 Edited December 18, 2009 by SSTS Вставить ник Quote
SSTS Posted January 14, 2010 Author Posted January 14, 2010 Попробовал, все тоже самое. Может я где-то туплю :(Покажи как поднимаешь сам IMQ-интерфейс и перенаправляешь в него трафик в IPTables. У тебя в примере все работает в PREROUTING. У тебя есть NAT ? А как у тебя собран IMQ AA AB BA или ВВ У меня CONFIG_IMQ=y # CONFIG_IMQ_BEHAVIOR_AA is not set # CONFIG_IMQ_BEHAVIOR_AB is not set CONFIG_IMQ_BEHAVIOR_BA=y # CONFIG_IMQ_BEHAVIOR_BB is not set Вставить ник Quote
Iva Posted January 14, 2010 Posted January 14, 2010 У тебя в примере все работает в PREROUTING. У тебя есть NAT ? А как у тебя собран IMQ >grep IMQ /boot/config-2.6.30.9-102.fc11.1.iva.i686.PAE CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 Вставить ник Quote
SSTS Posted January 14, 2010 Author Posted January 14, 2010 У тебя в примере все работает в PREROUTING. У тебя есть NAT ? А как у тебя собран IMQ >grep IMQ /boot/config-2.6.30.9-102.fc11.1.iva.i686.PAE CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 А NAT есть? Вставить ник Quote
Iva Posted January 15, 2010 Posted January 15, 2010 А NAT есть?Есть: *nat :POSTROUTING ACCEPT [0:0] [0:0] -A POSTROUTING -o eth0 -s 10.0.0.0/8 -j SNAT --to-source x.y.z.1-x.y.z.254 --persistent COMMIT Вставить ник Quote
SSTS Posted January 15, 2010 Author Posted January 15, 2010 А NAT есть?Есть: *nat :POSTROUTING ACCEPT [0:0] [0:0] -A POSTROUTING -o eth0 -s 10.0.0.0/8 -j SNAT --to-source x.y.z.1-x.y.z.254 --persistent COMMIT eth0 внешний интерфейс? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.