使用TC进行Linux流量整形
我的网络连接是这样的: 互联网< -128kbps链接 - > Cisco路由器(公共IP)< -LAN-> Linux路由器/服务器(公共IP)< -LAN->普通电脑(公共IP) Cisco路由器: >第一个分配给我的公共IP Linux路由器 >分配给我的第二个公共IP 常规PC(其中4个): >其余的公共IP 我启用了Linux路由器上的iptables数据包登录,有时我发现: >有些数据包很大,大于 现在,我如何配置Linux路由器以这样的方式塑造流量: >保持传输速度最大化 我已经为每台PC标记了(使用IP表–set-xmark选项)每个传出数据包: > Linux路由器对外界, … 等等. 每个传入的数据包也使用此方案从16开始标记. 对于这个长期的问题,我很抱歉,但是我已经放弃了使用tc命令设置它,关于流量整形的文档太少,我不知道下一步该去哪里. 解决方法假设eth0是与Cisco路由器的100mbit以太网连接,它应该是这样的(不是吗?):tc qdisc add dev eth0 root handle 1: htb default 2 # 100 mbps tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit # To LAN traffic tc class add dev eth0 parent 1:1 classid 1:2 htb rate 99000kbit ceil 100mbit # IN traffic tc class add dev eth0 parent 1:1 classid 1:3 htb rate 120kbit # OUT traffic tc class add dev eth0 parent 1:1 classid 1:4 htb rate 120kbit # IN “bands” (one for each PC) tc class add dev eth0 parent 1:3 classid 1:10 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:3 classid 1:11 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:3 classid 1:12 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:3 classid 1:13 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:3 classid 1:14 htb rate 24kbit ceil 120kbit # OUT “bands” (one for each PC) tc class add dev eth0 parent 1:4 classid 1:15 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:4 classid 1:16 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:4 classid 1:17 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:4 classid 1:18 htb rate 24kbit ceil 120kbit tc class add dev eth0 parent 1:4 classid 1:19 htb rate 24kbit ceil 120kbit 会得到这样的东西: +-----------------------------------------------------------+ | 100 mbits (1:1) | +---------+------------------------+------------------------+ | 99mbits | 120 kbits In (1:3) | 120 kbits Out(1:4) | + (1:2) +----+----+----+----+----+----+----+----+----+----+ +---------+ PC1| PC2| PC3| PC4| PC5| PC1| PC2| PC3| PC4| PC5| |1:10|1:11|1:12|1:13|1:14|1:15|1:16|1:17|1:18|1:19| +----+----+----+----+----+----+----+----+----+----+ 对于每个乐队: # PC1,IN tc qdisc add dev eth0 parent 1:10 handle 20: prio tc qdisc add dev eth0 parent 20:1 handle 22: sfq perturb 10 tc qdisc add dev eth0 parent 20:2 handle 23: sfq perturb 10 tc qdisc add dev eth0 parent 20:3 handle 24: sfq perturb 10 # PC1,OUT tc qdisc add dev eth0 parent 1:15 handle 21: prio tc qdisc add dev eth0 parent 21:1 handle 25: sfq perturb 10 tc qdisc add dev eth0 parent 21:2 handle 26: sfq perturb 10 tc qdisc add dev eth0 parent 21:3 handle 27: sfq perturb 10 +--------------------++--------------------+ | PC1 IN || PC1 OUT | +--------------------++--------------------+ | PRIO (20:0) || PRIO (21:0) | | | | || | | | | Prio | Prio | Prio || Prio | Prio | Prio | | 1 | 2 | 3 || 1 | 2 | 3 | |(20:1)|(20:2)|(20:3)||(21:1)|(21:2)|(21:3)| +------+------+------++------+------+------+ | SFQ | SFQ | SFQ || SFQ | SFQ | SFQ | |(22:0)|(23:0)|(24:0)||(25:0)|(26:0)|(27:0)| +------+------+------++------+------+------+ 等等. 规则应该是这样的 # PC1,OUT tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw flowid 21:1 tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 2 fw flowid 21:2 tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 3 fw flowid 21:3 # PC1,IN tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 16 fw flowid 20:1 tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 17 fw flowid 20:2 tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 18 fw flowid 20:3 等等. 有什么建议,评论等吗? (我没有该领域的经验) (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |