EVPN Route-Type 1-PER ESI

EVPN Route-Type 1-PER ESI

Hi,

Time around us is not that great, we all are mostly locked down at our homes. We are now getting used to " working from home" concept, which was very new for me one month ago. I always thought working from office is more productive, but currently i am seeing a shift in myself & getting used to it !! what about you..

In this article, i will try to describe my understanding on EVPN Route Type 1, specifically per-ESI ethernet AD Route, i hope that it will be helpful for you & "me" in future ( i usally refer my linked-in articles for a quick refresher). As per RFC 7432, RT1 is encoded as

No alt text provided for this image

Looks simple and innocent, Right !! but it is not. There are lot of confusion between RT1-per ESI and RT1-per EVI for an RFC 7432 reader. RFC 7432 section 8.2.1 says how to construct RT1-per ESI & section 8.4.1 says how to construct RT1-per EVI. Both serve different purpose. This article is devoted to RT1-per ESI.

RT1-per ESI is used for Three purposes

1. To share Split Horizon Label. ( This is shared via an MP_Reach_NLRI tagged with ESI Label Ext comm)

2. To share A/A or A/S status of the ES. Using a flag bit (Single Active Bit) in the ESI label Ext community << Edit [22/04/2021] >>

3. To achieve fast convergence via MAC mass withdraw ( This time, RT1-PER ESI is an MP_UNREACH_NLRI Update packet))

Route Distinguisher (RD) (8 octets)

Here, RD is used as Type 1, or Per Node RD : Like 10.0.0.1:0

let's analyze why RD-Type 1 is selected for this route. To undserstand this, we should understand in detail the use of this Route. This Route is used to share the SHG label for an ES. This SHG label is common for all EVI's which are using subinterfaces from this ES.When a PE(I must be specific, a designated forwarder) recieves a BUM packet with SHG label ( shared by itself in RT1-PER ESI) Then it don't fowards the packet towards ES(SHG label is downstream allocated) to avoid loop. We generally configure ESI on Main interface ( not on Sub interface/attachement circuit). For Example, below will be the configuration.

  • Confgure Type 0 ESI on Bundle-2 as 00.00.00.00.02.02.02.02.02
  • AC Bundle2.100 with VLAN 100, attached to EVI 100
  • 2nd AC Bundle2.200 with VLAN 200, attached to EVI 200.

Note that, ESI value on that node will be unique, so if i have 2 different bundle interfaces configured with non-zero ESI value then, auto generate RD to be used will be 10.0.0.1:0 and 10.0.0.1:1 ( something like this). Beacuse here we want to share the SHG label to be used for this ES not per EVI.

Also, like while sending MAC mass withdraw ( MP_UNREACH_NLRI), then we want to tell Remote PE's that the ES is down. So drop all learned MAC's learned from this ES ( similar to BGP PIC).

Ethernet Segment Identifier (10 octets):

ESI value is Configured by the user( for type 0) on the Interface. There are other Type of ESI, Refer section 5, RFC7432

For Non zero ESI value only this Route will be generated, if ESI is 0, then it means single Homed. But as i said earlier this Route is for Multi-homed cases.

Ethernet Tag ID (4 octets)

Eth TAG ID is set to MAX-ET, in simple terms all FF.
Ethernet Tag ID {0xFFFFFFFF} is known as MAX-ET

If you recall my earlier explanation, then you can relate that, Eth TAG ID is not needed at all, beacuse this Route is specifying some information of the ES, so not worried about the VLAN/Ethernet TAG.

MPLS label is 0

MPLS Label field is set to 0 for RT1-Per ESI route. The Other variant of this Route RT1-PER EVI uses this label field for sending Aliasing label in ELAN. ( i will try to talk aliasing separately).

Now, To share the Split horizon Label RT1-PER ESI is always tagged with extended community "ESI Label extended community"

No alt text provided for this image

ESI label extended community mainly express 2 things

  • What is the Multi-homing type.(Single-active or active-active). Flags part of above encoding specifes this parameter. The Lower-order bit == 0,means Active-active, if == 1, means single-Active.
  • What is the SHG label. ( specified by the ESI label field)

Sample snippet of a RT1-PER ESI :

No alt text provided for this image

Split Horizon Operation :

in EVPN MH case, DF is elected from RT4 exchange. Only DF is allowed to forward BUM traffic on the ES to CE. Now, assume a Case, where PE1 & PE2 are multihomed to CE & PE2 is DF for that service ( particularly for one VLAN).

