找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4121|回复: 2

[linux] linux,TC,支持diffserv路由,望指点!

[复制链接]
发表于 2005-11-23 21:04:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
1
#!/bin/sh
TC=/root/Desktop/iproute2/tc/tc
$TC qdisc add dev eth0 handle 1:0 root dsmark indices 64
$TC class change dev eth0 classid 1:1 dsmark mask 0x3 value 0xb8
$TC class change dev eth0 classid 1:2 dsmark mask 0x3 value 0x68
$TC class change dev eth0 classid 1:3 dsmark mask 0x3 value 0x48
$TC filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1: u32 divisor 1
$TC filter add dev eth0 parent 1:0 protocol ip prio 5 handle 2: u32 divisor 1
$TC filter add dev eth0 parent 1:0 prio 4 u32 match ip dst 192.168.40.0/24 police rate 100Mbit burst 2K continue flowid 1:1
$TC filter add dev eth0 parent 1:0 prio 5 u32 match ip dst 192.168.40.0/24 flowid 1:2
$TC filter add dev eth0 parent 1:0 prio 4 u32 match ip src 192.168.10.0/24 dst 192.168.40.0/24 match ip protocol 6 0xff match ip dport 0x17 0xffff flowid 1:3



2
#!/bin/sh
TC=/root/Desktop/iproute2/tc/tc
$TC qdisc add dev eth1 handle 1:0 root dsmark indices 64 set_tc_index
$TC filter add dev eth1 parent 1:0 protocol ip prio 1 tcindex mask 0xfc shift 2
$TC qdisc add dev eth1 parent 1:0 handle 2:0 cbq bandwidth 100Mbit allot 1514 cell 8 avpkt 1000 mpu 64
$TC class add dev eth1 parent 2:0 classid 2:1 cbq bandwidth 100Mbit rate 90Mbit avpkt 1000 prio 1 bounded isolated allot 1514 weight 1 maxburst 10 defmap 1
$TC qdisc add dev eth1 parent 2:1 pfifo limit 5
$TC filter add dev eth1 parent 2:0 protocol ip prio 1 handle 0x2e tcindex classid 2:1 pass_on
$TC class add dev eth1 parent 2:0 classid 2:2 cbq bandwidth 100Mbit rate 5Mbit avpkt 1000 prio 7 allot 1514 weight 1 maxburst 21 borrow
$TC qdisc add dev eth1 parent 2:2 red limit 60KB min 15KB max 45KB burst 20 avpkt 1000 bandwidth 100Mbit probability 0.4
$TC filter add dev eth1 parent 2:0 protocol ip prio 2 handle 0 tcindex mask 0 classid 2:2 pass_on

上面这段代码是我抄一篇论文上的脚本,我现在正在用这段脚本架设支持diffserv的路由环境。其中1代码是用在入口处的网卡,2代码是用在内部路由网卡上的。其中根据网卡名称的不同ethX中的X以1或0代替。网络拓朴见附件,为五机串联,其中1 5两机为单网卡,2 3 4机为双网卡,模拟路由器。
但我执行./scriptname,1 5号机运行在widowns XP下,开一共享文件,互访,并且就像普通局域网那种在两机间复制粘贴文件,在2 3 4机linux环境下,调用图型界面的ethereal软件,对网络流量进行截包,发现IPV4中的diffserv字段上仍然为默认的0x00。
估计应该是脚本1出了问题,但实在是找不到问题出在哪里,望各位有了解的指点一下。、
十分感谢。

网络拓朴中2号机的eth0和4号机的eth1运行脚本1(脚本1最后match ip src/dst会根据2/4机的具体环境有所变化),2 3 4机中的其它网卡运行脚本2。

拓朴

拓朴
routeros
发表于 2005-11-24 19:04:49 | 显示全部楼层
帮你顶下~
diffserv 偶只是看了看~ 看来雨雨在努力学习~~~
routeros
回复

使用道具 举报

 楼主| 发表于 2005-11-28 09:56:26 | 显示全部楼层
其实我蛮不好意思的,给了这么一大段代码,也没有个说明和解释,先在这里和各位老大们说声对不起了。
我现在正在搞这个diffserv,感觉有点出来了,但还是有好多问题。
现在是在边界路由上面完成了diffserv字段的标记,正在做核心路由上的根据字段转发的工作。如果下次完成了,有机会我会和大家交流一下。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-17 12:32 , Processed in 0.126910 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表