Перейти к содержимому
Калькуляторы

debian8, не работают hash таблицы в tc

Стоял себе у нас debian 7, все прекрасно работало, решили обновить до debian 8, обновили, вроде все ок, но через некоторое время обнаружили, что шейпер то не работает.

/sbin/modprobe ifb numifbs=3
/sbin/ip link set up ifb0 mtu 9000 txqueuelen 10000
/sbin/tc qdisc del dev ifb0 root
/sbin/tc qdisc add dev ifb0 root handle 1: htb
/sbin/tc class add dev ifb0 parent 1: classid 1:1 htb rate 200000000kbit
/sbin/tc class add dev ifb0 parent 1:1 classid 1:2 htb rate 1512000kbit prio 1
/sbin/tc class add dev ifb0 parent 1:1 classid 1:3 htb rate 153600kbit prio 7
/sbin/ip link set up ifb1 mtu 9000 txqueuelen 10000
/sbin/tc qdisc del dev ifb1 root
/sbin/tc qdisc add dev ifb1 root handle 1: htb
/sbin/tc class add dev ifb1 parent 1: classid 1:1 htb rate 200000000kbit
/sbin/tc class add dev ifb1 parent 1:1 classid 1:2 htb rate 1512000kbit prio 1
/sbin/tc class add dev ifb1 parent 1:1 classid 1:3 htb rate 153600kbit prio 7

/sbin/tc filter add dev ifb0 parent 1:0 prio 5 protocol ip u32
/sbin/tc filter add dev ifb0 parent 1:0 prio 5 handle 10: protocol ip u32 divisor 256

собственно на последней строке выдает

# /sbin/tc filter add dev ifb0 parent 1:0 prio 5 handle 10: protocol ip u32 divisor 256
RTNETLINK answers: Invalid argument
We have an error talking to the kernel

 

# uname -a
Linux rd2 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) i686 GNU/Linux

iproute2 пробовал собрать из исходников, результат тот же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

собственно на последней строке выдает

# /sbin/tc filter add dev ifb0 parent 1:0 prio 5 handle 10: protocol ip u32 divisor 256
RTNETLINK answers: Invalid argument
We have an error talking to the kernel

 

# uname -a
Linux rd2 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) i686 GNU/Linux

iproute2 пробовал собрать из исходников, результат тот же.

 

08d753b8c57e5ce46d347225102c4126.png

 

Поддержка в ядре есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как в конфиге опция выглядит? ядро дистрибутивное.

root@rd2:~# cat /boot/config-3.16.0-4-686-pae | grep -i hash
CONFIG_NFT_HASH=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPMARK=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_SECURITY_APPARMOR_HASH=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
# Hash modes
CONFIG_CRYPTO_GHASH=m
CONFIG_CRYPTO_USER_API_HASH=m
root@rd2:~# cat /boot/config-3.16.0-4-686-pae | grep -i u32
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_EMATCH_U32=m

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

погуглил, CONFIG_NET_CLS_U32 включена, модуль cls_u32 загружен.

root@rd2:~# lsmod | grep u32
cls_u32                16856  0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

погуглил, CONFIG_NET_CLS_U32 включена, модуль cls_u32 загружен.

root@rd2:~# lsmod | grep u32
cls_u32                16856  0

 

EMATCH_U32 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

em_u32 я правильно понял? загрузил модуль, ничего не поменялось, в тоже время правила создаются у меня на ноуте(убунта 14.04) без этого модуля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что за критическая надобность переходить на jessie?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Например route cache в Wheeze. Выпил которого был успешно осуществлен в районе 3/14го ядра. В итоге апгрейд на Джесси дает 2-3х кратное падение нагрузки на роутер.

Изменено пользователем pavel.odintsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

https://bugzilla.kernel.org/show_bug.cgi?id=84661

Похоже вот он баг, все работает, но не работает вывод правил. А я и не проверил то на практике, заббикс мне сказал что отсутсвуют tc rules в нужном кол-ве и я поверил ему, что они не добавились. А по факту оказалось, что все шейпится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще один повод не использовать 32 битные ядра :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.