论坛风格切换切换到宽版
  • 803阅读
  • 4回复

[问题求助][图] iptables + tc htb + 策略路由 [复制链接]

上一主题 下一主题
离线canko.
 
发帖
1960
C币
-199371
威望
333
贡献值
1
银元
-1
铜钱
4286
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我的拓.扑在附件里,自己做了个图..
这..个只是我在虚拟机上用5个系统做的简单实验.很多东西都没有写进去。.
希望对.和我一样是初学者的朋友有所帮助.<性病>
也.请各位高手多指点不足之处。多谢了。多谢了。外贸

忘了.画上,7.7.7.0和8.8.8.0是模拟公网.上的地址。这两个地址是走策略的..

#!/bin/bash
IF_INTERNAL=".eth0"投资
IF_CNT.ELCOM="eth1"[成人用品]
IF_CN.NETCOM="eth2"学习
tc. qdisc del dev $IF_INTERNAL root. 2> /dev/null > /dev/null.
tc qdisc del dev $IF_INTERNAL .ingress 2> /d.ev/null > /dev/null              乙肝
tc qdisc del d.ev $I.F_CNTELCOM root 2> /dev/null > /dev/null           女人
t.c qdisc del dev $IF_CNTEL.COM ingress 2> /dev/null > /dev/null    美容
tc qdis.c del de.v $IF_CNNETCOM root 2> /dev/null > /dev/null域名
tc qdisc del dev $IF_CNNETCOM ingress .2> /dev/null > /d.ev/null.
tc qdisc add dev $IF_INTERNAL r.oot handle 1: htb default 14.(广告)
tc class add .dev $IF_INTERNAL pa.rent 1: classid 1:1 htb .rate 100mbit ceil 100mbit prio 0          婚庆
tc .class add dev $IF_INTER.NAL parent .1:1 classid 1:11 htb rate 30mbit ceil 100mbit prio 1            杀毒
tc class add dev $IF_INTERNAL parent 1.:1 classid 1:12 htb ra.te 20mbit ceil. 100mbit prio 2--------------彩票
tc class add dev $IF_I.NTERNAL par.ent 1:1 classid 1:13 htb rate 40mbit ceil 100mbit. prio 3.
tc class add .dev $IF_.INTERNAL parent 1:1 cla.ssid 1:14 htb rate 10mbit ceil 10mbit prio 4域名
tc. filter add de.v $IF_INTERNAL pa.rent 1:0 protocol ip prio 1 handle 1 fw classid 1:11          婚庆
tc filter add dev $IF_INTERN.AL parent 1:0 protocol i.p prio 2 handle 2 fw clas.sid 1:12              乙肝
tc fil.ter add dev $IF_I.NTERNAL p.arent 1:0 protocol ip prio 3 handle 3 fw classid 1:13(        游戏          )
tc filter add dev $IF_INTERNAL par.ent 1:0 protocol i.p prio 5. handle 5 fw classid 1:14.
tc qdisc add dev $IF_INTERNAL parent 1:11 handle 111:. sfq. perturb 5电影
tc qdisc add dev $IF_INTERNAL pare..nt 1:12 handle 112: sfq perturb 10虚拟主机
tc qdisc add dev $IF_INTERNAL parent 1:13 handle 1.13: .sfq perturb 10             汽车
tc qdisc .add dev $IF_INTERNAL parent 1:14 handle 114: s.fq perturb 15    健康
t.c q.disc add dev $IF_INTERNAL handle ffff: ingress电影
tc filter .add dev $IF_INTERNAL .parent ffff: protocol ip prio 10 u32 match .ip src 0.0.0.0/0 police rate 90mbit burst 1mbit dro.p flowid :1<性病>
tc qdisc ad.d dev $IF_CNTELCOM root handle 2: htb default 1.4服务器
tc class add dev $IF_CNTELC.OM parent 2: cl.assid 2:1 htb rate 100mbit ceil 10.0mbit prio 0.
tc class add dev $IF_CNTELCOM par.ent 2:1 classid 2:11 htb rate. 30mbit ceil 100mbit prio .1--------------彩票
tc c.lass add dev $IF_CNTE.LC.OM parent 2:1 classid 2:12 htb rate 20mbit ceil 100mbit prio 2          婚庆
t.c class add dev $IF_CNTELCOM parent 2.:1 classid 2:13 htb rate 4.0mbit ceil 100mbit prio 3           鲜花
tc class add dev .$IF_CNTELCOM p.arent 2:1 classid 2:14 htb rate 10mbit ceil 10mb.it prio 4(        游戏          )
tc filter .add dev $.IF_CNTELCOM .parent 2:0 protocol ip prio 1 handle 1 fw classid 2:11            杀毒
tc filter add dev .$IF_CNTELCOM parent 2:0 protocol ip p.rio 2 handle 2 fw classid .2:12学习
tc filter add dev $IF_CNTELCOM parent 2:0. protocol ip .prio 3 handle .3 fw classid 2:13           建材
tc filter. add dev $IF_CNT.ELCOM parent 2:0 protocol ip p.rio 5 handle 5 fw classid 2:14             汽车
tc qdisc add dev $IF_CNTELCOM par.ent 2:11 handle 211: sfq per.turb 5             电子
tc qdisc ad.d. dev $IF_CNTELCOM parent 2:12 handle 212: sfq perturb 10    健康
tc qdisc add dev .$IF_CNTE.LCOM parent 2:13 handle 213: sfq perturb 10             电子
tc qdisc add d.ev $IF_CNTELCOM parent 2:14 handle 214: sf.q perturb 15健康
tc qdisc add d.ev $IF_CNTELCOM handle ffff: in.gress.
tc filter add dev .$IF_CNTELCOM. paren.t ffff: protocol ip prio 10 u32 match ip src 0.0.0.0/0 police rate 90mbit burst 1mbit drop flowi.d :1.
tc qdisc. add dev $IF_CNNETCOM roo.t handle 3: htb default 14            杀毒
tc class add .dev $IF_CNNETCOM parent 3: classid 3:1 htb rate 100mbit c.eil .100mbit prio 0            杀毒
tc class add dev $IF_CNN.ETCOM parent 3:1 classid 3:11 htb rate. 30mb.it ceil 100mbit prio 1.
tc. class add .dev $IF_CNNETCOM parent 3:1 classid 3:12 htb rat.e 20mbit ceil 100mbit prio 2              乙肝
tc class add de.v $IF_CNNETCOM parent 3:1. .classid 3:13 htb rate 40mbit ceil 100mbit prio 3           女人
tc .class .add dev $IF_CNNETCOM parent 3:1 c.lassid 3:14 htb rate 10mbit ceil 10mbit prio 4.
tc filte.r add dev $IF_C.NNETCOM parent 3:0 protocol ip prio 1 han.dle 1 fw classid 3:11.
tc filter add d.ev $IF_CNNETCOM parent 3:0 protocol .ip prio 2 handle 2. fw classid 3:12              乙肝
tc filter add dev $IF_CNN.ETCO.M parent 3:0 protocol ip prio 3 hand.le 3 fw classid 3:13
tc filter add dev $IF_CNNETCOM. parent 3:0 p.rotocol. ip prio 5 handle 5 fw classid 3:14健康
tc qdisc add d.ev $IF_CNNETCOM pare.nt 3:11 handle 311: sfq perturb 5          婚庆
tc qdisc add dev $IF_CNNETCOM. parent 3:.12 handle 312: sfq perturb 10.
tc q..disc add dev $IF_CNNETCOM parent 3:13 handle 313: sfq perturb 10教育
tc qdisc .add dev $.IF_CNNETCOM parent 3:14 handle 314: sfq perturb 15服务器
tc qdisc add dev $IF._CNNET.COM handle ffff: ingress.
tc filter add dev $IF_CNNETCOM parent ffff: protocol ip prio. 10 u.32 match ip .src 0.0.0.0/0 police rate 90mbit burst 1mbit drop flowid .:1.
iptables -F
iptables -t .nat -F外贸
iptab.les -t mangle -F    健康
iptables -.P INPUT DROP             汽车
iptables -A INPUT -m state --.state RELATED,EST.ABLISHED -j ACCEPT.
ipta.bles .-A INPUT -m mac --mac-source 00:c0:9f:XX:XX:X.X -p tcp --dport 22 -j ACCEPT.
i.ptables -P .FORWARD ACCEPT服务器
iptables -A FORWARD -m state --state RELATE.D,ESTABLIS.HED -j ACCEPT--------------彩票
iptables -A FORWARD -p icmp --icmp-typ.e 11 -j DR.OP.
iptables -A FOR.WARD -p. icmp -j ACCEPT    健康
i.ptables -P OUTPUT ACCEPT.
iptables -t nat -A POSTROUTING -o $.IF_CNTELCOM -j MASQU.ERADE(广告)
iptables -t nat -A POSTROUTING -o $IF_CNNET.COM .-j MASQUERADE             汽车
iptables -t mangle -A PREROUTING -m to.s -.-tos Minimize.-Delay -j MARK --set-mark 1投资
iptables -t mangle -A PR.EROUTING. -m tos .--tos Minimize-Cost -j MARK --set-mark 2            杀毒
iptables -t mangle -A PREROUTING -m tos -.-tos Maxim.ize-Throughput -j MA.RK --set-mark 3.
iptables -t mangle -A PREROUTING -p tcp -m tcp --.tcp-flags SYN A.CK,RST -j MARK --set.-mark 1--------------彩票
iptables. -t man.gle -A PREROUTING -p tcp -m tcp --tcp-flags SYN. ACK,RST -j RETURN           建材
ipt.ables -t .mangle -A PREROUTING -m length --length :64 -j MARK --set-mar.k 1.
iptables -t mangle -A PR.EROUTING -m length --length .:64 -j RETURN           建材
iptables -t mangle .-A PREROUTING -p. tcp --dport ftp -j MARK --set-mark 1域名
iptables -t ma.ngle -A PRER.OUTING -p tcp --dport ftp -j RETURN             汽车
ipta.bles -t mangle -A PREROUTING -p tcp --sport ftp -j .MARK --set-mark 1服务器
iptables -t mangle -A PREROUTING -p tcp --spo..rt ftp -j RETURN.
ipta.bles -t .mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1            杀毒
iptables -t mangle -A PREROUTING -p tcp --dp.ort 22 .-j RETURN投资
iptables -t mangle -A PRE.ROUTING -p tcp --sport 22. -j MARK --set-mark 1教育
iptables -t mangle -.A PREROUTING -p tcp --sport 22 -j R.ETURN虚拟主机
iptables -t mangle -A PREROUTING .-p udp --dport 53 -j MARK --set-mar.k 1    美容
iptables -t mangle -A PREROUTING .-p ud.p --dport 53 -j RETURN    美容
iptables -t mangle -A PREROUTING -p udp --sport 53 -j MARK --.set-mark .1服务器
iptables -t mangle -A PREROUTING -p udp --sport. 53 -j RETUR.N          婚庆
iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-ma.rk 2.             电子
iptables -t mangle -A PRERO.UTING -p tcp --dport 25 -j RETU.RN.
iptables -t mang.le -A PREROUTING -p tcp --sport 2.5 -j MARK --set-mark 2.
iptables -t mangle -A. PREROUTING -p tcp --spor.t 25 -j RETURN<性病>
iptables -t mangle -A PREROUTING -p tcp --dport. 110 -j MARK --set.-mark 2外贸
iptables -t mangle -A PREROUTING -.p tcp --dpo.rt 110 -j RETURN            杀毒
iptables -t ma.ngle -A PREROUTING -p tcp --spo.rt 110 -j MARK --set-mark 2
iptab.les -t mangle -A PREROU.TING -p tcp --sport 110 -j RETURN.
iptables -t mangle -A PRER.OUTING -p tcp --dport 443 -j MARK --set-mark 3..
iptables -t mangle -A PREROUTING -p tcp -.-dport 4.43 -j RETURN             电子
iptables -t mangle -A PRERO.UTING -p. tcp --sport 443 -j MARK --set-mark 3.
iptables -t mang.le -A PREROUTING -p tcp -.-sport 443 -j RETURN电脑
iptables -t mangle -A PR.EROUTING -p t.cp --dport ftp-data -j MAR.K --set-mark 3              乙肝
iptabl.es -t mangle -A PREROUTING -p tcp --dport ftp-data -j RE.TURN            杀毒
iptables -t m.angle -A PREROUTING -p tcp --sport ftp-data -j MA.RK --.set-mark 3          婚庆
iptables -t mangle -A .PREROUTING -p tcp --sport ftp-data -j .RETURN.
iptables -t. mangle -A PRE.ROUTING -p tcp --dport 80 -j MARK --set-mark 3              乙肝
iptables -t mangle -A P.RER.OUTING -p tcp --dport 80 -j RETURN.
iptables -t mangle -A PREROUTING -p tcp --sport 8.0 -j MAR.K --set-mark 3             汽车
ip.tables .-t mangle -A PREROUTING -p tcp --sport 80 -j RETURN投资
iptables -t mangle -A PREROUTING -p tcp .--dport 8080 -j MARK. --set-mark 3电脑
iptables -t mangle -A PREROUTING. -p tcp --dpo.rt 8080 -j RETURN投资
iptables -t mangle -A PREROUTING -p .tcp --sport 8080 -j MARK --s.et-mark 3            杀毒
iptables -t mangle -A PREROUTING -.p tcp --dport 80.80 -j RETURN              乙肝
iptables -t mangle -A PREROUTING -p tcp --dport .3389 -.j MARK --set-mark 3(        游戏          )
ip.tables -t mangle -A PREROUTING -p tcp -.-dport 3389 -j RETURN           鲜花
iptables -t mangle -A PREROUTING -p tcp --sport .3389 -j MARK --set-m.ark 3.
iptables -t ma..ngle -A PREROUTING -p tcp --sport 3389 -j RETURN.
iptables -t mangle -A PREROUTING -p tcp --dport 139. -j MARK --.set-mark 3.
iptables -t mangle -A PREROUTING -p tcp --.dport 1.39 -j RETURN外贸
iptables -t mangle -A PREROUTING ..-p tcp --sport 139 -j MARK --set-mark 3<性病>
iptables -t mangle -A PREROUTIN.G -p tcp --sport 139 -j RE.TURN             电子
iptable.s -t mangle -A PREROUTING -p udp --dport 4000:8000 -j MAR.K --set.-mark 5.
iptables -t mangle -.A PREROUTING -p udp --dport 4000:8.000 -j RETURN外贸
iptables -t mangle -A P.REROUTING -p udp --sport 4000.:8000 -j MARK .--set-mark 5[成人用品]
iptables -t mangle -A PREROUTING -p udp --sport 4000.:80.00 -j RETURN             电子
iptables -t mangle -A PREROUT.ING -j MA.RK --set-mark 5           鲜花
ipta.bles -t mangle -A. PREROUTING -j RETURN    外汇
modprobe ip_nat_.ftp学习
ech.o 1 > /proc/sys/net/ipv4./ip_forward.
e.cho 255 > /proc/sys/net/ipv4/ip_default._ttl--------------彩票
ip route add defa.u.lt via 1.1.1.2    美容
ip route add .default via 2..2.2.2 table 100学习
i.p rule .add to 7.0.0.0/8 table 100             汽车
ip rule .add to 8.0.0.0/8 t.able 100域名

