• 2

[分享]實作RouterOS的HTB(中篇)

[感謝]
感謝在小弟學習RouterOS的過程中,給予協助的pctine、jokkson、YAWPYNG、npc等前輩。
也希望RouterOS的眾家高手可以繼續不吝分享心得,以下分享若有謬誤,還請包含與指正。

[系列文章]
[分享]實作RouterOS的HTB(上篇)
[分享]實作RouterOS的HTB(中篇)
[分享]實作RouterOS的HTB(中下篇)

[前言]
RouterOS(以下簡稱ROS)HTB這主題對小弟來說有點深,所以還沒有完全準備好發表。
不如小弟再來補充一些Mangle的細節好了
再次的強調,Mangle是幫我們的封包加上一些標示,而ROS後可以依據這些標示再做處理。
拿醫院來說好了,如果病人的手環標錯名字,那後續您也是知道的...

[精簡您的規則]
在Firewall中如果規則越少的話,對ROS的負擔就越少。
所以除非是要做很細的分類,否則同類型的服務可以標在一起。
之前曾有網友指出可以不需特別標示上傳與下載就可以區分上下行的流量。
可惜小弟實作的時候試不出來,所以還要請網友再分享如何做。
如果可以不用特別去標示上下行的流量,這樣對於標示的規則就可以大幅的減少,起碼少一半哩!

另外之前有網友提及:Mangle使得ROS的CPU loading飆高。
小弟使用的是RB450G,CPU為680MHz,在建立91條Mangle的情況下,CPU的loading都還好。
以下是CPU的記錄,可以看出CPU的loading都在40%以下:[分享]實作RouterOS的HTB(中篇)

接下來就實際舉個實際的例子說明如何精簡規則:
小弟的VPN服務有PPTP、OPEN VPN、SSTP等,小弟未來希望一起控管VPN服務。
所以可以將這些服務的不同封包都標示成"相同的連結名稱":vpn_con_in。
然後再用一個規則來將vpn_con_in"標示封包名稱"為VPN_in。
同理VPN_out也可以依樣畫葫蘆。
[分享]實作RouterOS的HTB(中篇)

另一個方便的功能:Address List。
在Address Lists裡可以建立一些位址列表,這在Firewall中處處可以用的到。
比如說小弟有兩台IP CAM,我想要對這兩台IPCAM做特別的標記。
那麼我就可以先在Address Lists增加一個位址列表:CAM,輸入位址。
[分享]實作RouterOS的HTB(中篇)

然後在標記的時候直接將位址列表引入即可。
這樣的好處是未來可以方便的修改IP,甚至還可以利用Script動態建立位址列表。
[分享]實作RouterOS的HTB(中篇)

[驗證您的標記]
標記了封包,以後不是只要有流量就ok了,您還要進一步的去驗證這標記是否正確。
小弟的方法是在家裡面用另一台AP撥號取得另一組外部IP,然後去模擬由WAN連入的情況。
另外還要驗證在區網連線時,是否也會有流量。
我們一般家用使用者做QoS大抵都是針對WAN而不是針對LAN,所以這也要注意。
小弟實證,若依我前一篇的方式來標記,並不會包含來自LAN的流量。
原因可能是因為我指定了in-interface與out-interface都是WAN的關係。

在驗證流量時可以善用ROS的統計功能,可以先清空統計數值。
皆下來連線看看流量是否正確,有時明明正在上傳,但卻只有下載有流量,這就有問題了。
另外連線是雙向的,所以有時上傳時,下載也會有少許流量,這是正常的不是錯誤。
[分享]實作RouterOS的HTB(中篇)

另一個重要的功能是Connections。
這裡會列出所有的連線,但數量很多不易觀察,所以可以使用Filter做條件的篩選。
例如我想要追蹤對某台主機的P2P標示是否正確,我就可以這樣做:
[分享]實作RouterOS的HTB(中篇)

若您的目標是標記所有的封包,那麼標記規則的最後可以新增一條log來檢查。
[分享]實作RouterOS的HTB(中篇)

如果您前面已經確實的標記了所有的封包,而且標記完以後都不再將封包往以下規則傳遞。
您的log規則流量應該是0。
[分享]實作RouterOS的HTB(中篇)

[別忘了IPv6]
如果您有啟用IPv6的話,別忘了也要Mangle一下,方法與IPv4完全相同。
[分享]實作RouterOS的HTB(中篇)

[參考資料]
1.Manual:IP/Firewall/Mangle
2.鳥哥的Linux私房菜:9.5 NAT 伺服器的設定
3.關於Mangle的一些解釋
4.【原創之ROS】關於標記連接、標記路由時的細節問題
5.http://wopliu.blog.163.com/blog/static/193900620116991632815/
6.電腦茶包Blog:在RouterOS中建立台灣地區IP列表
7.ros標記細節解讀(ros mangle)
2013-03-23 4:13 發佈
寫的很詳細!!一定要給5分的啦!!
這年頭01的分享文越來越少
嘴砲越來越多了Orz
其實還可以設定對單一的標記.作頻寬限制..下上載的最大頻寬
或是對單一IP限制,這才有效保證頻寬

等想玩再來玩看看
QoS不知道和ASUS RT-N56U的功能是否一樣

wwnew2 wrote:
其實還可以設定對單一的標記.作頻寬限制..下上載的最大頻寬
或是對單一IP限制,這才有效保證頻寬...(恕刪)


大大這方法不錯,不知道是否願意和我們進一步分享Mangle與Simple Queues的方法?
irsjx2vxo3ne3k84dr1dz4,r4pe8bez3/4ne3bq4bew2j92gea jx4hq me-2d8 e3hy4hi2ty k84!
其實不難...照片中的步驟...設定即可..

firewall mangle設定


再來是設定限制頻寬queue



最後可以設定上下載的最大頻寬及保證頻寬
以圖為例...下載大最值為90M ...90秒後....變成為80M保證頻寬


其實RouterOS設定不止這些,可以多線路,去分要走那一條...
簡單說....80Port可走一條...其他走另一條線路...

wwnew2 wrote:
其實不難...照片中...(恕刪)


62chaokai wrote:
有興趣的可以看看
...(恕刪)


很實用的資料,感謝分享。
我參考網友的HTB Queue tree作法發現有一個特別的地方。
他們在不同的項目所使用的Queue type各不相同,請問為什麼這樣做呢?


irsjx2vxo3ne3k84dr1dz4,r4pe8bez3/4ne3bq4bew2j92gea jx4hq me-2d8 e3hy4hi2ty k84!

derliang wrote:
很實用的資料,感謝分...(恕刪)


我想應該是針對不同類型封包使用不同演算法,會有較佳的處理效能,
例如p2p不要使用sfq用pfifo會大幅降低cpu loading這樣。

小弟也是新手。有錯再請指正。
之前有設定過,但設定的東西太多..Queue Tree
上載要一個規則
下載要一個規則

一個個去設定太麻煩...規則愈多CPU 愈重
之後要檢查問題,也看很久有才能懂....
不如手動設置simple queues,以及對每個用戶流量限制的PCQ規則
最後把其他常用的PORT獨立流量限制,放到規則最上面優先流量..
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?