咱们在平常网络中有的时候会碰到有2-3条运营商线路,可是都是独立使用,这样使用的效果就是不够快,只能独享一条线路的带宽,若是咱们能3条线路叠加到一块儿,如20M带宽能够重复拨号3次,那就是说能够得到20M×3=60M的带宽。在这里说下RouterOS如何实现多线路叠加带宽。bash
咱们在RouterOS实现PPPoE带宽叠涉及到的主要功能包括VRRP、PCC标记和策略路由。接下来咱们细说这里我使用的是RB962的路由器,使用ether1接口作PPPoE拨号,并取名为ether1-wan,Wlan1无线覆盖上网。网络
环境:负载均衡
1条10兆的PPPoE拨号宽带三拨ide
一个安装有RouterOS的路由器,而且是多接口测试
1、VRRP配置spa
首先进入interface的VRRP下建立3个VRRP接口,注意每一个VRRP须要设置不一样的VRID,不然没法添加(固然你也能够不用创建3个VRRP接口,由于ether1-wan的MAC地址也是不一样等,能够只创建2个VRRP接口,但这里为了避免让你们绕弯就直接创建3个VRRP接口)命令行
下面是添加第一个VRRP接口,设置interface为ether1-wan,VRID为13d
剩下的VRRP接口也是相同的,只是VRID不同,vrrp2和vrrp3的配置以下:orm
添加完成后,3个VRRP接口都是红色的没法生效,由于没有为对应的接口配置上IP地址blog
咱们能够看看3个vrrp接口的MAC地址,vrrp1的MAC地址,vrrp2和vrrp3的MAC地址分别是00:00:5E:00:01:02,00:00:5E:00:01:03
2、配置VRRP接口IP地址
如今要让3个vrrp接口生效,须要给ether1-wan、vrrp一、vrrp2和vrrp3设置IP地址,进入ip address添加地址,这里咱们能够随便设置ip地址32位子网也能够,只要让vrrp接口启用生效。
先添加ether1-wan,由于VRRP接口都是基于ether1-wan上,这个接口必需要有ip地址,咱们随便设置一个10.0.0.1/32的地址,只要有地址便可
在address里为vrrp一、vrrp2和vrrp3添加上ip地址10.0.0.一、10.0.0.2和10.0.0.3,以下图
如今咱们看看interface vrrp中的状况,所有生效
完成后咱们能够创建PPPoE拨号了,进入PPP点加号,选择PPPoE-client,添加到默认名称为pppoe-out1,进入Dial out配置账号和密码,这里我假设账号和密码都是yus,其余参数能够默认配置,注意Use Peer DNS和Add Default Route取消,由于后面咱们会手动添加路由
一样的配置,将vrrp2和vrrp3在PPP中添加,分别是pppoe-client2和pppoe-client3,账号密码都相同,以下图,添加完成后,拨号成功默认会在pppo-out前面出现R,表明拨号成功
在ip address中能够看到3个pppoe-out拨号获取的ip地址
3、添加PCC规则
拨号成功后,咱们接下来要作的是配置PCC规则,这个是带宽叠加的关键,PCC是Per Connection Classifier,即每次链接分类,对进入的数据流进行分类,配置较为复杂涉及到链接分类和路由策略标记,你们能够按照这个流程来。
首先咱们要进入ip firewall mangle中配置PPC规则和路由标记,有几个参数咱们须要说明,src-address是内网电脑的IP地址段,这里我家里是192.168.88.0/24,PCC定义能够认为是将数据分为几份,每条规则取其中的第几份作处理。咱们是有3条线路,就须要分3份。
如per-connection-classifier=both-addresses:3/0,表明分3份,取第一份,由于PCC计数是从0开始,那后面两条就是:
per-connection-classifier=both-addresses:3/1
per-connection-classifier=both-addresses:3/2
那咱们按照这个规则来详细介绍:
在mangle下点加号,新建第一条规则,在General下选择Chain为prerouting(路由前),src-address=192.168.88.0/24
在Advanced里配置Per Connection Classifier参数
在Extra中配置Dst-address-type的address-type为local,点Invert(表明排除路由器本地IP地址),在Action中配置action=mark-connection标记链接,new-connection-mark取名pcc1
这样第一条PCC规则配置完了,下面是要配置与PCC相对应的路由规则,前面是将数据链接经过PCC分类,分类后分配给后面的路由规则标记,而后路由分发到对应的接口作负载均衡,下面新建一条mangle规则,标记路由策略,Chain=prerouting,src-address=192.168.88.0/24,connection-mark=pcc1,取前一条PCC规则标记。在Action中选择action=mark-routing,new-routing-mark取名route1。
后面也是相同的配置,继续添加相同的两组规则。后面规则就不在过多介绍,这里有脚本,打开winbox的new terminal后,在命令行复制粘贴如下脚本:
/ip firewall mangle add action=mark-connection chain=prerouting comment=pcc1 dst-address-type=!local \ new-connection-mark=pcc1 per-connection-classifier=both-addresses:3/0 src-address=\ 192.168.88.0/24 add action=mark-routing chain=prerouting connection-mark=pcc1 new-routing-mark=route1 \src-address=192.168.88.0/24 add action=mark-connection chain=prerouting comment=pcc2 dst-address-type=!local \ new-connection-mark=pcc2 per-connection-classifier=both-addresses:3/1 src-address=\ 192.168.88.0/24 add action=mark-routing chain=prerouting connection-mark=pcc2 new-routing-mark=route2 \src-address=192.168.88.0/24 add action=mark-connection chain=prerouting comment=pcc2 dst-address-type=!local \ new-connection-mark=pcc3 per-connection-classifier=both-addresses:3/2 src-address=\ 192.168.88.0/24 add action=mark-routing chain=prerouting connection-mark=pcc3 new-routing-mark=route3 \src-address=192.168.88.0/24
加入每一个PPPoE拨号接口的返程路由标记,如下是脚本:
/ip firewall mangle add action=mark-connection chain=input in-interface=pppoe-out1 new-connection-mark=pcc1 add action=mark-connection chain=input in-interface=pppoe-out2 new-connection-mark=pcc2 add action=mark-connection chain=input in-interface=pppoe-out3 new-connection-mark=pcc3 add action=mark-routing chain=output connection-mark=pcc1 new-routing-mark=route1 add action=mark-routing chain=output connection-mark=pcc2 new-routing-mark=route2 add action=mark-routing chain=output connection-mark=pcc3 new-routing-mark=route3
4、路由配置
下面是将标记的路由添加到路由表中,winbox进入ip route添加规则,以下图。进入路由表,添加gateway=pppoe-out1,routing-mark=route1,后面2条route2和route3分别对应到pppoe-out2和pppoe-out3(测试时使用了open***组网,发现ROS自己没法拨到open***服务端,检查为没法联网,后来发现为自己没有路由因此致使的,这里添加一条dst.Address=0.0.0.0/0,gateway=pppoe-out3,routing mark=main便可),配置完成后以下:
最后记得配置好nat规则,进入ip firewall nat中添加一个snat用于隐藏内网ip访问公网,代码以下:
/ip firewall nat add action=masquerade chain=srcnat #(这样写会容易形成各类问题)
推荐:
/ip firewall nat add chain=srcnat connection-mark=pcc1 action=masquerade add chain=srcnat connection-mark=pcc2 action=masquerade add chain=srcnat connection-mark=pcc3 action=masquerade
这样PCC带宽叠加就配置完成,你们能够测试了是否带宽达到了原来的3倍。