Here are my traffic analysis notes for the Single-Active
lab.  After doing a deep dive on the
All-Active traffic, I felt this final step was necessary to get a detailed
understanding of both multi-homing redundancy modes. 
The test plan was identical to the All-Active traffic analysis and the Wireshark traces were performed on the same backbone links.
Test Plan
- Simulate traffic flow from CE_R27 to CE_R29
- Observe interface statistics to determine traffic routing
- Observe BGP routing and label exchange
- Perform targeted packet captures on PE links
- Examine packet captures for label usage
Test Traffic
Continuous ping from host CE_R27 to CE_R29.
| 
CE_R27#ping
  172.16.50.2 rep 2147483647 
Type escape
  sequence to abort. 
Sending
  2147483647, 100-byte ICMP Echos to 172.16.50.2, timeout is 2 seconds: 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
.. snip .. | 
Traffic Observation
CE_R27’s Traffic
Distribution
CE_R27’s G1 and G2 Bridge-Domain interface.  The input/output rate were equal and normal.
| 
CE_R27#sh int
  bdi50 | in rate 
  Queueing strategy: fifo 
  30 second input rate 38000 bits/sec, 42 packets/sec 
  30 second output rate 38000 bits/sec, 42 packets/sec | 
CE_R27’s G1 Ethernet interface to PE_MXR01.  The primary forwarding interface’s input/output
rates were in-line with the BDI interface.
| 
CE_R27#sh int
  g1 | in rate    
  Queueing strategy: fifo 
  30 second input rate 38000 bits/sec, 42 packets/sec 
  30 second output rate 38000 bits/sec, 42 packets/sec | 
CE_R27’s G2 Ethernet interface to PE_MXR03.  The standby interface’s has no traffic.
| 
CE_R27#sh int
  g2 | in rate 
  Queueing strategy: fifo 
  30 second input rate 0 bits/sec, 0 packets/sec 
  30 second output rate 0 bits/sec, 0 packets/sec | 
PE_MXR01's Traffic Distribution
PE_MXR01’s AC interface to CE_R27 (Gig1).  The active AC interface’s input/output rates
were in-line with the CE.
| 
admin@PE_MXR01>
  show interfaces ge-0/0/2.500 detail |grep pps     
     Input 
  packets:               
  19049                   42 pps 
     Output packets:                19046                   42 pps | 
PE_MXR01 MPLS interface to P_R03.  The link towards the MPLS core saw all
traffic to P3.
| 
admin@PE_MXR01>
  show interfaces ge-0/0/1.44 detail |grep pps      
     Input 
  packets:              6172520                   42 pps 
     Output packets:              7677321                   42 pps | 
PE_MXR01 MPLS interface to P_R01.  The link towards the MPLS core saw no traffic
to P1.
| 
admin@PE_MXR01>
  show interfaces ge-0/0/1.45 detail |grep pps     
     Input 
  packets:                   
  3                    0 pps 
     Output packets:                    1                    0 pps | 
PE_MXR02's Traffic Distribution
PE_MXR02’s AC interface to CE_R28.  The destination AC interface’s input/output
rates were in-line with the CE.
| 
admin@PE_MXR02>
  show interfaces ge-0/0/2.500 detail |grep pps                                                                    
   
     Input 
  packets:              6473475                   42 pps 
     Output packets:              6914532                   42 pps | 
PE_MXR02’s MPLS interface to P_R03.  The link towards the MPLS core saw all
traffic to P3.
| 
admin@PE_MXR02>
  show interfaces ge-0/0/1.46 detail |grep pps     
     Input 
  packets:              6914474                   42 pps 
     Output packets:             12623504                   42 pps | 
PE_MXR02’s MPLS interface to P_R04.  The link towards the MPLS core saw no traffic
to P4.
| 
admin@PE_MXR02>
  show interfaces ge-0/0/1.47 detail |grep pps     
     Input 
  packets:                    2                    0 pps 
     Output packets:                    0                    0 pps | 
