EVPN IP-VRF-to-IP-VRF Models

This chapter provides information about EVPN IP-VRF-to-IP-VRF models.

Topics in this chapter include:

Applicability

This chapter was initially written based on SR OS Release 16.0.R3, but the CLI in the current edition corresponds to SR OS Release 23.7.R2. SR OS supports the three EVPN IP-VRF-to-IP-VRF models described in draft-ietf-bess-evpn-prefix-advertisement.

Overview

EVPN is considered the standard for Data Centers (DCs) and DC Interconnect (DCI) for layer 2 and layer 3 services. Draft-ietf-bess-evpn-prefix-advertisement describes the following three IP-VRF-to-IP-VRF models:

  • Interface-less model (mandatory)

  • Interface-ful model with Supplementary Broadcast Domain (SBD) Interworking Routing and Bridging (IRB) (mandatory)

  • Interface-ful model with unnumbered SBD IRB (optional)

In standard terminology, SBD is the Broadcast Domain (BD) that joins two IP-VRFs. In SR OS, the SBD is a "backhaul" R-VPLS service that connects two PEs attached to VPRNs of the same VPN. For IP prefix advertisement in the SBD, IP route advertisement needs to be enabled in the BGP-EVPN context, whereas MAC advertisement is enabled by default. BGP-EVPN IP prefix route type 5 (RT-5) updates are used in all models; MAC/IP routes (RT-2) are used in the interface-ful models only. In the interface-less model, MAC advertisement must be disabled.

Interface-ful SBD IRB and Interface-ful unnumbered SBD IRB show the two interface-ful IP-VRF-to-IP-VRF models: SBD IRB and unnumbered SBD IRB. Both interface-ful SBD IRB models require BGP-EVPN IP prefix routes (RT-5) with recursive lookup to MAC/IP routes (RT-2). Host 1 is located in broadcast domain 1 (BD1 corresponds to an R-VPLS) linked to the VRF in PE-1 and host 2 is located in BD2 linked to the VRF in PE-2. The VRFs correspond to VPRNs that are linked to an SBD, which is a backhaul R-VPLS.

The following examples are based on EVPN-VXLAN, but IP-VRF-to-IP-VRF also works for EVPN-MPLS. Instead of the VNI, the MPLS label is then included in the RT-5 and RT-2 updates.

Figure 1. Interface-ful SBD IRB

The interface-ful SBD IRB model requires an IP address on the VPRN interface for the SBD (IP2 on PE-2); no EVPN tunnel can be used. Both PEs will send BGP-EVPN RT-5 (IP prefix) and BGP-EVPN RT-2 (MAC/IP) updates. PE-2 sends an RT-5 update for IP prefix 10.0.2.0/24 with GW IP address IP2 and an RT-2 update for GW IP address IP2 with MAC2 and next-hop PE-2. On PE-1, the prefix 10.0.2.0/24 appears in the VRF route table as an EVPN route with next-hop GW IP2. The ARP table for the VRF contains the corresponding MAC address MAC2 for the GW IP address IP2. The FDB of the SBD includes an EVPN entry for GW MAC address MAC2 with next-hop PE-2.

When the VPRN is configured toward the SBD with an EVPN tunnel rather than a numbered IP interface, the RT-5 update will contain the GW MAC address MAC2 instead of the GW IP address IP2. Interface-ful unnumbered SBD IRB shows that PE-2 sends an RT-5 update for IP prefix 10.0.2.0/24 with GW MAC address MAC2 and an RT-2 update for GW MAC address MAC2 with next-hop PE-2. Again, a recursive lookup is done.

Figure 2. Interface-ful unnumbered SBD IRB

Finally, in the interface-less IP-VRF-to-IP-VRF model, MAC advertisement is disabled in the BGP-EVPN context of the backhaul R-VPLS. BGP-EVPN RT-5 updates will contain the GW MAC address, and no RT-2 updates will be sent; therefore, the number of BGP-EVPN updates is reduced and no recursive lookup is done on PE-1. PE-1 adds an entry in its FDB based on an RT-5 route instead of an RT-2 route from PE-2. Interface-less IP-VRF-to-IP-VRF model shows the interface-less IP-VRF-to-IP-VRF model where PE-2 sends an RT-5 update with GW MAC address MAC2.

Figure 3. Interface-less IP-VRF-to-IP-VRF model
Note:

Other vendors do not use a service context as the R-VPLS EVPN tunnel shown in Interface-less IP-VRF-to-IP-VRF model, and they configure the route targets used for the RT-5 updates in the VPRN (or VRF) instances. When interoperating with those vendors, ensure that the R-VPLS route targets match the route targets in the VRF of the third-party router.

