服务器有2个接口:
它在这两个networking之间路由stream量。 任务是将这两个networking之间的带宽限制为1Vbit / sec,但不限制服务器和networking主机之间的带宽(即限制所有数据包通过FORWARD)
iptables -t mangle -A POSTROUTING -s 13.0.0.0/24 -d 172.20.203.0/24 -j MARK --set-mark 0x0001 iptables -t mangle -A POSTROUTING -s 172.20.203.0/24 -d 13.0.0.0/24 -j MARK --set-mark 0x0002 # eth1 tc qdisc add dev eth1 root handle 1:0 htb default 2 tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1000mbps ceil 1000mbps tc class add dev eth1 parent 1:1 classid 1:2 htb rate 999mbps ceil 1000mbps tc class add dev eth1 parent 1:1 classid 1:3 htb rate 1mbps tc qdisc add dev eth1 parent 1:2 handle 2:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10 tc filter add dev eth1 parent 1:0 handle 1 fw flowid 1:3 tc filter add dev eth1 parent 1:0 handle 2 fw flowid 1:3 # eth0 tc qdisc add dev eth0 root handle 1:0 htb default 2 tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1000mbps ceil 1000mbps tc class add dev eth0 parent 1:1 classid 1:2 htb rate 999mbps ceil 1000mbps tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1mbps tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10 tc filter add dev eth0 parent 1:0 handle 2 fw flowid 1:3 tc filter add dev eth0 parent 1:0 handle 1 fw flowid 1:3
这不起作用。 如果我在开始时使用这个:
tc qdisc add dev eth1 root handle 1:0 htb default 3 tc qdisc add dev eth0 root handle 1:0 htb default 3
有用。 所以问题是在filter设置。
iptables -L -v -n -t mangle
显示,数据包正在通过MARK规则。 我试图标记包不在POSTROUTING,但在前进或PREROUTING – 这不工作了。 我究竟做错了什么?
这里是一些诊断:
# tc -s -d -r filter show dev eth0 filter parent 1: protocol [768] pref 49151 fw filter parent 1: protocol [768] pref 49151 fw handle 0x1 classid 1:3 filter parent 1: protocol [768] pref 49152 fw filter parent 1: protocol [768] pref 49152 fw handle 0x2 classid 1:3 # tc -s -d -r filter show dev eth1 filter parent 1: protocol [768] pref 49151 fw filter parent 1: protocol [768] pref 49151 fw handle 0x2 classid 1:3 filter parent 1: protocol [768] pref 49152 fw filter parent 1: protocol [768] pref 49152 fw handle 0x1 classid 1:3
modprobe xt_mark
如果模块没有加载,iptables不会出现错误,但规则“-j MARK”不起作用