PE_MXR03's Traffic Distribution
PE_MXR03’s AC interface to CE_R27 (Gig2).  The redundant AC interface, configured in
standby mode, saw no traffic.
| 
admin@PE_MXR03>
  show interfaces ge-0/0/3.500 detail |grep pps 
   
     Input 
  packets:                   
  0                    0 pps 
     Output packets:                    0                    0 pps | 
PE_MXR03’s MPLS interface to P_R02.  No traffic was forwarded to this PE under
normal operating conditions.
| 
admin@PE_MXR03>
  show interfaces ge-0/0/1.48 detail |grep pps      
     Input 
  packets:             
  7514322                    0 pps 
     Output packets:               299204                    0 pps | 
PE_MXR03’s MPLS interface to P_R01.  No traffic was forwarded to this PE under
normal operating conditions.
| 
admin@PE_MXR03>
  show interfaces ge-0/0/1.49 detail |grep pps     
     Input 
  packets:                   
  4                    0 pps 
     Output packets:                   27                    0 pps | 
Wireshark Traffic Analysis
Capture 1 – Link between
PE_MXR01 and P_R03
Capture 1, Frame 2
was the ICMP request from CE_R27 to CE_R28 as seen between PE_MXR01 and P_R03.  This request was sent to CE_R28 with
destination MAC address 00:0c:29:49:aa:8c.  
Based on the Type 2 MAC route lookup, the zero ESI indicated that
the destination host was single-homed and a Type 1 aliasing route lookup wasn’t
necessary.  As seen from the Wireshark capture,
its label usage (bottom label 299776, top label 328) was consistent with the
route lookup.
| 
admin@PE_MXR01>
  show route table bgp.evpn.0 extensive                
bgp.evpn.0: 8
  destinations, 8 routes (8 active, 0 holddown, 0 hidden) 
.. snip .. 
2:112.112.112.112:50::500::00:0c:29:49:aa:8c/304 MAC/IP (1 entry, 0
  announced) 
        *BGP    Preference: 170/-101 
                Route Distinguisher:
  112.112.112.112:50 
                Next hop type: Indirect, Next
  hop index: 0 
                Address: 0xb7a3a90 
                Next-hop reference count: 8 
                Source: 112.112.112.112 
                Protocol next hop:
  112.112.112.112 
                Indirect next hop: 0x2
  no-forward INH Session ID: 0x0 
                State: <Active Int Ext> 
                Local AS:  2345 Peer AS:  2345 
                Age: 17:57      Metric2: 1  
                Validation State: unverified  
                Task:
  BGP_2345.112.112.112.112 
                AS path: I 
                Communities: target:2345:50 
                Import Accepted 
                Route Label: 299776 
                ESI: 00:00:00:00:00:00:00:00:00:00 
                Localpref: 100 
                Router ID: 112.112.112.112 
                Secondary Tables:
  EVPN_CUSTOMER_G_ELAN_500.evpn.0 
                Indirect next hops: 1 
                        Protocol next hop:
  112.112.112.112 Metric: 1 
                        Indirect next hop:
  0x2 no-forward INH Session ID: 0x0 
                        Indirect path
  forwarding next hops: 1 
                                Next hop
  type: Router 
                                Next hop:
  10.1.1.81 via ge-0/0/1.44 
                                Session Id:
  0x0 
                        112.112.112.112/32
  Originating RIB: inet.3 
                          Metric: 1                       Node path count: 1 
                          Forwarding
  nexthops: 1 
                                Nexthop:
  10.1.1.81 via ge-0/0/1.44 | 
| 
admin@PE_MXR01>
  show route table bgp.evpn.0  
bgp.evpn.0: 8
  destinations, 8 routes (8 active, 0 holddown, 0 hidden) 
+ = Active
  Route, - = Last Active, * = Both 
.. snip .. 
2:112.112.112.112:50::500::00:0c:29:49:aa:8c/304 MAC/IP         
                   *[BGP/170] 00:17:37,
  localpref 100, from 112.112.112.112 
                      AS path: I,
  validation-state: unverified 
                    > to 10.1.1.81 via
  ge-0/0/1.44, Push 328 | 
