Manual:Multiple TE VPLS

From MikroTik Wiki
Jump to: navigation, search

Summary

This article shows how to make multiple TE/VPLS tunnels to the same remote router.


Network Layout

We will create a network consisting of four routers, PE routers has multiple loopback addresses as illustrated in diagram below.

Router Configurations

Connectivity between routers and Loopback addresses

R1

/system identity set name=R1

/interface bridge add name=Loopback

/ip address
add address=192.168.33.1/30 interface=ether1
add address=192.168.33.14/30 interface=ether2
add address=192.168.10.1/24 interface=ether3
add address=10.255.0.1/32 interface=Loopback
add address=10.255.1.1/32 interface=Loopback

R2

/system identity set name=R2

/interface bridge add name=Loopback

/ip address
add address=192.168.33.2/30 interface=ether1
add address=192.168.33.5/30 interface=ether2
add address=10.255.0.2/32 interface=Loopback


R3

/system identity set name=R3

/interface bridge add name=Loopback

/ip address
add address=192.168.33.6/30 interface=ether1
add address=192.168.33.9/30 interface=ether2
add address=192.168.20.1/24 interface=ether3
add address=10.255.0.3/32 interface=Loopback
add address=10.255.1.3/32 interface=Loopback

R4

/system identity set name=R4

/interface bridge add name=Loopback

/ip address
add address=192.168.33.10/30 interface=ether1
add address=192.168.33.13/30 interface=ether2
add address=10.255.0.4/32 interface=Loopback


Loopback address reachability

In this setup we will use OSPF dynamic routing protocol to distribute routing information between routers. To successfully complete the setup we need loopback reachability information on every router.

R1

/routing ospf instance
set default router-id=10.255.0.1 mpls-te-area=backbone mpls-te-router-id=Loopback

/routing ospf network
add network=192.168.33.0/24 area=backbone
add network=10.255.0.1/32 area=backbone
add network=10.255.1.1/32 area=backbone

R2

/routing ospf instance
set default router-id=10.255.0.2 mpls-te-area=backbone mpls-te-router-id=Loopback

/routing ospf network
add network=192.168.33.0/24 area=backbone
add network=10.255.0.2/32 area=backbone

R3

/routing ospf instance
set default router-id=10.255.0.3 mpls-te-area=backbone mpls-te-router-id=Loopback

/routing ospf network
add network=192.168.33.0/24 area=backbone
add network=10.255.0.3/32 area=backbone
add network=10.255.1.1/32 area=backbone

R4

/routing ospf instance
set default router-id=10.255.0.4 mpls-te-area=backbone mpls-te-router-id=Loopback

/routing ospf network
add network=192.168.33.0/24 area=backbone
add network=10.255.0.4/32 area=backbone


After OSPF is set up verify that we have correct routing information in routing table of each router:

[admin@R1] /ip route> print 
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADS  0.0.0.0/0                          10.5.101.1                1
 1 ADC  10.255.0.1/32      10.255.0.1      lo                        0
 2 ADo  10.255.0.2/32                      192.168.33.2            110
 3 ADo  10.255.0.3/32                      192.168.33.2            110
                                           192.168.33.13     
 4 ADo  10.255.0.4/32                      192.168.33.13           110
 5 ADo  10.255.1.3/32                      192.168.33.2            110
                                           192.168.33.13     
 6 ADC  192.168.10.0/30    192.168.10.1    ether3                    0
 7 ADC  192.168.33.0/30    192.168.33.1    ether1                    0
 8 ADo  192.168.33.4/30                    192.168.33.2            110
 9 ADo  192.168.33.8/30                    192.168.33.13           110
 10 ADC  192.168.33.12/30   192.168.33.14   ether2                    0

Setting Resource Reservation

Next step is to set up TE resource for every interface on which we might want to run TE tunnel.

Configuration on all the routers are the same:

/mpls traffic-eng interface
add interface=ether1 bandwidth=10Mbps
add interface=ether2 bandwidth=10Mbps

Since we are not using real bandwidth limitation on the tunnels in this example, bandwidth parameter is only used for administrative purposes and can be any value (it does not represent how much bandwidth will actually flow through the interface).

TE tunnel setup

R1

/mpls traffic-eng tunnel-path
add name=dyn

/interface traffic-eng
add bandwidth=5Mbps name=TE1-to-R3 to-address=10.255.0.3 primary-path=dyn \
   record-route=yes from-address=10.255.0.1
