LInux下用命令对网卡进行控制

来自:http://hi.baidu.com/weioip/blog/item/855e8a459e752b3986947305.html

端口延时命令

# tc qdisc add dev eth0 root netem delay 100ms

表示对端口廷时100ms

# tc qdisc del dev eth0 root netem delya 100ms

表示对端口廷时命令删除

# tc qdisc change dev eth0 root netem delay 100ms 10ms

表示对改变端口廷时命100ms ± 10ms 延时范围(90到110)

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

表示廷时范围100ms ± 10ms * 25%edit]

edit]数据包副本命令

# tc qdisc change dev eth0 root netem duplicate 1%

数据包副本率 1%

edit]edit] 数据包分发命令

# tc qdisc change dev eth0 root netem gap 5 delay 10ms

数据包重发每格5的整数倍的包将不被延时。其它的将延时10msedit] 速率控制命令:两条命令共同完成

# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms

# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000

# tc -s qdisc ls dev eth0 ----查看规则信息。

# tc qdisc show

更多帮助

# tc help , tc qdisc help

以上是建立速率控制命令规则。红色部分为限制包数量可去掉

清除规则命令:

tc qdisc del dev eth0 root

完毕后可以先试试bridge的基本命令:(这是可以把此主机看到两个端口的HUB )

brctl addbr mybridge (创建bridge mybridge,然后用ifconfig查看会发现多了一个mybridge端口)

brctl addif mybridge eth0  

brctl addif mybridge eth1 (把eth0和eth1包含到mybridge中)

然后需要对各端口做以下动作

ifconfig eth0 0.0.0.0 promisc  

ifconfig eth1 0.0.0.0 promisc(打开混杂模式)

ifconfig mybridge up(启动网桥)

引用:http://hi.baidu.com/barefoot/blog/item/0ceea1192115934142a9adf5.html

TC ------ traffic control 流量控制

命令相关格式:

      tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]

tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id

tc [-s | -d ] qdisc show [ dev DEV ]

tc [-s | -d ] class show dev DEV tc filter show dev DEV

命令相关参数:

       QDISC (queue discipline)排队规则

       CLASS    分类,可以理解为想要达到不同目的(流量限制)而分成几个分类;

       FILTER   过滤

       add         增加一个规则或类等

        remove   删除一个规则或类

       change    修改某条规则的某些条目,不可修改handle和父类

       replace   替换某条规则,如替换对象不存在则建立

       handle     句柄,可以命名一个类等

       root         根类

       classid    类识别符

        link          只用于QDisc,代替现有节点

       rate        一个类保证可以得到的带宽值,如有子类,则子类带宽总和不能超过父类

       ceil         一个类可得到的最大带宽值

       prio         优先权,数字越大,优先越小,0优先权最大

       htb          属于qdisc的一种,qdisc还包括CBQ,HTB,PRIO

简单的结构图:

..........................root 1:......
                        /           \
........classid 1:1............classid 1:2.......
            /     \                        /    \
.1:11...1:12...1:13..... ......1:21....1:22....1:23...

优先顺序是1:11 1:12 1:13 1:21 1:22 1:23

简单例句:

建立一个根队列:

tc qdisc add dev eth0/eth1(网络接口) root handle 1: htb default 11 (默认由1:11类包通过)

建立根队列下的主类1:1

tc qdisc add dev eth0/eth1(接口) parent(它的父类) 1: classid(自身类Id) 1:1 htb rate 300Kbit ceil 500Kbit prio 0 (保证300,最大500,优先0最大)

你可能感兴趣的:(用命令对网卡进行控制)