Capture 2 –
Link between P_R03 and PE_MXR02
Capture 2, Frame 1
was the ICMP request from CE_R27 to CE_R28 as seen from P_R03 and PE_MXR02.  This request was sent to CE_R28's MAC address
of 00:0c:29:49:aa:8c.  
As P_R03 forwarded the packet to PE_MXR02, it popped the top label of 328. The VPN label of 299776 was looked up, associated to the EVPN instance (via Ingress-MAC since the Type 2 route’s label was used) and packet delivered to CE_R28. At this point everything looked normal.
| 
admin@PE_MXR02>
  show route table mpls.0 label 299776 
mpls.0: 52
  destinations, 52 routes (52 active, 0 holddown, 0 hidden) 
+ = Active
  Route, - = Last Active, * = Both 
299776            
  *[EVPN/7] 00:24:26, routing-instance EVPN_CUSTOMER_G_ELAN_500,
  route-type Ingress-MAC,
  vlan-id 500 
                      to table
  EVPN_CUSTOMER_G_ELAN_500.evpn-mac.0 | 
Capture 2, Frame 2
was the ICMP reply from CE_R28 to CE_R27 as seen from PE_MXR02 to P_R03.  According to Wireshark’s analysis (arrows),
this was Frame 1’s corresponding reply.  
PE_MXR02 initially performed a Type 2 MAC route lookup for the destination MAC address and discovered this host was multi-homed (from non-zero ESI). A Type 1 EAD per EVI route lookup was subsequently performed and its aliasing label was then used to construct the label stack of 306800 and 329.
In single-active mode, a Type 1 EAD per EVI route was only
advertised from the primary forwarding PE. 
In this case, this route was only received from 111.111.111.111
(PE_MXR01), therefore PE_MXR02 would forward any traffic to 111.111.111.111. 
| 
admin@PE_MXR02>
  show route table bgp.evpn.0 extensive   
   
bgp.evpn.0: 9
  destinations, 9 routes (9 active, 0 holddown, 0 hidden) 
.. snip .. 
1:111.111.111.111:50::112233445566778899::0/192 AD/EVI (1 entry, 0
  announced) 
        *BGP    Preference: 170/-101 
                Route Distinguisher:
  111.111.111.111:50 
                Next hop type: Indirect, Next
  hop index: 0 
                Address: 0xb7a5950 
                Next-hop reference count: 10 
                Source: 111.111.111.111 
                Protocol next hop:
  111.111.111.111 
                Indirect next hop: 0x2
  no-forward INH Session ID: 0x0 
                State: <Active Int Ext> 
                Local AS:  2345 Peer AS:  2345 
                Age: 25:22      Metric2: 1  
                Validation State: unverified  
                Task:
  BGP_2345.111.111.111.111 
                AS path: I 
                Communities: target:2345:50 
                Import Accepted 
                Route Label: 306800 
                Localpref: 100 
                Router ID: 111.111.111.111 
                Secondary Tables:
  EVPN_CUSTOMER_G_ELAN_500.evpn.0 
                Indirect next hops: 1 
                        Protocol next hop:
  111.111.111.111 Metric: 1 
                        Indirect next hop:
  0x2 no-forward INH Session ID: 0x0 
                        Indirect path
  forwarding next hops: 1 
                                Next hop
  type: Router 
                                Next hop:
  10.1.1.89 via ge-0/0/1.46 
                                Session Id: 0x0 
                        111.111.111.111/32
  Originating RIB: inet.3 
                          Metric: 1                       Node path count: 1 
                          Forwarding
  nexthops: 1 
                                Nexthop: 10.1.1.89
  via ge-0/0/1.46 
