Posts Tagged connection-rate

用connection-bytes和connection-rate属性进行包标记的限速

Posted by on 星期六, 14 八月, 2010

  比传统的区分大小包要灵活、准确,浏览网页即使传输大包也会优先处理;下载的话如果是小包也会被限速。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,标记之后数据包不继续向下走,将跳出postrouting链表

 add action=mark-packet chain=postrouting comment="" connection-mark=\
    !con_heavy disabled=no new-packet-mark=pck_small_down out-interface=LAN \
    passthrough=no src-address-type=!local
#作用与上一段基本一致,只是将非con_heavy的连接标记为pck_small_down



  最后上个图:





个人研究成果,如有不足或错误之处,恳请原谅并欢迎指正,谢谢。