The standard specification draft-ietf-bess-evpn-ip-prefix supports two variants of the interface-less model that are not interoperable with each other:
  • EVPN interface-less (EVPN IFL) for Ethernet Network Virtualization Overlay (NVO) tunnels

    Ethernet NVO indicates that the EVPN packets contain an inner Ethernet header. The ingress PE uses the received router's MAC extended community address in the IP prefix route as the inner destination MAC address for the EVPN packets sent to the prefix. This corresponds to the scenario described in Interface-less IP-VRF-to-IP-VRF model.
  • EVPN IFL for IP NVO tunnels

    IP NVO indicates that the EVPN packets contain an inner IP packet, but no Ethernet header. This is similar to the IP-VPN packets exchanged between PEs. In this scenario, the IP prefix route does not contain any GW (IP or MAC) address. The IP packets are directly encapsulated with an EVPN service label and the transport labels. This model is described further in Interface-less model in EVPN-MPLS with IP encapsulation.

EVPN MAC selection criteria

In the EVPN IFL for Ethernet NVO scenario, the MAC address entry in the R-VPLS FDB that is required to forward packets to the remote PE is obtained from an internal MAC/IP route. This internal route is obtained from the router MAC extended community in the BGP-EVPN RT-5 update. In case the same MAC address is received in multiple ways, the following MAC selection criteria apply. Beginning with criterion (1), the MAC is selected if the criterion is met, or the next criterion is applied. As indicated in (8), a MAC received from an RT-2 has higher priority than a MAC populated by the router MAC extended community in an RT-5 update.

  1. Conditional static MAC addresses (locally protected MAC addresses)

  2. Auto-learned protected MAC addresses (locally learned MAC addresses on SAPs or SDP-bindings due to the configuration of auto-learn-mac-protect)

  3. EVPN ES PBR MAC addresses

  4. EVPN static MAC addresses (remotely protected MAC addresses)

  5. Data plane learned MAC addresses (regular learning on SAPs or SDP-bindings)

  6. EVPN MAC routes with a higher sequence number

  7. EVPN E-Tree root MAC addresses

  8. EVPN non-RT-5 MAC addresses (this tie-breaking rule is only applied if the selection algorithm is comparing received MAC routes (RT-2) and internal MAC routes derived from the MAC addresses in IP-prefix routes, such as RT-5 MACs)

  9. Lowest IP address for the next-hop of the EVPN NLRI

  10. Lowest Ethernet tag (that will be zero for MPLS and might be different from zero for VXLAN)

  11. Lowest route distinguisher

  12. Lowest BGP instance (this tie-breaking rule is only applied if the preceding rules fail to select a unique MAC address and the service has two BGP instances of the same encapsulation)

EVPN IP-VRF-to-IP-VRF model comparison

Each model has its advantages. EVPN IP-VRF-to-IP-VRF model comparison compares the three IP-VRF-to-IP-VRF models.

Table 1. EVPN IP-VRF-to-IP-VRF model comparison

Advantage

Model 1

Interface-less

Model 2

Interface-ful SBD IRB

Model 3

Interface-ful unnumbered SBD IRB

Reduced number of EVPN routes

Yes

No

No

Ease of provisioning (no IP address on core IRB)

Yes

No

Yes

Mass withdrawal due to recursive resolution

No

Yes

Yes

Configuration

IP-VRF-to-IP-VRF model in EVPN-VXLAN

Example topology with services - EVPN-VXLAN shows the example topology with two PEs. Hosts 1 and 2—emulated through VPRNs—are attached to R-VPLS 1 and 2 respectively.

Figure 4. Example topology with services - EVPN-VXLAN

The initial configuration on the PEs includes the following:

  • Cards, MDAs, ports

  • Router interfaces

  • IS-IS (alternatively, OSPF can be used)

  • BGP for address family EVPN

On PE-1, the BGP configuration is as follows. The BGP configuration on PE-2 is similar.

# on PE-1:
configure
    router Base
        autonomous-system 64500
        bgp
            vpn-apply-import
            vpn-apply-export
            rapid-withdrawal
            rapid-update evpn
            group "dc"
                family evpn
                type internal
                neighbor 192.0.2.2
                exit
            exit
        exit

Interface-ful model with SBD IRB in EVPN-VXLAN

The service configuration on PE-1 includes the SBD R-VPLS "sbd-15", VPRN "ip-vrf-151", and R-VPLS "bd-1". The service configuration on PE-2 is similar, but R-VPLS "bd-2" is configured instead of R-VPLS "bd-1".

