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

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 пробовал собрать из исходников, результат тот же.

Share this post


Link to post
Share on other sites

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

# /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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

EMATCH_U32 ?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Edited by pavel.odintsov

Share this post


Link to post
Share on other sites

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

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

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