Назад | Перейти на главную страницу

Имитация медленного соединения с tc

У меня есть Linux-сервер (Centos 5.5), на котором я хочу ограничить сетевой трафик. У меня есть приложение, которое мы раздаем клиентам, и я хочу протестировать его на минимальной рекомендованной пропускной способности 256 Мбит / сек. До сих пор уроки tc, которые я видел, похоже, позволяют ограничивать пропускную способность в соответствии с определенными критериями, но я хочу ограничить пропускную способность во всех ситуациях (со всех IP-адресов, независимо от того, как выглядит IP-заголовок и т.

В одном руководстве предлагалось использовать:

tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

но я получаю следующую ошибку:

Unknown filter "flowid", hence option 10:2 is unparsable

Есть идеи о том, как ограничить пропускную способность, входящую / исходящую из eth0, при любых обстоятельствах?

Если вы хотите применить ограничение ко всему исходящему трафику, вам вообще не нужны фильтры. Просто добавьте свой qdisc в корневой дескриптор интерфейса следующим образом:

tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

Если вы хотите формировать / контролировать входящий трафик, это немного сложнее. Вам нужно будет использовать, например, интерфейс IFB:

modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
#  ^- this is a dummy filter, match u32 0 0 matches all traffic
tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

Вот другой подход, использующий два простых фильтра:

tc qdisc add dev eth0 ingress
tc filter add dev eth0 root         protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1

Это может быть немного за пределами ваших возможностей, но WAN-emu очень хорошо эмулирует среды со странными требованиями к пропускной способности и задержке [1]

[1]: http://speed.cis.nctu.edu.tw/wanemu/ WAN-emu

Вы добавили 1 линейку, как это tc qdisc add dev eth0 root handle 10: htb default 20

после того, как ты

tc filter добавить dev протокол eth0 ip родитель 10: prio 2 flowid 10: 2