On PE-1, SBD R-VPLS "sbd-15" is configured with VNI 15, as follows. MAC advertisement is enabled by default, but IP route advertisement must be enabled explicitly. Only one BGP instance and one VXLAN instance are configured.

# on PE-1:
configure
    service
        vpls 15 name "sbd-15" customer 1 create
            description "backhaul R-VPLS 15"
            allow-ip-int-bind
            exit
            vxlan instance 1 vni 15 create
            exit
            bgp
            exit
            bgp-evpn
                ip-route-advertisement
                evi 15
                vxlan bgp 1 vxlan-instance 1
                    no shutdown
                exit
            exit
            no shutdown
            stp
                shutdown
            exit
        exit

VPRN "ip-vrf-151" has two interfaces: one toward the SBD R-VPLS "sbd-15" and one toward BD R-VPLS "bd-1". The interface toward the SBD has GW IP address 172.16.151.1/24 and MAC address 00:00:00:01:51:01. The interface toward R-VPLS 1 has IP address 10.0.1.1/24 and MAC address 00:00:00:1e:01:01. VRRP is configured in passive mode, so PE-1 uses the backup IP address as an anycast gateway. The backup IP address is 10.0.1.254 and the auto-derived virtual MAC address is 00:00:5e:00:00:01 for VRID 1. On PE-1, VPRN "ip-vrf-151" is configured as follows:

# on PE-1:
configure
    service
        vprn 151 name "ip-vrf-151" customer 1 create
            ecmp 2
            interface "int-sbd-15" create
                address 172.16.151.1/24
                mac 00:00:00:01:51:01
                vpls "sbd-15"
                exit
            exit
            interface "int-bd-1" create
                address 10.0.1.1/24
                mac 00:00:00:1e:01:01
                vrrp 1 passive
                    backup 10.0.1.254
                    ping-reply
                    traceroute-reply
                exit
                vpls "bd-1"
                exit
            exit
            no shutdown
        exit

On PE-1, R-VPLS "bd-1" is configured as follows. Host 1 is attached to the SAP.

# on PE-1:
configure
    service
        vpls 1 name "bd-1" customer 1 create
            description "R-VPLS 1 - BD 1"
            allow-ip-int-bind
            exit
            stp
                shutdown
            exit
            sap pxc-10.a:1 create
                no shutdown
            exit
            no shutdown
        exit
        

In this example, host 1 is simulated by VPRN "host1", as follows. The default route has next-hop 10.0.1.254, which is the VRRP backup address in VPRN "ip-vrf-151".

# on PE-1:
configure
    service
        vprn 11 name "host1" customer 1 create
            description "Host-1 attached to R-VPLS 1"
            interface "local" create
                address 10.0.1.111/24
                mac 00:00:00:10:11:01
                sap pxc-10.b:1 create
                exit
            exit
            static-route-entry 0.0.0.0/0
                next-hop 10.0.1.254
                    no shutdown
                exit
            exit
            no shutdown
        exit

The service configuration on PE-2 is similar, with R-VPLS "bd-2" instead of R-VPLS "bd-1" and VPRN "host2" instead of VPRN "host1". The GW IP address on PE-2 is 172.16.151.2/24, interface "int-bd-2" in VPRN "ip-vrf-151" has IP address 10.0.2.2/24, and host "host2" has IP address 10.0.2.222/24.

PE-1 receives a BGP-EVPN RT-5 update from PE-2 for IP prefix 10.0.2.0/24, as follows. The GW address is IP address 172.16.151.2 and the next-hop is PE-2.

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:15        10.0.2.0/24
      0                   172.16.151.2
                          192.0.2.2
                          VNI 15
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

PE-1 receives the following BGP-EVPN MAC update for MAC address 00:00:00:01:51:02, which corresponds to GW IP 172.16.151.2:

*A:PE-1# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.2:15        00:00:00:01:51:02 ESI-0
      0                   Static            VNI 15
                          172.16.151.2
                          192.0.2.2

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The following traceroute on PE-1 from host 1 to host 2 shows that the first hop is 10.0.1.1 (interface "int-bd-1" in VPRN "ip-vrf-151" on PE-1), the second hop is the IP GW address 172.16.151.2 (interface "int-sbd-15" in VPRN "ip-vrf-151" on PE-2), and the third hop is host 2 with IP address 10.0.2.222:

*A:PE-1# traceroute router-instance "host1" 10.0.2.222 source 10.0.1.111
traceroute to 10.0.2.222 from 10.0.1.111, 30 hops max, 40 byte packets
  1  10.0.1.1 (10.0.1.1)    4.96 ms  2.59 ms  2.07 ms
  2  172.16.151.2 (172.16.151.2)    4.04 ms  3.88 ms  5.15 ms
  3  10.0.2.222 (10.0.2.222)    11.5 ms  4.06 ms  4.73 ms

On PE-1, the following route table for VPRN "ip-vrf-151" contains a EVPN interface-ful (EVPN IFF) route for IP prefix 10.0.2.0/24 with next-hop 172.16.151.2 and preference 169 (whereas BGP-VPN routes for IP-VPN have a preference of 170):

*A:PE-1# show router service-name "ip-vrf-151" route-table

===============================================================================
Route Table (Service: 151)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
10.0.1.0/24                                   Local   Local     00h02m35s  0
       int-bd-1                                                     0
10.0.2.0/24                                   Remote  EVPN-IFF  00h02m28s  169
       172.16.151.2                                                 0
172.16.151.0/24                               Local   Local     00h02m35s  0
       int-sbd-15                                                   0
-------------------------------------------------------------------------------
No. of Routes: 3
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

On PE-1, the following ARP table of VPRN "ip-vrf-151" contains an EVPN entry for GW IP address 172.16.151.2:

*A:PE-1# show service id "ip-vrf-151" arp 

===============================================================================
ARP Table
===============================================================================
IP Address      MAC Address       Type    Expiry    Interface         SAP
-------------------------------------------------------------------------------
172.16.151.1    00:00:00:01:51:01 Other   00h00m00s int-sbd-15        rvpls
172.16.151.2    00:00:00:01:51:02 EVPN    00h00m00s int-sbd-15        rvpls
10.0.1.1        00:00:00:1e:01:01 Other   00h00m00s int-bd-1          rvpls
10.0.1.111      00:00:00:10:11:01 Dynamic 03h59m20s int-bd-1          rvpls
10.0.1.254      00:00:5e:00:01:01 Other   00h00m00s int-bd-1          rvpls
===============================================================================

The following FDB on PE-1 shows a static and protected EVPN entry for MAC address 00:00:00:01:51:02:

*A:PE-1# show service id "sbd-15" fdb detail 

===============================================================================
Forwarding Database, Service 15
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age      
-------------------------------------------------------------------------------
15         00:00:00:01:51:01 cpm                     Intf     10/25/23 07:35:43
15         00:00:00:01:51:02 vxlan-1:                EvpnS:P  10/25/23 07:35:50
                             192.0.2.2:15
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

Interface-ful model with unnumbered SBD IRB in EVPN-VXLAN

On both PEs, the GW IP addresses 172.16.151.x/24 are removed from interface "int-sbd-15" in VPRN "ip-vrf-151" and an EVPN tunnel is configured instead. The changes in the configuration of VPRN "ip-vrf-151" on PE-1 are the following:

# on PE-1:
configure
    service
        vprn "ip-vrf-151" 
            interface "int-sbd-15"  
                no address 172.16.151.1/24
                vpls "sbd-15"
                    evpn-tunnel
                exit
            exit

Similarly, the following is configured in VPRN "ip-vrf-151" on PE-2:

*A:PE-2#
configure
    service
        vprn "ip-vrf-151" 
            interface "int-sbd-15" 
                no address 172.16.151.2/24
                vpls "sbd-15"
                    evpn-tunnel
                exit
            exit

The configuration of VPRN "ip-vrf-151" on PE-1 is as follows:

*A:PE-1>config>service>vprn# info
----------------------------------------------
            ecmp 2
            interface "int-sbd-15" create
                mac 00:00:00:01:51:01
                vpls "sbd-15"
                    evpn-tunnel
                exit
            exit
            interface "int-bd-1" create
                address 10.0.1.1/24
                mac 00:00:00:1e:01:01
                vrrp 1 passive
                    backup 10.0.1.254
                    ping-reply
                    traceroute-reply
                exit
                vpls "bd-1"
                exit
            exit
            no shutdown
----------------------------------------------

The provisioning is easier with unnumbered SBD IRB because no IRB IP addresses need to be configured in the VPRN.

PE-1 receives the following RT-5 update for IP prefix 10.0.2.0/24 with GW MAC address 00:00:00:01:51:02, because there is no GW IP address. The GW MAC address is used in the VPRN route table, where the EVPN tunnel leads toward this GW MAC address.

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:15        10.0.2.0/24
      0                   00:00:00:01:51:02
                          192.0.2.2
                          VNI 15
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

MAC advertisement is by default enabled, so PE-1 also receives the following RT-2 update for the GW MAC address. The interface is unnumbered, so there is no corresponding IP address.

*A:PE-1# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.2:15        00:00:00:01:51:02 ESI-0
      0                   Static            VNI 15
                          n/a
                          192.0.2.2

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The following traceroute from host 1 to host 2 shows that the second hop now is 10.0.2.2, which corresponds to the "bd-2" interface in VPRN "ip-vrf-151" on PE-2. The other hops remain the same as in the preceding case.

*A:PE-1# traceroute router-instance "host1" 10.0.2.222 source 10.0.1.111
traceroute to 10.0.2.222 from 10.0.1.111, 30 hops max, 40 byte packets
  1  10.0.1.1 (10.0.1.1)    2.22 ms  2.47 ms  2.56 ms
  2  10.0.2.2 (10.0.2.2)    3.75 ms  4.20 ms  3.91 ms
  3  10.0.2.222 (10.0.2.222)    4.60 ms  4.40 ms  4.63 ms

The following route table of VPRN "ip-vrf-151" on PE-1 shows a EVPN IFF route for IP prefix 10.0.2.0/24 with EVPN tunnel (ET) to GW MAC address 00:00:00:01:51:02 in VPRN "ip-vrf-151" on PE-2.

*A:PE-1# show router service-name "ip-vrf-151" route-table

===============================================================================
Route Table (Service: 151)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
10.0.1.0/24                                   Local   Local     00h06m07s  0
       int-bd-1                                                     0
10.0.2.0/24                                   Remote  EVPN-IFF  00h01m48s  169
       int-sbd-15 (ET-00:00:00:01:51:02)                            0
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The following ARP table for VPRN "ip-vrf-151" does not contain any entries for the unnumbered interface "int-sbd-15":

*A:PE-1# show service id "ip-vrf-151" arp

===============================================================================
ARP Table
===============================================================================
IP Address      MAC Address       Type    Expiry    Interface         SAP
-------------------------------------------------------------------------------
10.0.1.1        00:00:00:1e:01:01 Other   00h00m00s int-bd-1          rvpls
10.0.1.111      00:00:00:10:11:01 Dynamic 03h55m43s int-bd-1          rvpls
10.0.1.254      00:00:5e:00:01:01 Other   00h00m00s int-bd-1          rvpls
===============================================================================

However, internally, ARP entries are created. The following command shows that the same number of ARP entries are consumed as in the preceding use case with the numbered interface "int-sbd-15". The BGP-EVPN ARP entry corresponds to the GW interface "int-sbd-15" on the BGP peer.

*A:PE-1# show router service-name "ip-vrf-151" arp summary

============================================================
ARP Table Summary (Service: 151)
============================================================
Local ARP Entries    : 3
Static ARP Entries   : 0
Dynamic ARP Entries  : 1
Managed ARP Entries  : 0
Internal ARP Entries : 0
BGP-EVPN ARP Entries : 1
------------------------------------------------------------
No. of ARP Entries   : 5
============================================================

The FDB for R-VPLS "ip-vrf-151" on PE-1 is as follows:

*A:PE-1# show service id "sbd-15" fdb detail

===============================================================================
Forwarding Database, Service 15
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
15         00:00:00:01:51:01 cpm                     Intf     10/25/23 07:35:43
15         00:00:00:01:51:02 vxlan-1:                EvpnS:P  10/25/23 07:40:02
                             192.0.2.2:15
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

Interoperable interface-less model in EVPN-VXLAN

This model is interface-less because no SBD is required to connect the VPRNs and no recursive resolution is required upon receiving an IP prefix route. The next-hop of the IP prefix route is directly resolved to an EVPN tunnel, without the need for any other route.

The only difference from the preceding configuration is that MAC route advertisement is disabled in the backhaul R-VPLS on both PEs, as follows:

# on PE-1, PE-2:
configure
    service
        vpls "sbd-15" 
            bgp-evpn
                no mac-advertisement
            exit
 

The configuration of the backhaul R-VPLS is as follows:

*A:PE-2# configure service vpls 15 
*A:PE-2>config>service>vpls# info 
----------------------------------------------
            description "backhaul R-VPLS 15"
            allow-ip-int-bind
            exit
            vxlan instance 1 vni 15 create
            exit
            bgp
            exit
            bgp-evpn
                no mac-advertisement
                ip-route-advertisement
                evi 15
                vxlan bgp 1 vxlan-instance 1
                    no shutdown
                exit
            exit
            stp
                shutdown
            exit
            no shutdown
----------------------------------------------

Again, the provisioning is easier with unnumbered SBD IRB because no IRB IP addresses need to be configured in the VPRN.

PE-1 receives the following BGP-EVPN RT-5 update for IP prefix 10.0.2.0/24 with GW MAC address 00:00:00:01:51:02, which is the same as in the preceding use case:

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:15        10.0.2.0/24
      0                   00:00:00:01:51:02
                          192.0.2.2
                          VNI 15
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

PE-1 does not receive any BGP-EVPN RT-2 updates because PE-2 does not advertise any MAC addresses in the backhaul R-VPLS, as follows:

*A:PE-1# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
No Matching Entries Found.
===============================================================================

The following traceroute from host 1 to host 2 shows that the second hop is the IP address of the "int-bd-2" interface in VPRN "ip-vrf-151" on PE-2, as in the preceding use case:

*A:PE-1# traceroute router-instance "host1" 10.0.2.222 source 10.0.1.111
traceroute to 10.0.2.222 from 10.0.1.111, 30 hops max, 40 byte packets
  1  10.0.1.1 (10.0.1.1)    2.66 ms  2.08 ms  2.38 ms
  2  10.0.2.2 (10.0.2.2)    3.77 ms  3.95 ms  3.74 ms
  3  10.0.2.222 (10.0.2.222)    5.40 ms  4.38 ms  4.94 ms

The following route table for VPRN "ip-vrf-151" on PE-1 shows an EVPN IFF route for IP prefix 10.0.2.0/24 with EVPN tunnel:

*A:PE-1# show router service-name "ip-vrf-151" route-table

===============================================================================
Route Table (Service: 151)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
10.0.1.0/24                                   Local   Local     00h09m04s  0
       int-bd-1                                                     0
10.0.2.0/24                                   Remote  EVPN-IFF  00h04m45s  169
       int-sbd-15 (ET-00:00:00:01:51:02)                            0
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The following FDB in the backhaul R-VPLS on PE-1 shows an EVPN entry for GW MAC address 00:00:00:01:51:02, which is created out of the RT-5 GW MAC (router MAC extended community):

*A:PE-1# show service id "sbd-15" fdb detail

===============================================================================
Forwarding Database, Service 15
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
15         00:00:00:01:51:01 cpm                     Intf     10/25/23 07:35:43
15         00:00:00:01:51:02 vxlan-1:                Evpn     10/25/23 07:43:28
                             192.0.2.2:15
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

IP-VRF-to-IP-VRF models in EVPN-MPLS

The three IP-VRF-to-IP-VRF models are also supported in EVPN-MPLS. Example topology with services - EVPN-MPLS shows the example topology with the services R-VPLS "sbd-16", VPRN "ip-vrf-161", R-VPLS "bd-3" (or "bd-4"), and VPRN "host3" for host 3 (or VPRN "host4" for host 4).

Figure 5. Example topology with services - EVPN-MPLS

For MPLS, LDP is configured on the interface between PE-1 and PE-2.

Interface-ful model with SBD IRB in EVPN-MPLS

The following services are configured on PE-1 and PE-2:

  • Backhaul R-VPLS "sbd-16"

  • VPRN "ip-vrf-161"

  • R-VPLS "bd-3" on PE-1; R-VPLS "bd-4" on PE-2

  • VPRN "host3" on PE-1; VPRN "host4" on PE-2

The service configuration on PE-1 is as follows. MAC route advertisement is enabled by default. The configuration on PE-2 is similar.

# on PE-1:
configure
    service
        vpls 16 name "sbd-16" customer 1 create
            description "backhaul EVPN-MPLS R-VPLS 16"
            allow-ip-int-bind
            exit
            bgp
            exit
            bgp-evpn
                ip-route-advertisement          # mac-advertisement is by default enabled
                evi 16
                mpls bgp 1
                    auto-bind-tunnel
                        resolution any
                    exit
                    no shutdown
                exit
            exit
            stp
                shutdown
            exit
            no shutdown
        exit
        vprn 161 name "ip-vrf-161" customer 1 create
            ecmp 2
            interface "int-sbd-16" create
                address 172.16.161.1/24
                mac 00:00:00:01:61:01
                vpls "sbd-16"
                exit
            exit
            interface "int-bd-3" create
                address 10.0.3.1/24
                mac 00:00:00:3e:03:01
                vrrp 1 passive
                    backup 10.0.3.254
                    ping-reply
                    traceroute-reply
                exit
                vpls "bd-3"
                exit
            exit
            no shutdown
        exit
        vpls 3 name "bd-3" customer 1 create
            description "R-VPLS 3 - BD 3"
            allow-ip-int-bind
            exit
            stp
                shutdown
            exit
            sap pxc-10.a:3 create
                no shutdown
            exit
            no shutdown
        exit
        vprn 31 name "host3" customer 1 create
            description "Host-3 attached to R-VPLS 3"
            interface "local" create
                address 10.0.3.111/24
                mac 00:00:00:30:11:01
                sap pxc-10.b:3 create
                exit
            exit
            static-route-entry 0.0.0.0/0
                next-hop 10.0.3.254
                    no shutdown
                exit
            exit
            no shutdown
        exit

PE-1 receives the following BGP-EVPN IP prefix route for prefix 10.0.4.0/24:

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:16        10.0.4.0/24
      0                   172.16.161.2
                          192.0.2.2
                          LABEL 524286
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The GW address is the IP address 172.16.161.2. The following BGP-EVPN MAC route advertises the corresponding MAC address 00:00:00:01:61:02:

*A:PE-1# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
u*>i  192.0.2.2:16        00:00:00:01:61:02 ESI-0
      0                   Static            LABEL 524286
                          172.16.161.2
                          192.0.2.2

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The following traceroute from host 3 to host 4 shows that the GW IP address is the second hop:

*A:PE-1# traceroute router-instance "host3" 10.0.4.222 source 10.0.3.111
traceroute to 10.0.4.222 from 10.0.3.111, 30 hops max, 40 byte packets
  1  10.0.3.1 (10.0.3.1)    5.60 ms  2.41 ms  2.39 ms
  2  172.16.161.2 (172.16.161.2)    3.99 ms  3.61 ms  3.88 ms
  3  10.0.4.222 (10.0.4.222)    11.4 ms  4.95 ms  4.89 ms

The route table and ARP table in VPRN 161 and the FDB in R-VPLS 16 are similar to the ones in theInterface-ful model with SBD IRB in EVPN-VXLAN section.

Interface-ful model with unnumbered SBD IRB in EVPN-MPLS

The GW IP addresses are removed from the "int-sbd-16" interface in VPRN "ip-vrf-161" and an EVPN tunnel is configured instead. On PE-1, VPRN "ip-vrf-161" is configured as follows:

*A:PE-1>config>service>vprn# info
----------------------------------------------
            ecmp 2
            interface "int-sbd-16" create
                mac 00:00:00:01:61:01
                vpls "sbd-16"
                    evpn-tunnel
                exit
            exit
            interface "int-bd-3" create
                address 10.0.3.1/24
                mac 00:00:00:3e:03:01
                vrrp 1 passive
                    backup 10.0.3.254
                    ping-reply
                    traceroute-reply
                exit
                vpls "bd-3"
                exit
            exit
            no shutdown
----------------------------------------------

The route table in VPRN "ip-vrf-161" and the FDB in R-VPLS "sbd-16" are similar to the ones in the Interface-ful model with unnumbered SBD IRB in EVPN-VXLAN section.

Interoperable interface-less model in EVPN-MPLS with Ethernet encapsulation

In the EVPN interface-less (EVPN IFL) model, the next hop of the IP prefix route is directly resolved to an EVPN tunnel, without the need for any other route.

MAC route advertisement is disabled in backhaul R-VPLS "sbd-16", as follows:

*A:PE-1# configure service vpls 16 
*A:PE-1>config>service>vpls# info 
----------------------------------------------
            description "backhaul EVPN-MPLS R-VPLS 16"
            allow-ip-int-bind
            exit
            bgp
            exit
            bgp-evpn
                no mac-advertisement
                ip-route-advertisement
                evi 16
                mpls bgp 1
                    auto-bind-tunnel
                        resolution any
                    exit
                    no shutdown
                exit
            exit
            stp
                shutdown
            exit
            no shutdown
----------------------------------------------

The following route table for VPRN "ip-vrf-161" contains a EVPN IFF entry for prefix 10.0.4.0/24 with an EVPN tunnel to GW MAC address 00:00:00:01:61:02:

*A:PE-1# show router service-name "ip-vrf-161" route-table

===============================================================================
Route Table (Service: 161)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
10.0.3.0/24                                   Local   Local     00h03m58s  0
       int-bd-3                                                     0
