Cisco SD-WAN Lab Part 2 - TLOC Extensions and VRRP

Cisco SD-WAN Lab Part 2 - TLOC Extensions and VRRP

Following up on the last article, I´d like to talk about TLOC Extensions. Here´s a reminder of the topology:

Não foi fornecido texto alternativo para esta imagem

We will focus on Site 6:

Não foi fornecido texto alternativo para esta imagem

What are TLOC Extensions? Site 6 in my topology has two routers installed for redundancy, in a scenario where you could ignore circuit costs, you would have two or more circuits used for transport per Router. But what if you could only afford two circuits? You would have to connect one circuit to each of your routers, and to use transport one, the traffic would flow to Router 1, and to use transport 2 the traffic would flow to Router 2, right? Well, not if you use TLOC extensions.

TLOC extensions allow you to extend a TLOC across an interface. In my example there are two links interconnecting both vEdges, "Site_6_NET" is extending It´s Internet circuit via interface ge0/1 to "Site_6_MPLS" vEdge, and "Site_6_MPLS" is also extending it´s MPLS circuit via interface ge0/2 to "Site_6_NET".

How does it work? For the vEdge connecting to the TLOC Extension the configuration is completely transparent, It's just like connecting to a circuit provided by the ISP. The Router that is extending the TLOC is the one with the extra configuration, stating that the interface is an extension of another interface, that is connected to a circuit. Let's look at each of the Extensions.

"Site_6_NET" Extension, stating the interface that is going to be extended:

 interface ge0/1

  ip address 172.30.0.1/30

  tloc-extension ge0/0

  no shutdown
        

Configuration on "Site_6_MPLS", as you can see it´s the normal config to connect to a circuit:


 interface ge0/1

  description TLOC_EXT_to_public-internet

  ip address 172.30.0.2/30

  tunnel-interface

   encapsulation ipsec

   color public-internet

   no allow-service bgp

   allow-service dhcp

   allow-service dns

   allow-service icmp

   no allow-service sshd

   no allow-service netconf

   no allow-service ntp

   no allow-service ospf

   no allow-service stun

   allow-service https

        

"Site_6_MPLS" Extension:


 interface ge0/2

  ip address 172.30.0.6/30

  tloc-extension ge0/0

  no shutdown

        

"Site_6_NET" usual config to a transport interface:


interface ge0/2

  ip address 172.30.0.5/30

  tunnel-interface

   encapsulation ipsec

   color mpls

   no allow-service bgp

   allow-service dhcp

   allow-service dns

   allow-service icmp

   no allow-service sshd

   no allow-service netconf

   no allow-service ntp

   no allow-service ospf

   no allow-service stun

   allow-service https

        

Easy and self-explanatory once you look at the config right?


Another thing to take into consideration is the addressing used for these interconnections. I´m using private IP´s with a /30 subnet mask, but we need to think about the underlay for a bit.

For instance, as Site_6_MPLS is trying to build a tunnel from interface ge0/1 which is now his public-internet color, It´s source is going to be 172.30.0.2 and that´s not routable on the public internet. The solution is to enable NAT on vEdge Site_6_NET on the interface connecting to the ISP:


vpn 0

 interface ge0/0

  description ***Circuito_NET***

  ip address 25.12.10.2/30

  ipv6 dhcp-client

  nat   ←-----

  !

        
(...)
        

Now when Site_6_MPLS is trying to build a tunnel from the public-internet color, It´s source address is going to be 25.12.10.2, the connectivity issue is solved.

We also need to do the same for the MPLS extension to Site_6_NET, right now the MPLS PE does not know about the 172.30.0.4/30 subnet. We could again use NAT, but since we are talking about private networks and MPLS circuits we could use a static route on the PE, or use BGP to exchange routes between the PE and vEdge Site_6_MPLS. Let's use BGP for fun. In this case we´re running BGP on VPN 0 (transport), so we´re using it on the underlay like on a tradicional MPLS deployment:


Site_6_MPLS# sh run vpn 0               

vpn 0

 router

  bgp 65006

   address-family ipv4-unicast

    network 172.30.0.4/30

   !

   neighbor 192.168.100.17

    no shutdown

    remote-as 65000

        