[ 本帖最后由 Suni.verse .于 2007-6-7 19:55 编辑 ]电影
test.jpg .(9.52 KB)            鲜花
下载次数:12
2007-06-07 19:5.3域名

实验拓扑
http://upload.bbs.csuboy.com/Mon_1004/126_7134_8ead4dcb9441915.jpg[/img]学习

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线笨笨猪.
发帖
2239
C币
-234812
威望
406
贡献值
1
银元
-2
铜钱
5086
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[图]
文中用到了 0、1、2、3、4 共 5 个不同的 class 优先级,以及很多 filter 优先级,可否讲一下同优先级和不同优先级下他们的不同点在哪里?

离线gbbgbb.
发帖
2003
C币
-60860
威望
359
贡献值
1
银元
-2
铜钱
4504
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[图]
根据我的理解,我认为PRIO的级别在不同时,当两种级别的流量同时到达某一接口时,优先级搞的流量优先被处理和转发。
(忘了写,即使优先级不同,也不会让某一流量永久占用带宽而让其他流量饿死,因为有SFQ在)


当PRIO相同时
则同时到达之后,采用先来先处理的原则(我不知道这算不算FIFO)。
而根据SFQ队列的公平算法,每个流量都不会一直占用出口,而是根据每个单位时间PERTURB从新进行散列算法的计算,来重新分配.

