更正自己错误贴
找不到自己回复的帖子在哪了,个人中心里只有主题贴;以前回复了个贴子说connection-bytes和connection-rate标记需要4.X以上ROS支持,今天仔细百度了下,原来 3.3已经支持了!!!看到很多限速里用到此标记,比大小包效果还要好;值得大家了解!!以下为引用——比传统的区分大小包要灵活、准确,浏览网页即使传输大包也会优先处理;下载的话如果是小包也会被限速。IE下载或迅雷下载完全不影响其他小带宽应用,如ping、web、游戏。
用Mangle链表中的connection-bytes和connection-rate属性做包标记:
需要分别对tcp和udp进行设置:
connection-bytes属性是指:匹配指定流量的连接。注意是流量,不是带宽,比如说在192.168.1.1:1847->202.108.22.142:80这条连接上通过了100K的数据,则当connection-bytes=100000时,该连接将匹配该规则。
connect-rate属性是指:连接的速度。比如192.168.1.1:1847->202.108.22.142:80这条连接进行通信的速率,比如说是60K。
理解了这两个属性后,我们来看下面的脚本:
/ip firewall mangle
add action=mark-connection chain=prerouting comment="" connection-bytes=\
500000-0 connection-rate=200k-100M disabled=no new-connection-mark=\
con_heavy passthrough=yes protocol=tcp
#上面这段脚本,将连接流量在500K,并且连接速率在200K-100M之间的tcp连接标记出来,命名为:con_heavy
add action=mark-connection chain=prerouting comment="" connection-bytes=\
400000-0 connection-rate=100k-100M disabled=no new-connection-mark=\
con_heavy passthrough=yes protocol=udp
#作用与上一段基本一致,只是协议改变为udp
add action=mark-packet chain=prerouting comment="" connection-mark=con_heavy \
disabled=no dst-address-type=!local in-interface=LAN new-packet-mark=\
pck_general_up passthrough=no
#将进入LAN口的数据,并且连接标记为con_heavy,同时目的地址不为ros接口IP的包标记为pck_general_up,标记之后数据包不继续向下走,将跳出prerouting链表
add action=mark-packet chain=prerouting comment="" connection-mark=!con_heavy \
disabled=no dst-address-type=!local in-interface=LAN new-packet-mark=\
pck_small_up passthrough=no
#作用与上一段基本一致,只是将非con_heavy的连接标记为pck_small_up
add action=mark-packet chain=postrouting comment="" connection-mark=con_heavy \
disabled=no new-packet-mark=pck_general_down out-interface=LAN \
passthrough=no src-address-type=!local
#将发送出LAN口的数据,连接标记为con_heavy,且源地址不为ros接口IP的数据包标记为pck_general_down,标记之后数据包不继续向下走,将跳
页:
[1]