linux下使用iptables和tc限制速度

linux下使用iptables和tc限制速度的方法,记录一下。假设本地搭建了PPTPD服务,又或者有多个网卡,需要对其中一些接口做限速处理的情况,非常有用,本文基于CentOS 6.4 64bit。

1,初始配置

yum install /sbin/tcvim /etc/sysctl.conf修改net.ipv4.ip_forward = 1sysctl -p#清除原来的mangle表规则iptables -t mangle -F#加载sch_htb模块modprobe sch_htbecho "modprobe sch_htb" >> /etc/rc.local

2,TC限速设置

假设现在有两块网卡eth0: xx.xx.xx.xx(外网的上网地址)eth1: 172.16.44.1(做为内网的网关)

下载限速

下载限速要在eth1上面做,判断数据包的目的地址来做限制。tc包括三部分:队列、类、过滤器。我使用了htb方式去限制速度,也可以使用cbq,但cbq配置比较复杂一点,而且据说性能没htb好。

#删除原来的tc规则队列/sbin/tc qdisc del dev eth1 root#添加tc规则队列/sbin/tc qdisc add dev eth1 root handle 10: htb default 256#生成根类/sbin/tc class add dev eth1 parent 10: classid 10:1 htb rate 100mbit ceil 100mbit#支类列表用于限制速度#这里的rate指的是保证带宽,ceil是最大带宽。/sbin/tc class add dev eth1 parent 10:1 classid 10:10 htb rate 400kbps ceil 400kbps prio 1#添加支类规则队列#采用sfq伪随机队列,并且10秒重置一次散列函数。/sbin/tc qdisc add dev eth1 parent 10:10 handle 101: sfq perturb 10#建立网络包过滤器,设置fw。/sbin/tc filter add dev eth1 parent 10: protocol ip prio 10 handle 1 fw classid 10:10

在iptables里面设定mark值,与上面的handle值对应

iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK --set-mark 1iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j RETURN

通过上面的代码就可以限制172.16.44.130这台机子的下载速度到400kbps。

需要注意的是:1,172.16.44.130也可以写成网段的形式,例如172.16.44.0/242,这里的kbps实际上就是KB/S(每秒千字节),另一个单位是kbit,这个才是每秒千比特。

上传限速

上传限速的原理其实跟下载的差不多,只不过限制的网卡不同,要在eth0上过滤来源地址去限制。

#删除原来的tc规则队列tc qdisc del dev eth0 root#添加tc规则队列tc qdisc add dev eth0 root handle 20: htb default 256#生成根类tc class add dev eth0 parent 20: classid 20:1 htb rate 100mbit ceil 100mbit#支类列表用于限制速度tc class add dev eth0 parent 20:1 classid 20:10 htb rate 40kbps ceil 40kbps prio 1#添加支类规则队列tc qdisc add dev eth0 parent 20:10 handle 201: sfq perturb 10#建立网络包过滤器tc filter add dev eth0 parent 20: protocol ip prio 100 handle 2 fw classid 20:10iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK --set-mark 2iptables -t mangle -A PREROUTING -s 172.16.44.130 -j RETURN

跟下载不同的是POSTROUTING要改成PREROUTING,-d改成-s。

参考文章:linux下使用iptables和tc限制流量笔记

linux下使用iptables和tc限制速度

相关文章:

你感兴趣的文章:

标签云: