Community discussions

MikroTik App
 
blingblouw
Member
Member
Topic Author
Posts: 345
Joined: Wed Aug 25, 2010 9:43 am

Redundant VPLS Termination

Fri Oct 28, 2022 1:09 pm

Hi.

Currently all our sites connect to a single Mikrotik router for VPLS termination.

I'm trying to setup a way so that there is an automatic failover incase of hardware issues. I've run a quick lab and it seems like its possible, just wanted to find out what everyone else is doing and if there is maybe a better way.

I'm using LDP and not BGP based signalling.

Basically the idea is that VPLS1 terminates the tunnels, its got a higher OSPF interface priority (and DR) down to VPLS2, Cust1 & Cust2.

VPLS1 & VPLS2 have the SAME lsr-id and transport-id so that if VPLS1 fails, after sometime the route for 1.1.1.1 will hit VPLS2 and tunnels re-establish.

Is this the correct way to go about this?

VPLS1
/interface vpls
add disabled=no l2mtu=1500 mac-address=02:B7:93:34:5B:24 name=vpls-cust1 remote-peer=1.0.0.100 vpls-id=1:1
add disabled=no l2mtu=1500 mac-address=02:34:D8:F1:08:8B name=vpls-cust2 remote-peer=1.0.0.101 vpls-id=1:2
/ip address
add address=10.100.0.1/24 interface=ether1 network=10.100.0.0
add address=1.0.0.1 interface=lo1 network=1.0.0.1
add address=1.1.1.1 interface=lo2_ha network=1.1.1.1
/mpls interface
set [ find default=yes ] mpls-mtu=1526
/mpls ldp
set enabled=yes lsr-id=1.1.1.1 transport-address=1.1.1.1
/mpls ldp interface
add interface=ether1
add interface=lo2_ha
/routing ospf instance
set [ find default=yes ] disabled=yes router-id=1.0.0.1
/routing ospf interface
add interface=ether1 priority=100
/routing ospf network
add area=backbone network=1.0.0.1/32
add area=backbone network=10.100.0.0/24
add area=backbone network=1.1.1.1/32


VPLS2
/interface vpls
add disabled=no l2mtu=1500 mac-address=02:F5:36:CC:01:C8 name=vpls-cust1 remote-peer=1.0.0.100 vpls-id=1:1
add disabled=no l2mtu=1500 mac-address=02:D7:5A:E2:9F:FD name=vpls-cust2 remote-peer=1.0.0.101 vpls-id=1:2
/routing ospf instance
set [ find default=yes ] router-id=1.0.0.2
/routing ospf interface
add interface=ether1 priority=90
add cost=20 interface=lo2_HA
/routing ospf network
add area=backbone network=1.0.0.2/32
add area=backbone network=10.100.0.0/24
add area=backbone network=1.1.1.1/32
/ip address
add address=10.100.0.2/24 interface=ether1 network=10.100.0.0
add address=1.0.0.2 interface=lo1 network=1.0.0.2
add address=1.1.1.1 interface=lo2_HA network=1.1.1.1
[admin@VPLS2] /interface> /mpls ex
/mpls interface
set [ find default=yes ] mpls-mtu=1526
/mpls ldp
set enabled=yes lsr-id=1.1.1.1 transport-address=1.1.1.1
/mpls ldp interface
add interface=ether1


Cust1
/interface vpls
add disabled=no l2mtu=1500 mac-address=02:80:0A:FF:BF:40 name=vpls-core remote-peer=1.1.1.1 vpls-id=1:1
/mpls interface
set [ find default=yes ] mpls-mtu=1526
/mpls ldp
set enabled=yes lsr-id=1.0.0.100 transport-address=1.0.0.100
/mpls ldp interface
add interface=ether1
/routing ospf instance
set [ find default=yes ] router-id=1.0.0.100
/routing ospf interface
add interface=ether1 priority=0
/routing ospf network
add area=backbone network=1.0.0.100/32
add area=backbone network=10.100.0.0/24

---


Cust2
/interface vpls
add disabled=no l2mtu=1500 mac-address=02:28:8B:ED:29:6B name=vpls-core remote-peer=1.1.1.1 vpls-id=1:2
/ip address
add address=10.100.0.101/24 interface=ether1 network=10.100.0.0
add address=1.0.0.101 interface=lo1 network=1.0.0.101
add address=192.168.1.101/24 interface=vpls-core network=192.168.1.0
/mpls interface
set [ find default=yes ] mpls-mtu=1526
/mpls ldp
set enabled=yes lsr-id=1.0.0.101 transport-address=1.0.0.101
/mpls ldp interface
add interface=ether1
/routing ospf instance
set [ find default=yes ] router-id=1.0.0.101
/routing ospf interface
add interface=ether1 priority=0
/routing ospf network
add area=backbone network=1.0.0.101/32
add area=backbone network=10.100.0.0/24

EDIT: just cannot get this formatting right....
 
athatare81
just joined
Posts: 2
Joined: Wed Aug 24, 2011 2:47 am

Re: Redundant VPLS Termination

Mon Apr 10, 2023 1:04 am

Hi blingblouw,

Interesting approach! Does it works the way you expected it to work?

Kind regards
 
mada3k
Long time Member
Long time Member
Posts: 687
Joined: Mon Jul 13, 2015 10:53 am
Location: Sweden

Re: Redundant VPLS Termination

Mon Apr 10, 2023 11:23 am

Interesting. I think it's best practice not to have any chance of overlapping LSR-ID's, but I'm not sure. It will probably work.

We have solved our redundant tunnels with basically terminating twice (in core1 and core2) and let RSTP decide path. We also have some EoIP tunnels, but those are bound to a VRRP address, so basiclly running in an active/backup fashion. The failover time is about 10s.
 
blingblouw
Member
Member
Topic Author
Posts: 345
Joined: Wed Aug 25, 2010 9:43 am

Re: Redundant VPLS Termination

Mon Apr 10, 2023 11:40 am

Unfortunately I wasn’t going to implement this on production without further info.

Our biggest issue was not being able to assign public IPs from radius server. Once we got that resolved, also went down the route of multiple vpls tunnels to different BRAS.

It worked in the lab, but who knows what happens over time in prod. :/
 
User avatar
StubArea51
Trainer
Trainer
Posts: 1739
Joined: Fri Aug 10, 2012 6:46 am
Location: stubarea51.net
Contact:

Re: Redundant VPLS Termination

Mon Apr 10, 2023 6:13 pm

The most stable way to accomplish this in prod is to use scripting to keep one of the VPLS tunnels down at the redundant termination point and tie it into VRRP master/backup state.
 
glueck05
newbie
Posts: 37
Joined: Fri Jan 26, 2018 12:49 pm

Re: Redundant VPLS Termination

Thu Jul 06, 2023 12:26 pm

The most stable way to accomplish this in prod is to use scripting to keep one of the VPLS tunnels down at the redundant termination point and tie it into VRRP master/backup state.
Thanks for the hint. I have set the following scripts and it works very well.

Master
/interface vrrp
add comment=Default:Master interface=ether4.vlan1010 interval=500ms name=ether4.vlan1010.vrrp1 on-backup=\
    "/interface vpls disable vpls1.rt1.test;\r\
    \n/mpls ldp set transport-address=10.0.1.1 lsr-id=10.0.1.1;" on-master="/interface vpls enable vpls1.rt1.test;\r\
    \n/mpls ldp set transport-address=10.0.10.6 lsr-id=10.0.10.6;" preemption-mode=no priority=101 vrid=50
 
Slave
/interface vrrp
add comment="Default: Backup" interface=ether4.vlan1010 interval=500ms name=\
    ether4.vlan1010.vrrp1 on-backup="/interface vpls disable vpls1.rt1.test;\r\
    \n mpls ldp set transport-address=10.0.6.6 lsr-id=10.0.6.6;" on-master="/int\
    erface vpls enable vpls1.rt1.test;\r\
    \n/mpls ldp set transport-address=10.0.10.6 lsr-id=10.0.10.6;" \
    preemption-mode=no vrid=50
 


I have now tried to set load balancing in addition to failover. The idea is another VRRP-IF which is the master on rt2 and always alternately enter rt1 or rt2 as the endpoint on the vpls tunnels at the locations. Due to the change of the "Transport Address" at a central point, the whole thing doesn't work. If I set the "Transport Address" on the interfaces, it is not adopted for the VPLS tunnel. Is there a way to set the transport address on an interface basis and the VPLS tunnel adopts this setting? Currently he always takes the lowest IP which corresponds to the documentation.

thanks,
glueck

Who is online

Users browsing this forum: astelsrl, AtisE, CGGXANNX, syahmi5650 and 91 guests