前言:
經常在群里看到不少朋友爭論海蜘蛛 ROS 維盟 愛快 碧海威 流控大師 Woyos等等軟路由,哪個好。
實際上,網絡產品是復雜的,現在的軟路由功能上已經遠遠不是單獨的路由了。每種產品都有他本身的優點和缺點,產品定位,適應人群,談不上非得分出個高低好壞來。所以本文中的一些觀點,如果帶有一些偏向性的話,大家請勿糾結。因為每個人都會對自己用的產品有種擁護情節,難免會有失公平。
當然這里主要講的肯定還是RouterOS。本人是5年前接觸ROS的,在這之前燒過不少路由器,各種洋垃圾,高端旗艦無線路由器都買過,刷tomato,刷DD-wrt,刷Openwrt。常年混跡於恩山,Anywlan。最終,當我接觸到ROS以后,我開始退燒了。所以借此文章,我也勸告一下那些,還在追求高配置追求旗艦無線路由器的朋友們。來學着玩玩ROS吧,你會發現,你要的東西這里都有,而且永遠不必再追着廠商的新產品跑。
首先我來談談ROS的優點,CCIE1691崔北亮對ROS的評價一針見血。 相對於傳統的思科華為硬件產品來說,ROS的優點就是便宜,甚至可以說免費。但是性能卻不弱,高配置的ROS完全可以達到企業級的應用。 另外,ROS的路由功能非常全面。基本上平時能接觸到的情況,ROS都能有相應的解決方案。 例如針對外網就有:多線路負載均衡,不同ISP策略路由,大小不同的帶寬的疊加,單線多撥,IPIP PPTP借線。內網有:Bridge,交換,多網關,802.1Q VLAN,PPPOE-SERVER,HOTSPOT認證,WIFI等等。此外還有單臂路由充當3層 Bridge nat偽裝MAC VPN服務 強大的firwall,filter,靈活的mangle,還有高效的PCQ+HTB。 同時Mikrotik團隊,針對新硬件的優化時時的更新着ROS,幾乎每個月都會有一個新版本推出。 所以單就路由功能上面,豪不誇張的說,ROS就是軟路由業界的標桿!其它的產品,想從功能上,穩定性,效率上面超過ROS,真的相當困難。當然這僅僅是路由功能上來說。
好了,再來講講ROS的缺點。
縱觀ROS論壇,哪些話題是最受關注的?那就是教程和腳本。 ROS確實相比其它的產品來說上手難度有點大,需要有一定的網絡基礎,甚至玩的高深了還要一定的編程技巧。但學習成本比較高的另一個好處也有,那就是學會的人不會輕易更換陣地,呵呵。用戶忠誠度很高。
除了教程外,基本上很多人都在找ROS的腳本。。這就是我今天要講的,也是ROS的最大缺點:流控!
基於單機(單IP)的簡單的流量分配,實際上沒有任何意義,造成帶寬浪費不說。對單機,不同應用間,也起不到流控的效果(你一邊迅雷一邊游戲,無法實現)。
如果我要說ROS的限速功能差,肯定會有很多人噴我,實際上ROS的PCQ+HTB,對數包的處理是相當科學和高效的(國內有不少產品模仿)。所以我指的流控差,准確一點說 :就是數據識別。也就是ROS中的標記! 一切非基於應用層的標記,都是不准確的。例如80口一般是HTTP網頁,但迅雷一樣會占用80端下載,QQ也會用80口做VIP登陸口。 你將80口,標記為HTTP,那么迅雷一樣會通過這個端口逃出去。 例如LOL采用的是P2P傳輸技術,如果你為了壓制P2P,將P2P特征的數據流壓制了,LOL就會卡。。這就為什么很多人說,采用了XXX的腳本,LOL很卡,怎么辦?
總之換作通俗一點的說法就是: ROS抓壞蛋很歷害,手段也很高效。但是ROS卻無法分辨出來哪些是壞蛋!
ROS的mangle功能無比強大,只要你想的到,他都能做的到。你想將一個應用完美的標記出來,完全可能,抓包做L7,結合其它的如包大小,目標地址,源地址,端口,基本上都能做到數據識別。
但是請看下面這張圖:
<ignore_js_op>
這里羅列了,將近1720種網絡應用。請問現成的,ROS腳本,有哪一個腳本可以准確的將以上1720種應用,完美的標記出來?不是說ROS做不到,而是我們標的人做不到。一是應用太多,標不全,二是應用更新太快,你今天抓包制作好了L7了,明天QQ和迅雷更新,新版本了,又識別不到了。所以網上的各種腳本,基本上都是針對自己的使用情況,簡化標記的。例如公司用的不會標記游戲,網吧的也只標記了自己網吧里現成有的游戲,而我如果只要股票和網頁快就行了,別的都不需要。 或者新出來一個游戲,就沒辦法識別。所以很多時候,往往你運行的很好的ROS腳本,給別人用了,人家覺得效果很差。
最終得出一個結論,就是ROS的限速不好。雖然這並不是真實反應了ROS的實力,但是卻是真真切切帶給人們的觀念就是,ROS限速太難,ROS限速不好,大家苦苦的找尋各種神本, 實際上就是為了,找尋ROS准確的標記。
那么本文的中心點,就是: 標記! 解決好了標記!ROS就能相當完美的流控。
我采用的方法很簡單,大家先來看2張圖:
<ignore_js_op>
這是我模擬的4M的使用環境,我將迅雷所在的P2P標記在 第四類 DSCP4里面。限制了3M的速度的運行結果!
迅雷非常准確的,得到了3M的帶寬,沒有超過設定值,也沒有跑到別的分類中。證明標識非常准確。
<ignore_js_op>
這是我在迅雷的同時,打開網頁時的效果。流量瞬間被調整給了優先級更高的HTTP網頁,即,我分類中的第二類DSCP2。
網頁順利打開,證明對HTTP和迅雷的標記都非常准確,而且PCQ+HTB的優先級調配,工作良好,反應迅速。
那我是怎么做的呢? 實際上,我在ROS上的設置相當簡單。 只標記了5個類目
<ignore_js_op>
我將數據包的DSCP值為1 的標記成 DSCP1 代表了 DNS小包優先,游戲
DSCP值為2的標記,標成了DSCP2,代表了HTTP網頁和即時通信等
DSCP值為3的標記,標成了DSCP3,代表了HTTP文件下載,系統更新,QQ傳文件等
DSCP值為4的標記,標記了DSCP4,代表了所有的P2P下載和網絡電視
其它未識別的,默認DSCP的值都為0,統一標記了DSCP0。
然后就是上例中迅雷下載的圖中的,PCQ+HTB隊列,對這5類數據進行了優先級調配。
那么這些數據包的DSCP值,是誰提供的呢? 這就是本文標題中,提到的PA 或 碧海威,之類流控軟件的輔助的結果。
ROS不是標記不准嗎?大家求的各種神本,為的就是清楚無誤的標記嗎? 實際上,求人不如求流控軟件。 眾所周知,所有的流控軟件的核心技術
就是他們背后制作數據包識別的團隊,他們時時刻刻的,在更新識別庫(類似於病毒庫一樣),有了這個庫,他們的流控軟件就可以准確的將各種
網絡應用,在應用層就識別出來。
我們要做的就是,在碧海威中,將所有經過的數據,按種類不同,打上不同的DSCP值的標簽。然后交給ROS處理就可以了。
安裝碧海威或PA的,網橋版是需要至少3塊網卡的, 其中1塊是管理口,跟你管理的主機,接在同一個2層交換機上面即可。
其它的2塊網卡,就像一條網線的2個頭子一樣。。串在 ROS的內網口LAN,和你的內網交換機,中間即可。
換句話說,你就當碧海威 就是一條網線一樣,存在於網絡當中。。 一頭接着ROS的內網口,一頭接着內網交換機,即可。
實際操作如下:
下載碧海威的ISO文件,刻盤,或寫入U盤,啟動安裝。 碧海威的硬件條件,除3塊網卡外,其它的跟ROS相仿即可。
安裝過程就不詳細說了,官網都有介紹。實際上,啟動好以后,輸入帳號root和密碼root,輸入setup,按1,選擇硬盤。一路按Y,就完成了
然后輸入reboot,重啟后就能進入碧海威系統,然后按3,選擇一塊管理口,給他一個IP地址。例如你的本機是192.168.1.2 那你就輸192.168.1.3/24
然后你在本機的IE上面,輸入192.168.1.3,就可以訪問碧海威了。
安裝完以后,首先要做的事情是網口設置。本例中我有8塊網口,最后一塊,做了管理口,1-6,做了3對網橋。。第7個口空着。
如果你是3塊網卡,那就是,1進1出 1管理。。也就是說,整個系統中只有一對網橋。
<ignore_js_op>
設置網口的小技巧,就是先把網線拔了,顯示斷開的那個口就是你要操作的口,這樣設置內外網時就不會出錯了。
<ignore_js_op>
這是設置碧海威所在的網關和DNS
<ignore_js_op>
這是設置碧海威自身設備的路由
經過以上設置,碧海威本身就可以上網了 (主要為了自動更新識別庫) 如果你的內網環境是是32個IP以下,就可以安裝正式版授權版的,在未授權狀態下面,32IP以下免費。而且功能上沒有任何限制,可以自動更新。
如果你安裝的是免費版本的,最多允許256個IP,但是不能自動更新,也就是說,上面3張圖中的設置,可要可不要了。反正不能在線更新,只能手動更新的。碧海威自身設備 能不能上網就無關緊要了。
<ignore_js_op>
這里選擇,系統更新文件,進行更新。(如果是免費版,請選擇對應的免費版的更新文件,本例中的是正式版的文件,免費版的帶有free字樣)
<ignore_js_op>
這里是正確設置更新地址以后(默認是錯的,后面要加上st 2個字母),就可以發現,特征庫被自動更新了。(如果是免費版,請選擇對應的庫更新文件,手工進行更新,文件在官方公布的群共享里有,是l7r結尾的文件名,最新版本是20140618)
<ignore_js_op>
然后,就是關鍵的設置點所在了,在對象管理里面,點 自定義協議, 將你要識別的各種協議歸類。。。本例中,就是DSCP1 就是小包優先,我就將DNS ARP DHCP 游戲 股票 遠程桌面等都歸到這里。 然后DSCP2,DSCP3以類例推。。
<ignore_js_op>
下一步,就在流量策略里面,將你之前定義好的流量類別,分別打上,DSCP 1-4的標。。順手將病毒類的應用,加一條禁止通過。這樣數據連ROS都到達不了。就被攔截了,內網有各種病毒就不怕亂傳播了。
至此。。碧海威的設置已經完成。所有經過的數據,都會被打上 DSCP 1-4的標簽。。然后交由ROS處理
而ROS中,就好辦了,將碧海威交過來的DSCP值為1-4的,再加上一個0的,未識別的,標記上傳和下載的數據包,交由PCQ+HTB處理,就相當輕松了。這里就不截圖了,直接上傳腳本。供大家使用。
因為PA現在免費版的已經不支持DSCP功能,所以就不介紹了。
關於碧海威:
目前碧海威 分路由版和網橋版,路由版就是集成了路由功能的,也就是說,不要ROS也可以單獨運行的。 而網橋版就是本例中說明的版本。
網橋版本分為 2種
第1種是免費版 所有的文件中都帶有 free字樣的, 這個版本是允許256個IP 無自動升級功能,無基於協義的流控功能 (但可DSCP打標 ,正好可以配合ROS用戶用)
第2種是授權版 所有的文件中,都帶有st字樣的,這個版本在未授權前,只支持32個IP,超出了,會不受流控管理。 這個版本只要你的內網IP是32個以內的,那么用起來,跟正式授權版是一模一樣的,可以自動更新,可以DSCP打標,可以基於協議的流控(本例中就采用了這個版本,但是本人沒有用碧海威的流控功能,只用到了他的DSCP打標功能,流控依然交由ROS處理,碧海威只負責打標)
再貼幾張單線多撥的實際使用效果:
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
本例中是,單線5撥的,上傳疊加,每線5M 下載不疊加,1線和5線均只有110M
所以我在做流控時,上傳分了5個 HTB, 下載用了1個HTB
實際運行非常良好。每台機器都可用到110M的最大帶寬,網內可任意下載,看片。
游戲ping值,永遠都是綠的
網頁永遠都是秒開的
同時,單機上網,就算你自己一邊迅雷,你一邊玩游戲,照樣游戲優先。運行相當完美。
在多線實列里,我的IP超過了32個,所以我用的是免費版,只能每半年去官網群里下載更新包,手動更新一次。
不過就算不更新,實際上識別已經非常好了,未標出的數據很少。
至少識別效果上,我敢說就算是半年前的庫文件,都超過了目前網上能找到的所有的所謂神本,小包優先版本的腳本。
當然如果你的IP比較多,又想得到最新的升級庫,你也可以購買授權,實際上網橋版並不貴,如果用的好,支持一下正版
也無可厚非,畢竟這些的背后,都是需要團隊在付出的,如果大家都想免費的享用別人的成果,而不需要付出一分錢。
那這個東西,也不會長久,畢竟抓包的也要發薪水呀。。
最終,我想說的是,既然ROS標識這么累,那干嘛還自己標? 為什么不讓PA和碧海威,幫你標?人家可是有團隊時時更新的。
與其這么累的,滿世界找腳本,找到的效果也未必有這樣完美。
所以求人不如求已,用上了DSCP! 不再需要神本! 區區5類標記,全網應用一網打盡!
又利用上ROS超強的路由功能,又補足了流控短板! 是不是很棒呢?
有神本的同學,如果覺得本人說的不對,可以自己做做實驗看看,用你的神本去,迅雷下載,去看電影,你設置限速3M
看看是不是真的就限住了3M。
<ignore_js_op> 1線.rar
<ignore_js_op> 碧海威L7免費版安裝手冊20140923.pdf
最后附上ROS DSCP單線腳本,和碧海威免費版安裝手冊。 有不明白的,可去 ROS碧海威UBNT網絡技術 QQ群里找我。
因本人不從事IT相關行業,只是純業余愛好,所以不提供有償服務,至於提供免費服務,前提是我要有空。
另外該QQ群是我自己剛建的,歡迎技術愛好者,產品開發者們加入,共同學習,但是不歡迎以營利為目的人加入。