hb2k 发表于 2006-3-27 16:23:52

linux qos 流量整形 水平有限待完成~~!

#流量整形脚本:尽可能压缩p2p流量,限制对响应时间不敏感的ftp、www,把带宽尽可能给网游.
#参考鸟哥的linux私房菜
#!/bin/sh

#clear all qos eth0-->wan eth1-->lan清除所有网卡上的qos规则
tc qdisc del dev eth0 root 2>/dev/null
tc qdisc del dev eth1 root 2>/dev/null

#定义新建上传最顶层根部规则
tc qdisc add dev eth0 root handle 10: htb default 20

#定义新建下载最顶层根部规则
tc qdisc add dev eth1 root handle 20: htb default 20
#定义10:1总上传带宽60M
tc class add dev eth0 parent 10: classid 10:1 htb rate 60000kbps ceil 60000kbps
#定义10:1总下载带宽94M
tc class add dev eth1 parent 10: classid 10:1 htb rate 94000kbps ceil 940000kbps

#开始根据协议分类-->建立3个有带宽限制的通道
#定义10:10 为ftp 上传保留128k最大6m                     最小保证带宽最大带宽上限
                                                                                  |             |
tc class add dev eth0 parent 10:1 classid 10:10 htb rate 128kbps ceil 6000kbps prio 1 (prio为优先级,数值越小,优先级越高)
#定义20:10 为ftp 下载保留128k最大6m
tc class add dev eth1 parent 20:1 classid 20:10 htb rate 128kbps ceil 6000kbps prio 1
#定义10:20 网页浏览上传 保留1m 最大20M
tc class add dev eth0 parent 10:1 classid 10:20 htb rate 1024kbps ceil 20000kbps prio 0
#定义20:20 网页浏览下载 保留1m,最大40M
tc class add dev eth1 parent 20:1 classid 20:20 htb rate 1024kbps ceil 40000kbps prio 0
#定义p2p上传流量10:30
tc class add dev eth0 parent 10:1 classid 10:30 htb rate 256kbps ceil 3000kbps prio 2
#定义p2p下载流量20:30
tc class add dev eth1 parent 20:1 classid 20:30 htb rate 256kbps ceil 5000kbps prio 2
#(以下不大明白料)
#upload
tc qdisc add dev eth0 parent 10:10 handle 101: pfifo
tc qdisc add dev eth0 parent 10:20 handle 102: pfifo
tc qdisc add dev eth0 parent 10:30 handle 103: pfifo
#download
tc qdisc add dev eth1 parent 20:10 handle 201: pfifo
tc qdisc add dev eth1 parent 20:20 handle 202: pfifo
tc qdisc add dev eth1 parent 20:30 handle 203: pfifo
#(到这里明白点)
#定义标签
#upload
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 1010 fw classid 10:10
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 1020 fw classid 10:20
tc filter add dev eth0 parent 10: protocol ip prio 100 handle 1030 fw classid 10:30
#download
tc filter add dev eth1 parent 20: protocol ip prio 100 handle 2010 fw classid 20:10
tc filter add dev eth1 parent 20: protocol ip prio 100 handle 2020 fw classid 20:20
tc filter add dev eth1 parent 20: protocol ip prio 100 handle 2030 fw classid 20:30

#清除iptables mangle 规则
iptables -F -t mangle

#layer7 QOS
#P2P 打标记并扔到相应的通道里,通道为上面所定义上传3m最大,下载5m最大。
/sbin/iptables -t mangle -A PREROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 1030
/sbin/iptables -t mangle -A PREROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 1030
/sbin/iptables -t mangle -A POSTROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 2030
/sbin/iptables -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 2030
#ftp&&http上传 打标记并扔到相应的通道里,通道为上面所定义http最大20m,ftp最大6m
/sbin/iptables -t mangle -A PREROUTING -m layer7 --l7proto http -j MARK --set-mark 1010
/sbin/iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1020
#ftp&&http下载打标记并扔到相应的通道里,通道为上面所定义http最大40m,ftp最大6m
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 2010
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto http -j MARK --set-mark 2020


看书怎么现在一点看不进去了~~不知对错呵呵,望大家指教。

hb2k 发表于 2006-3-27 16:28:25

对linux Qos心里有阴影,总是搞不定。

:L   不知设计tc的程序员是否来自地球,有这么难懂的操作命令么?

[ 本帖最后由 hb2k 于 2006-3-27 16:34 编辑 ]
页: [1]
查看完整版本: linux qos 流量整形 水平有限待完成~~!