Don´t forget to allow-service bgp, It's disabled by default on interfaces that belong to VPN 0:


 interface ge0/0

  description Circuito_WAN_MPLS

  ip address 192.168.100.18/30

  ipv6 dhcp-client

  tunnel-interface

   encapsulation ipsec

   color mpls

   allow-service bgp  ←--------

   allow-service dhcp

   allow-service dns

   allow-service icmp

   no allow-service sshd

   no allow-service netconf

   no allow-service ntp

   no allow-service ospf

   no allow-service stun

   allow-service https

        

The ISP´s PE now knows about the subnet:


MPLS#sh ip bgp

BGP table version is 2, local router ID is 192.168.100.17

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 

              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 

              x best-external, a additional-path, c RIB-compressed, 

              t secondary path, 

Origin codes: i - IGP, e - EGP, ? - incomplete

RPKI validation codes: V valid, I invalid, N Not found




     Network          Next Hop            Metric LocPrf Weight Path

 *>   172.30.0.4/30    192.168.100.18           0             0 65006 i

        

At this point we built our TLOC Extensions and resolved connectivity issues, so we should have a full mesh to Site 6 at this point (as long as we are allowing a full mesh from a control plane point of view).

Let's check our BFD sessions to Site 6 from another site´s perspective:

Não foi fornecido texto alternativo para esta imagem

As expected we have a full mesh!

Note that from "vEdge_Site_3" perspective for the remote TLOC color MPLS we have two destination IP´s 192.168.100.18 wich it the MPLS circuit at site 6 used by "Site_6_MPLS", and 172.30.0.5 wich is the TLOC extension for "Site_6_NET".

As for the remote TLOC color public-internet the destination IP is always 25.12.10.2 because we are using NAT.

So far we covered the transport VPN 0 for site 6, but how do we apply redundancy to the service side VPN´s? If we go for a Layer 3 design we can use OSPF and route to the CORE Switch at that side, but if we want to stick to a Layer 3 design we need to use a First Hop Redundancy Protocol. The vEdge´s support VRRP, the configuration is very straightforward, if you have implemented HSRP or VRRP in the past there's not much to it, but in order to the failover to happen quickly we need to track a route or route´s that we receive via OMP, this is the config:


Site_6_MPLS# show running-config policy 

policy

 lists

  prefix-list VRRP

   ip-prefix 172.16.2.0/24

   ip-prefix 172.16.7.0/24





Site_6_MPLS# sh run vpn 10

vpn 10

 interface ge0/3

  ip address 172.16.6.252/24

  no shutdown

  vrrp 1

   priority          120

   timer             2

   track-prefix-list VRRP

   ipv4 172.16.6.254

        

        

Show VRRP VPN 10:


Site_6_MPLS# sh vrrp vpn 10

vrrp vpn 10

 interfaces ge0/3

  groups 1

   virtual-ip             172.16.6.254

   virtual-mac            00:00:5e:00:01:01

   priority               120

   vrrp-state             master

   omp-state              up

   advertisement-timer    2

   master-down-timer      6

   last-state-change-time 2021-08-14T18:26:21+00:00

   track-prefix-list      VRRP

   prefix-list-state      resolved

        

With the last command we can see that "Site_6_MPLS" vEdge is the master Router, and that the prefix list state is resolved, meaning the prefixes we are tracking are on the omp routing table:

Não foi fornecido texto alternativo para esta imagem

Finally we can also see on vManage that if we simulate a flow for "Site_6_MPLS", that traffic is going to be load balanced across the available transports, although this is the master Router It's still going to be able to route traffic to the TLOC extension which is being provided by the Backup Router:

Não foi fornecido texto alternativo para esta imagem


Wilson Chew

Senior Network Engineer at CTC

11mo

if there is a TLOC extension configured, do we really need tracking in place? Let said internet down, the Router1 will send traffic via Router2 by using the MPLS TLOC. Is it the answer without Tracking configured, the OMP route will having hold timer up to 60 seconds, that means it will unreachable for 60 seconds?

Like
Reply
Msizi Mthembu

Senior Network Engineer - Derivco

2y

Hi Nelson Paiva would it make design sense if I were to configure TLOC-extension if I had two internet links, one terminating on each router (same ISP).

  • No alternative text description for this image
Like
Reply
Orapeleng Madea Mangena

IT NetOps | Writer | Blogger | Personal Development | Leadership

3y

interesting....

To view or add a comment, sign in

More articles by Nelson Paiva

Insights from the community

Others also viewed

Explore topics