2:111.111.111.111:50::500::00:1e:e5:c8:0f:bf/304 MAC/IP (1 entry, 0
  announced) 
        *BGP    Preference: 170/-101 
                Route Distinguisher:
  111.111.111.111:50 
                Next hop type: Indirect, Next
  hop index: 0 
                Address: 0xb7a5950 
                Next-hop reference count: 10 
                Source: 111.111.111.111 
                Protocol next hop:
  111.111.111.111 
                Indirect next hop: 0x2
  no-forward INH Session ID: 0x0 
                State: <Active Int Ext> 
                Local AS:  2345 Peer AS:  2345 
                Age: 24:47      Metric2: 1  
                Validation State: unverified  
                Task:
  BGP_2345.111.111.111.111 
                AS path: I 
                Communities: target:2345:50 
                Import Accepted 
                Route Label: 306800 
                ESI: 00:11:22:33:44:55:66:77:88:99 
                Localpref: 100 
                Router ID: 111.111.111.111 
                Secondary Tables: EVPN_CUSTOMER_G_ELAN_500.evpn.0 
                Indirect next hops: 1 
                        Protocol next hop:
  111.111.111.111 Metric: 1 
                        Indirect next hop:
  0x2 no-forward INH Session ID: 0x0 
                        Indirect path
  forwarding next hops: 1 
                                Next hop
  type: Router 
                                Next hop:
  10.1.1.89 via ge-0/0/1.46 
                                Session Id:
  0x0 
                        111.111.111.111/32
  Originating RIB: inet.3 
                          Metric: 1                       Node path count: 1 
                          Forwarding
  nexthops: 1 
                                Nexthop:
  10.1.1.89 via ge-0/0/1.46 | 
| 
admin@PE_MXR02>
  show route table bgp.evpn.0  
bgp.evpn.0: 8
  destinations, 8 routes (8 active, 0 holddown, 0 hidden) 
+ = Active
  Route, - = Last Active, * = Both 
.. snip .. 
1:111.111.111.111:50::112233445566778899::0/192 AD/EVI         
                   *[BGP/170] 00:24:56,
  localpref 100, from 111.111.111.111 
                      AS path: I,
  validation-state: unverified 
                    > to 10.1.1.89 via
  ge-0/0/1.46, Push 329 
2:111.111.111.111:50::500::00:1e:e5:c8:0f:bf/304
  MAC/IP         
                   *[BGP/170] 00:24:21,
  localpref 100, from 111.111.111.111 
                      AS path: I,
  validation-state: unverified 
                    > to 10.1.1.89 via
  ge-0/0/1.46, Push 329 | 
Capture 1 –
Link between P_R03 and PE_MXR01
Capture 1, Frame 4
was the ICMP reply from CE_R28 to CE_R27 as seen from P_R03 and PE_MXR01.  According to Wireshark’s analysis (arrows),
this was Frame 2’s corresponding reply.  
As P_R03 forwarded the packet to PE_MXR01, it popped the top
label of 329.  The VPN label of 306800
was looked up, associated to the EVPN instance (via Ingress-Aliasing since Type
1 route’s label was used) and packet delivered to CE_R27.  Again, traffic forwarding in this direction looked
normal.
| 
admin@PE_MXR01>
  show route table mpls.0 label 306800  
mpls.0: 44
  destinations, 44 routes (44 active, 0 holddown, 0 hidden) 
+ = Active
  Route, - = Last Active, * = Both 
306800            
  *[EVPN/7] 00:19:49, routing-instance EVPN_CUSTOMER_G_ELAN_500,
  route-type Ingress-Aliasing 
                      to table
  EVPN_CUSTOMER_G_ELAN_500.evpn-mac.0 
                    [EVPN/7] 00:19:15,
  routing-instance EVPN_CUSTOMER_G_ELAN_500, route-type Ingress-MAC, vlan-id
  500 
                      to table
  EVPN_CUSTOMER_G_ELAN_500.evpn-mac.0 | 
Conclusion
From my
observation and analysis in this lab, traffic forwarding in single-active redundancy
mode operated as expected per my understanding of EVPN multi-homing.  I didn’t experience any odd behaviors in
regards to routing exchange and label usage.









