ROS小包優先+帶寬均分+簡單隊列限制

        一直以來,都看論壇上的達人說ROS做軟路由器效果是多麼的強大,於是偶也搞一個試試看。找了一個2.9.27的完全破解版,用了2塊D-LINK530的網卡,裝完一用還真行。比我那1000的銳捷強多了,網吧120臺機器,座滿的時候那個銳捷的路由器登陸界面都打不開。用上以後問題就來了,我們30M的光纖,如果不限速,那些下載狂人把帶寬全部給佔用了,打遊戲的顧客很有意見。於是我就做了個限速,每個機器下載最大2M.平均1M。但是羣衆還是不滿意,都所卡。我又找資料,發現原來還有個叫智能動態限速的東西,好偶照做。做好以後,平時喊卡的人沒有了,人多的時候一樣都喊卡。

        偶傻眼了,難道只能不限速。還好天無絕人之路,還有個“小包優先”的高級貨,於是照做。結果用簡單隊列限速後,“小包優先”也是白搭,難道天要忘我。終於經過N次測試以後,我明白了。網吧用簡單隊列做限速完全是扯蛋。網吧限速最好的辦法應該是帶寬均分,然後在用簡單隊列來限制上傳。在利用小包優先來處理遊戲卡的問題。經過2個網吧,一個月的測試,完全擺脫了到處喊卡的噩夢,現在把經驗發來大家分享一下。

        ROS不要用簡單隊列來限速,什麼智能動態限速也不要用。只需要用小包優先+帶寬均分+簡單隊列限制上傳速度。

小包優先的腳本如下:

ip firewall mangle
add chain=forward p2p=all-p2p action=mark-connection new-connection-mark=p2p_conn passthrough=yes comment="" disabled=no
add chain=forward connection-mark=p2p_conn action=mark-packet new-packet-mark=p2p passthrough=yes comment="" disabled=no
add chain=forward connection-mark=!p2p_conn action=mark-packet new-packet-mark=general passthrough=yes comment="" disabled=no
add chain=forward packet-size=32-512 action=mark-packet new-packet-mark=small passthrough=yes comment="" disabled=no
add chain=forward packet-size=512-1200 action=mark-packet new-packet-mark=big passthrough=yes comment="" disabled=no
/ queue tree
add name="p2p1" parent=Telecom packet-mark=p2p limit-at=2000000 queue=default priority=8 max-limit=6000000 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="p2p2" parent=Lan packet-mark=p2p limit-at=2000000 queue=default priority=8 max-limit=6000000 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="ClassA" parent=Lan packet-mark="" limit-at=0 queue=default priority=8 max-limit=100000000 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="ClassB" parent=ClassA packet-mark="" limit-at=0 queue=default priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf1" parent=ClassA packet-mark=general limit-at=0 queue=default priority=7 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf2" parent=ClassB packet-mark=small limit-at=0 queue=default priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf3" parent=ClassB packet-mark=big limit-at=0 queue=default priority=6 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no


然後是帶寬均分:

/ip firewall mangle add chain=forward src-address=172.18.0.0/20 action=mark-connection new-connection-mark=users-con

/ip firewall mangle add connection-mark=users-con action=mark-packet new-packet-mark=users chain=forward

/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address

/queue tree add name=Download parent=Lan max-limit=10M
/queue tree add parent=Download queue=pcq-download packet-mark=users
/queue tree add name=Upload parent=Telecom max-limit=10M
/queue tree add parent=Upload queue=pcq-upload packet-mark=users



請根據直接實際修改IP地址段,下載最大速度,上傳最大速度,lan爲我連接內網的網卡,wan是我連接外網的網卡


限制上傳速度的腳本:

:for aaa from=3 to=254 do={queue simple add name=("1lan" . $aaa) target=("172.18.1.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("2lan" . $aaa) target=("172.18.2.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("3lan" . $aaa) target=("172.18.3.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("6lan" . $aaa) target=("172.18.6.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("7lan" . $aaa) target=("172.18.7.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("8lan" . $aaa) target=("172.18.8.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("9lan" . $aaa) target=("172.18.9.". $aaa) max-limit=5M/5M}
:for aaa from=3 to=254 do={queue simple add name=("11lan" . $aaa) target=("172.18.11.". $aaa) max-limit=5M/5M}


就用這3個部分,別的不需要的,絕對比什麼智能動態限速好的多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章