У меня есть 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