add bandwidth=5Mbps name=TE2-to-R3 to-address=10.255.1.3 primary-path=dyn \
   record-route=yes from-address=10.255.1.1


R3

/mpls traffic-eng tunnel-path
add name=dyn

/interface traffic-eng
add bandwidth=5Mbps name=TE1-to-R1 to-address=10.255.0.1 primary-path=dyn \
   record-route=yes from-address=10.255.0.3
add bandwidth=5Mbps name=TE2-to-R1 to-address=10.255.1.1 primary-path=dyn \
   record-route=yes from-address=10.255.1.3


Verify that TE tunnels are working


[admin@R1] /interface traffic-eng> monitor 0
             tunnel-id: 14
    primary-path-state: established
          primary-path: dyn
  secondary-path-state: not-necessary
           active-path: dyn
          active-lspid: 1
          active-label: 39
        explicit-route: S:192.168.33.2/32,S:192.168.33.5/32,S:192.168.33.6/32
    reserved-bandwidth: 5.0Mbps

Create BGP peers

We need to make BGP peer per each loopback set, each peer will use its own instance.

R1

/routing bgp instance
set default router-id=10.255.0.1
add name=inst2 router-id=10.255.1.1 as=65530
/routing bgp peer
add toR3L1 remote-address=10.255.0.3 remote-as=65530 update-source=10.255.0.1 address-families=l2vpn in-filter=l2vpn-in1
add toR3L2 remote-address=10.255.1.3 remote-as=65530 update-source=10.255.1.1 address-families=l2vpn in-filter=l2vpn-in2

R3

/routing bgp instance
set default router-id=10.255.0.3
add name=inst2 router-id=10.255.1.3 as=65530
/routing bgp peer
add toR1L1 remote-address=10.255.0.1 remote-as=65530 update-source=10.255.0.3 address-families=l2vpn in-filter=l2vpn-in1
add toR1L2 remote-address=10.255.1.1 remote-as=65530 update-source=10.255.1.3 address-families=l2vpn in-filter=l2vpn-in2


Set up BGP VPLS and Routing Filters

Next step is to set up BGP VPLS. Since BGP VPLS is advertised on all intstances and all peers, we need to filter out unnecessary advertisements for each peer. In this case BGP VPLS with RT 1:1 will go over first BGP peer, and RT 1:2 will go over second BGP peer.

R1

/interface vpls bgp-vpls
add export-route-target=1:1 import-route-target=1:1 name=01
add export-route-target=1:2 import-route-target=1:2 name=11

/routing filter
add action=discard chain=l2vpn-in1 invert-match=yes route-targets=1:1
add action=discard chain=l2vpn-in2 invert-match=yes route-targets=1:2

R3

/interface vpls bgp-vpls
add export-route-target=1:1 import-route-target=1:1 name=01
add export-route-target=1:2 import-route-target=1:2 name=11

/routing filter
add action=discard chain=l2vpn-in1 invert-match=yes route-targets=1:1
add action=discard chain=l2vpn-in2 invert-match=yes route-targets=1:2

Now there should be two dynamic VPLS tunnels, each goes over its own TE

[admin@R1] /interface vpls> print 
Flags: X - disabled, R - running, D - dynamic, 
B - bgp-signaled, C - cisco-bgp-signaled 
 0 RDB name="vpls8" mtu=1500 l2mtu=1500 mac-address=02:2D:13:3B:73:80 arp=enable>
       arp-timeout=auto disable-running-check=no remote-peer=10.255.0.3 
       cisco-style=no cisco-style-id=0 advertised-l2mtu=1500 
       pw-type=raw-ethernet use-control-word=yes vpls=01 

 1 RDB name="vpls9" mtu=1500 l2mtu=1500 mac-address=02:D1:CC:3F:65:73 arp=enable>
       arp-timeout=auto disable-running-check=no remote-peer=10.255.1.3 
       cisco-style=no cisco-style-id=0 advertised-l2mtu=1500 
       pw-type=raw-ethernet use-control-word=yes vpls=11 

[admin@R1] /interface vpls> monitor vpls8
       remote-label: 33
        local-label: 34
      remote-status: 
          transport: TE1-to-R3
     imposed-labels: 0,33

[admin@R1] /interface vpls> monitor vpls9
       remote-label: 17
        local-label: 18
      remote-status: 
          transport: TE2-to-R3
     imposed-labels: 0,17

See More


[ Top | Back to Content ]