PE1 Received a BUM packet from CE for that VLAN. So, PE1 will do a ingress replication, added the BUM label ( recieved via RT3), & send it to all EVPN end Points on that Bridge-domain ( after attaching the SR label). PE2 will receive the BUM packet from PE1. Now As PE2 is DF for that service, so PE2 will send the BUM packet back to the CE.So, a Loop happened. Now we need to stop it. How !!

Simple, in the MPLS world there is no shortage of MPLS label and stacking one more MPLS label is always the best option ( Think of Segment Routing-MPLS).

So, here also, during the set up process, PE2 will allocate an SHG label to PE1 via RT1-Per ESI ( i think i have wrote it 5 times already) & PE1 will send the BUM packet after adding the SHG label. If you want to visualise the stack, here it is !!

<< Label to Reach PE2>> ---> Known via ISIS/SR
<< BUM Label shared by PE2>> -- > Known via RT3
<< SHG label shared by PE2 >> -- > Known via RT1-PER ESI

MAC Mass withdraw :

To achieve Fast convergence, Similar to a BGP PIC paradigm, when a MAC Mass withdraw update( MP_UNREACH_NLRI) is received from an advertising PE, then Receiving PE invalidates all MAC (RT2) routes that was previously learned from the Advertising PE. Taking an example, when PE1 detects that PE-CE link is down ( on which ES'x' is configured), immidiately it trigger's RT1-per ESI route to the remote PE's. Remote PE's then gets the indication that ES'x' is down behind PE1. so it invlaidate all MAC entries towards PE1 & start using other PE's who advertised ES'x' earlier.

Refer this for easy reference:

No alt text provided for this image

Ok, that's it for now. Hope this was helpfull, Cheer's.

VIJENDRA SINGH CHAUHAN

System Test Engineer, Python Test Automation, L2/L3 Manual Testing And Automation Expert

2 年

can you please make a post on split horizon label in active-active and active-standby mode? i am not able to find out the reason behind SH label of 0 in case of A-S role and a proper non-zero label value for SH label in A-A role.

回复
Fernando Maidana

.?|?.?|?. CCIE-SP #60582 | Network Consultant | Cloud Engineer | Solutions Architect | VCP-NV | DevNet

4 年
回复
Gems Choudhury

IP/MPBN Engineer working for Vodafone Qatar

4 年

Great post

回复
Fernando Maidana

.?|?.?|?. CCIE-SP #60582 | Network Consultant | Cloud Engineer | Solutions Architect | VCP-NV | DevNet

4 年

要查看或添加评论,请登录

Dipankar Shaw的更多文章

  • SRv6 L3VPN with Flex-Algo

    SRv6 L3VPN with Flex-Algo

    In my last article i explained a best effort uDT6 service, that sets the foundation for srv6 services & tunnels. Now…

  • SRv6 Tunnel with uDT6 Service SID

    SRv6 Tunnel with uDT6 Service SID

    In this article, I will provide an explanation of SRv6 (Segment Routing over IPv6) and delve into the uDT6 service…

  • UDPPing : Ping-pong with Layer 4

    UDPPing : Ping-pong with Layer 4

    Introduction: Recently i was watching a NANOG Presentation, where they showcased PINGO Project, which is able to…

    2 条评论
  • Sending BGP routes using ExaBGP

    Sending BGP routes using ExaBGP

    Hey all, Recently i came across a problem statement where i wanted to send some good amount of routes via BGP. While…

    3 条评论
  • Arista Segment Routing Config & show commands

    Arista Segment Routing Config & show commands

    Introduction : Will be keeping this post very very short, intention is to capture, how we can configure segment routing…

    2 条评论
  • EVPN VXLAN Inter subnet Routing using Asymmetric IRB model

    EVPN VXLAN Inter subnet Routing using Asymmetric IRB model

    Hello Guys, Frankly speaking, this topic is a complex one to understand if you dont work with evpn, VXLAN and IRB. I…

    1 条评论
  • BGP Unnumbered by Bard

    BGP Unnumbered by Bard

    Introduction BGP unnumbered is a feature that allows BGP to establish peering sessions without explicitly configuring…

    1 条评论
  • Ixia Open Traffic generator & DUT

    Ixia Open Traffic generator & DUT

    Hey, this will be a small post about using ixia open traffic generator, how it can generate some traffic so that…

  • Metallb Loadbalancer With BGP for k8s, Not Rock Music

    Metallb Loadbalancer With BGP for k8s, Not Rock Music

    Ok, 2023 is On. This article will be the 1st one of this year.

  • Default Route to Container lab

    Default Route to Container lab

    inuz Containers are awesome. They are lightweight, spins up too fast.

社区洞察

其他会员也浏览了