现在RouterOS在使用PCC负载均衡已经很成熟了,通常我们接入多条线路,需要RouterOS路由器安装更多的以太网卡,以便接入更多的线路,如果10条左右的线路还能基本解决,但超过10条时候,路由器扩展网卡受到局限性,当前CCR2004-16G-2S+有16个千兆电口的路由器,也只能接入16条线路。特别是多条光猫接入的PPPoE拨号方式,如果是一台PC的RouterOS路由器,可能希望安装一个万兆网卡解决10-20条线路的接入,或者是有一条光猫可以重复拨号三次,也需要在一张网卡上完成。
首先我们要了解运营商的BRAS认证设备,如果接入是在同一台运营商的BAS下(PPPoE认证设备),在该设备下每个拨号设备的网卡MAC地址是唯一的,不能重复。作为拨号的路由器MAC地址不能相同,所以才要求使用不同的网卡,解决MAC不同的问题,避免PPPoE拨号失败。
主流的单网卡多次拨号,大概有两种方式,一种是Bridge vlan方式,一种是VRRP方式,两种方式各有优缺点,VRRP方式我更推荐用于单线多拨的方式。
Bridge VLAN多线路拨号
早期民间高手想到了通过二层管理交换机实现了划分VLAN的方式来进行拨号,通过24口、48口管理交换机划分多个vlan id,Trunk给RouterOS一个网卡,RouterOS在interface vlan下建立对应的VLAN id,但每个VLAN接口的MAC地址是从属于实际物理网卡的,VLAN接口的MAC还是相同,所以还要将每个VLAN加入到一个独立的bridge方式,利用bridge可以设定admin-mac的特点,将每组拨号的MAC区分开,达到多线拨号能在一张网卡上实现。如下图:
通过简单的一个配置说下:
华为交换机接入多条光猫,每个交换机的电口划分一个VLAN id,这里我们仅用2条线路举例,分别接入交换机的1,2口,24口连接RouterOS的ether1
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
interface GigabitEthernet0/0/24
description RouterOS_ether1
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan 10 20
RouteOS配置,在ether1网卡下,创建VLAN10,20接口
/interface vlan
add interface=ether1 name=vlan10 vlan-id=10
add interface=ether1 name=vlan20 vlan-id=20
创建bridge接口,用于添加对应的VLAN接口,并设置admin-mac地址,每个bridge的MAC要不同
/interface bridge
add admin-mac=E4:8D:8C:1D:24:CC auto-mac=no fast-forward=no name=bridge-vlan10 \
protocol-mode=none
add admin-mac=E4:8D:8C:1D:24:C1 auto-mac=no fast-forward=no name=bridge-vlan20 \
protocol-mode=none
将对应的VLAN接口加入到对应的Bridge下
/interface bridge port
add bridge=bridge-vlan10 interface=vlan10
add bridge=bridge-vlan20 interface=vlan20
将bridge-vlan10和bridge-vlan20添加到对应的pppoe-out拨号接口,设置账号密码完成拨号。
/interface pppoe-client
add interface=bridge-vlan10 name=pppoe-out1 password=yus user=yus
add interface=bridge-vlan20 name=pppoe-out2 password=yus user=yus
剩下的PCC负载均衡配置,参见RouterOS入门到精通的6.13章节
VRRP多线路拨号
不过这个方式需使用了二层管理交换机,接入时配置会比较多,涉及二层管理交换机配置和RouterOS的VLAN和Bridge配置,民间的高手又发明了在RouterOS v3.0版本后修改的VRRP功能,每当启用一个VRRP虚机接口后,都会由于冗余路由协议特性自动生成一个独立与实际物理网卡的虚拟MAC地址,不再像之前使用VLAN和加入bridge的方式,简化了RouterOS的配置,这样连接光猫的交换机也不用使用成本较高的二层vlan管理交换机,仅需要一台普通的傻瓜交换机就搞定。
对于普通的一线多次拨号VRRP是安全的,如果是多条光猫接入到一台傻瓜交换机,从网络安全考虑VRRP方式虽然简便,但并不安全,因为多条光猫接入的时候,运营商侧是通过VLAN隔离的,但如果通过一个傻瓜交换机接入后,会造成多条线路的二层广播,如果没有造成广播风暴和环路那就相安无事,就怕网络出现二层广播风暴和环路。
注意:由于VRRP虚拟的MAC地址是RouterOS默认的,可能会出现在运营商同一台BRAS(PPPoE认证设备)上存在其他的RouterOS设备也采用VRRP虚拟接口,会出现MAC一样,是无法完成拨号。如果需要修改VRRP接口的MAC地址,请参见14.6章。
上图是简单多光猫接入到一台傻瓜交换机,所有光猫都在一个广播域(网络不太安全),交换机接到RouterOS的ether1口,然后创建VRRP接口,并将VRRP接口设置到对应的pppoe-out拨号接口上,配合PCC即可实现多线的负载均衡。
下图,一个光猫能同时5次拨号(仅仅是一个假设,大多只能3次拨号),用来演示如何进行VRRP的拨号,这样偷个懒把多光猫拨号配置实例一起讲解了,因为配置是一样的。
首先,进入interface vrrp菜单下,创建vrrp接口,
在添加项中,进入VRRP项设置interface和VRID,这里interface是设置对应拨号的物理网卡,VRID用于区分多个VRRP虚拟接口的身份,即每个用于拨号的VRRP虚拟接口VRID都不同,其他参数默认,这样vrrp1接口就在ether1-wan上生成了一个虚拟机口(如果你想仔细了解VRRP,可以参考RouterOS入门到精通的VRRP章节)。
添加完成后,vrrp1状态是红色,因为vrrp1接口和ether1-wan没有设置IP地址,之后我们会说明
假设当前光猫能重复拨号是5次,这样需要建立5条vrrp虚拟接口,他们只是VRID不同,其他参数一样,5条线路的VRID分别是1~5,对于5条光猫线路也是如此配置。
5口虚拟的VRRP接口添加完成后,下面需要将它们启动,当前他们都不能正常使用,因为VRRP接口虚拟路由冗余协议,即对2台以上设备实现三层的冗余,当前5口接口都没有设置IP地址,即是不能生效使用的。
这里我们要进入/ip address添加ip地址,不仅要添加5个vrrp虚拟接口的地址,还要添加ether1-wan接口ip,至于设置什么ip地址,就随意了!目的是让vrrp接口生效。
首先我们设置ether1-wan接口的ip,192.168.0.1,这里我直接使用主机IP是可以生效的
接着添加vrrp1虚拟接口的IP地址,同样设置为主机IP,192.168.1.1,
之后的配置以此类推192.168.2.1-192.168.5.1,添加剩下的4个vrrp接口
现在我们返回到interface vrrp菜单下,所有接口都进入了RM状态,即VRRP协议的Master状态
我们来对比下VRRP接口的MAC地址,都是不同的
现在我们可以将vrrp接口分别设置到5个不同的pppoe-client接口,实现5个不同账号的拨号了!
剩下建立5个对应vrrp接口的的PPPoE客户端拨号: