[RouterOS] ROS对接碧海威或PA等流控实现完美流控详细教程(附脚本全免费)

前言:

经常在群里看到不少朋友争论海蜘蛛 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 (1.02 KB, 下载次数: 1094) 

<ignore_js_op> 碧海威L7免费版安装手册20140923.pdf (851.91 KB, 下载次数: 853) 

最后附上ROS DSCP单线脚本,和碧海威免费版安装手册。 有不明白的,可去 ROS碧海威UBNT网络技术   QQ群里找我。
因本人不从事IT相关行业,只是纯业余爱好,所以不提供有偿服务,至于提供免费服务,前提是我要有空。

另外该QQ群是我自己刚建的,欢迎技术爱好者,产品开发者们加入,共同学习,但是不欢迎以营利为目的人加入。