Jump to content
Калькуляторы

IMQ Linux На ядрах больше 2.6.30 У кого нибудь работает?

Обновил ядро с 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)

 

 

Share this post


Link to post
Share on other sites

Неужели никто не использует IMQ?

Share this post


Link to post
Share on other sites

А зачем? Мучиться патчить ядро, если есть более правильная (?) реализация - ifb

Share this post


Link to post
Share on other sites
Неужели никто не использует 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

Share this post


Link to post
Share on other sites
Неужели никто не использует 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

Share this post


Link to post
Share on other sites

А что за модуль такой xt_IMQ ?

У меня только

lsmod

 

Module Size Used by

imq 4448 0

 

Share this post


Link to post
Share on other sites

А что за модуль такой xt_IMQ ?

Это TARGET-модуль IPTables для IMQ-устройства. Например, как в вышеприведенном примере.

Share this post


Link to post
Share on other sites
А что за модуль такой xt_IMQ ?
Это TARGET-модуль IPTables для IMQ-устройства. Например, как в вышеприведенном примере.

А какие патчи для ядра и iptables вы использовали? можно ссылки?

Share this post


Link to post
Share on other sites
А какие патчи для ядра и 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

Share this post


Link to post
Share on other sites
А какие патчи для ядра и 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 by SSTS

Share this post


Link to post
Share on other sites
А какие патчи для ядра и 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

Спасиба БОЛЬШОЕ, буду пробовать

Попробовал, все тоже самое. Может я где-то туплю :(

Share this post


Link to post
Share on other sites

Попробовал, все тоже самое. Может я где-то туплю :(

Покажи как поднимаешь сам IMQ-интерфейс и перенаправляешь в него трафик в IPTables.

Share this post


Link to post
Share on other sites
Попробовал, все тоже самое. Может я где-то туплю :(
Покажи как поднимаешь сам 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

 

 

Правила отрабатывают. Но трафик через эти вланы перестает бегать. Хотя счетчики на правилах увеличиваются

 

Share this post


Link to post
Share on other sites

У меня всё работает:

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 by nickD

Share this post


Link to post
Share on other sites
А зачем? Мучиться патчить ядро, если есть более правильная (?) реализация - ifb

Вы сначала расскажите как подружить NAT с ifb.

По мне я бы вообще из ядра эту правильную реализацию выкинул, а неправильный imq втавил.

Share this post


Link to post
Share on other sites
У меня всё работает:

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.diff

patching 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 by SSTS

Share this post


Link to post
Share on other sites
Попробовал, все тоже самое. Может я где-то туплю :(
Покажи как поднимаешь сам 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

 

Share this post


Link to post
Share on other sites
У тебя в примере все работает в 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

Share this post


Link to post
Share on other sites
У тебя в примере все работает в 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 есть?

 

Share this post


Link to post
Share on other sites
А 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

Share this post


Link to post
Share on other sites
А 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 внешний интерфейс?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this