小弟初学,不知道对不对,请指点.

谢谢了,谢谢了

[ 本帖最后由 Suniverse 于 2007-6-8 08:19 编辑 ]

离线xunleifilm.
发帖
2062
C币
-152450
威望
382
贡献值
1
银元
-1
铜钱
4740
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:[图]
写得很好,受益非浅!
另外,根据我最近的测试发现,MARK部分可以使用multiport减少规则的条数,我觉得可以提高服务器的处理速度,我把我的代码列一下,欢迎大家指正!
$IPTABLES -t mangle -F



$IPTABLES -t mangle -A POSTROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -m tos --tos Minimize-Delay -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST,ACK SYN -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m length --length :64 -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -p tcp -m length --length :64 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p icmp -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -p icmp -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p udp -m multiport --port 53 -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -p udp -m multiport --port 53 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 20,22,23,1433,3389 -j MARK --set-mark 1

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 20,22,23,1433,3389 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 21,25,80,110,443 -j MARK --set-mark 2

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 21,25,80,110,443 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p udp -m multiport --port 8000 -j MARK --set-mark 2

$IPTABLES -t mangle -A POSTROUTING -p udp -m multiport --port 8000 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 1038,3724,5050,5858,6299,7000,7050,7100,7200 -j MARK --set-mark 3

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 1038,3724,5050,5858,6299,7000,7050,7100,7200 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 7202,7205,8888,28008,38101,39311,40041,55088 -j MARK --set-mark 3

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 7202,7205,8888,28008,38101,39311,40041,55088 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 3000:3050 -j MARK --set-mark 3

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 3000:3050 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 8000:8050 -j MARK --set-mark 3

$IPTABLES -t mangle -A POSTROUTING -p tcp -m multiport --port 8000:8050 -j RETURN



$IPTABLES -t mangle -A POSTROUTING -j MARK --set-mark 4
复制代码

离线ac2004.
发帖
2062
C币
-60745
威望
376
贡献值
1
银元
-1
铜钱
4591
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:[图]


QUOTE:原帖由 Suniverse 于 2007-6-8 08:18 发表于 3楼  
根据我的理解,我认为PRIO的级别在不同时,当两种级别的流量同时到达某一接口时,优先级搞的流量优先被处理和转发。
(忘了写,即使优先级不同,也不会让某一流量永久占用带宽而让其他流量饿死,因为有SFQ在)
...

当带宽没有达到设置峰值最大值的时候,这种优先级和带宽保障会生效吗?据我所知,SFQ 在带宽挤占的时候才开始生效
换句话讲,若你设置峰值 2Mbps,带宽也是 2Mbps 的,而由于 ISP 的原因实际带宽只能达到 1.8Mbps,在这种情况下,Linux 的队列可能不会排满,那么这种优先级和随机队列公平竞争机制会生效吗?
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个