10.0.4.0/24                                   Remote  EVPN-IFF  00h01m55s  169
       int-sbd-16 (ET-00:00:00:01:61:02)                            0
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The following FDB for VPLS "sbd-16" contains an EVPN entry for GW MAC address 00:00:00:01:61:02. This information is retrieved from a BGP-EVPN IP prefix route.

*A:PE-1# show service id "sbd-16" fdb detail

===============================================================================
Forwarding Database, Service 16
===============================================================================
ServId     MAC               Source-Identifier       Type     Last Change
            Transport:Tnl-Id                         Age
-------------------------------------------------------------------------------
16         00:00:00:01:61:01 cpm                     Intf     10/25/23 07:47:18
16         00:00:00:01:61:02 mpls-1:                 Evpn     10/25/23 07:50:40
                             192.0.2.2:524286
           ldp:65537
-------------------------------------------------------------------------------
No. of MAC Entries: 2
-------------------------------------------------------------------------------
Legend:L=Learned O=Oam P=Protected-MAC C=Conditional S=Static Lf=Leaf T=Trusted
===============================================================================

The IP prefix route for prefix 10.0.4.0/24 has GW MAC address 00:00:00:01:61:02, as follows:

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:16        10.0.4.0/24
      0                   00:00:00:01:61:02
                          192.0.2.2
                          LABEL 524286
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

However, no EVPN MAC routes were received for R-VPLS 16, as follows:

*A:PE-1# show router bgp routes evpn mac
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN MAC Routes
===============================================================================
Flag  Route Dist.         MacAddr           ESI
      Tag                 Mac Mobility      Label1
                          Ip Address
                          NextHop
-------------------------------------------------------------------------------
No Matching Entries Found.
===============================================================================

The interoperable interface-less model in EVPN-MPLS with Ethernet encapsulation is interface-ful although compatible with EVPN interface-less.

Interface-less model in EVPN-MPLS with IP encapsulation

In this IP NVO model, the ingress PE no longer pushes an inner Ethernet header, but the IP packet is directly encapsulated with an EVPN service label and the transport labels.

The PEs advertise IP prefixes without router MAC extended community. The route lookup in the VPRN does not point at an SBD R-VPLS, but rather to an MPLS tunnel terminated in the other PE. The packets are sent with an EVPN service label that was received in the IP prefix route.

The configuration of VPRN "ip-vrf-161" is modified: the interface "int-sbd-16" is removed and a BGP-EVPN context is added with route distinguisher, VRF target, and auto-bind tunnel. VPLS "sbd-16" is not used at all. The following shows the configuration of VPRN "ip-vrf-161" on PE-1:

*A:PE-1>config>service>vprn# info
----------------------------------------------
            ecmp 2
            interface "int-bd-3" create
                address 10.0.3.1/24
                mac 00:00:00:3e:03:01
                vrrp 1 passive
                    backup 10.0.3.254
                    ping-reply
                    traceroute-reply
                exit
                vpls "bd-3"
                exit
            exit
            bgp-evpn
                mpls
                    auto-bind-tunnel
                        resolution any
                    exit
                    route-distinguisher 192.0.2.1:161
                    vrf-target target:64500:161
                    no shutdown
                exit
            exit
            no shutdown
----------------------------------------------

The configuration on PE-2 is similar.

The following route table shows that the EVPN route is interface-less, the next hop is the IP address of PE-2, and the tunnel is an MPLS (LDP) tunnel instead of an EVPN tunnel:

*A:PE-1# show router service-name "ip-vrf-161" route-table

===============================================================================
Route Table (Service: 161)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
10.0.3.0/24                                   Local   Local     00h06m31s  0
       int-bd-3                                                     0
10.0.4.0/24                                   Remote  EVPN-IFL  00h03m57s  170
       192.0.2.2 (tunneled)                                         10
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The following EVPN IP prefix does not have any GW address:

*A:PE-1# show router bgp routes evpn ip-prefix
===============================================================================
 BGP Router ID:192.0.2.1        AS:64500       Local AS:64500
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP EVPN IP-Prefix Routes
===============================================================================
Flag  Route Dist.         Prefix
      Tag                 Gw Address
                          NextHop
                          Label
                          ESI
-------------------------------------------------------------------------------
u*>i  192.0.2.2:161       10.0.4.0/24
      0                   00:00:00:00:00:00
                          192.0.2.2
                          LABEL 524284
                          ESI-0

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

Conclusion

The three EVPN IP-VRF-to-IP-VRF models each have advantages. Different vendors have chosen different models in the first phases of their EVPN implementations. SR OS supports all three EVPN IP-VRF-to-IP-VRF models, so they can be deployed in all environments where third-party vendors are deployed already.