咱們在平常網絡中有的時候會碰到有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倍。