본문 바로가기
Routing/VXLAN-EVPN

[EVPN] VXLAN-EVPN 이중화와 Failover 구조 - 멀티호밍 (Multi-homing)

by chan10 2026. 3. 10.

 

EVPN Multi-Homing이란?

EVPN Multi-Homing은 서버나 스위치 같은 CE(Customer Edge) 장비를 두 대 이상의 Leaf 스위치(VTEP)에 연결하는 기술입니다.

이때 EVPN이 제공하는 ESI (Ethernet Segment Identifier)를 통해 “이 Host는 두 Leaf를 통해 접근 가능하다”는 정보를 EVPN을 통해 학습합니다.

주요 장점:

  • 이중화 (Redundancy): 한 Leaf 장애 시에도 다른 Leaf를 통해 서비스 지속
  • Active-Active 로드밸런싱: 두 개의 상단 링크를 모두 활성화하여 대역폭을 극대화합니다.
  • Loop 방지: EVPN이 MAC 학습을 제어하여 브로드캐스트 루프 방지합니다.
  • 빠른 장애 복구: 링크나 스위치 장애 발생 시, EVPN이 이를 즉시 감지하고 트래픽을 정상 경로로 신속하게 전환합니다. (Sub-second convergence)

 

동작 원리 및 구성 요소

EVPN Multi-Homing은 `ESI`와 `DF`두 가지 중요한 개념을 통해 동작합니다.

 

Ethernet Segment Identifier (ESI)

  • Multi-Homing으로 연결된 인터페이스 그룹을 식별하는 고유 ID
  • 각 Leaf 스위치는 동일한 `esi value`를 설정해야 함

ESI는 하나의 서버가 두 개 이상의 Leaf 스위치에 연결될 때, 해당 링크들을 하나의 이중화 그룹(Ethernet Segment) 으로 식별하기 위한 식별자입니다. 이 정보는 BGP EVPN Control Plane을 통해 다른 VTEP으로 광고되어, 네트워크 전체가 해당 Multi-Homing 구성을 인식하게 됩니다.

서버와 연결된 두 Leaf의 Port-Channel(또는 LAG) 인터페이스에 동일한 ESI 값을 설정하면, 두 스위치는 “이 링크는 하나의 논리적 연결이다”라고 인식합니다.

 

Designated Forwarder (DF)

Multi-Homing 환경에서는 두 Leaf가 동시에 BUM 트래픽을 전송할 경우 중복 패킷과 루프가 발생할 수 있습니다.

이를 방지하기 위해 EVPN은 동일한 ESI 그룹 내에서 하나의 DF(Designated Forwarder)를 자동으로 선출합니다.

  • `DF(Designated Forwarder)` : 해당 Ethernet Segment로 향하는 BUM 트래픽을 실제로 포워딩하는 역할
  • `BDF(Backup DF)` : DF가 아닌 Leaf로, BUM 트래픽을 차단한 채 DF의 상태를 모니터링
  • DF 선출 방식 : 각 VTEP의 `VNI`, `ESI`, `Route Distinguisher` 등의 값을 기반으로 EVPN DF Election 알고리즘을 통해 자동으로 결정됩니다.

즉, EVPN Multi-Homing은 Active-Active 링크 구성을 유지하면서도, DF/BDF 선출로 BUM 트래픽 루프를 방지 하는 구조입니다.

  • 두 Leaf 중 하나만 Active 역할 수행 → DF는 브로드캐스트, 멀티캐스트, ARP 등 BUM 트래픽을 전송
  • 나머지 Leaf는 Backup DF(BDF) 로 동작하며 DF 장애 시 자동 승계

또한 여러 VLAN이 존재할 경우, VLAN별로 DF를 다르게 분배하여 부하 분산(Load-Balancing) 효과를 얻을 수 있습니다.

 

설정 정보 (Leaf)

  • LACP (Link Aggregation Control Protocol)
    • 호스트와 Leaf 스위치 간 Active-Active 이중화를 위해, 각 호스트는 Leaf1과 Leaf2에 걸쳐있는 단일 Port-Channel(MLAG/vPC)을 구성합니다.
    • host에서 2개의 leaf가 동일하게 식별되도록 `lacp system-id`를 설정합니다. (leaf1, 2 동일 설정)
  • ESI (Ethernet Segment Identifier) - `evpn ethernet-segment identifier`
    • 각 호스트(Port-Channel)별로 고유한 ESI를 할당하여, 서로 다른 이중화 그룹으로 명확하게 식별합니다.
  • Route Target (RT) - `evpn ethernet-segment route-target`
    • 모든 링크에 하나의 공통된 ES-Import RT를 적용합니다.
    • 실습의 모든 호스트가 동일 테넌트에 속하므로, 이 RT 하나로 전체 DF 선출 범위를 일관되게 관리합니다.
Leaf 설정 확인
Leaf1,2 동일
[Leaf1,2 동일]

[LACP & ESI]
interface Port-Channel3
   switchport access vlan 10
   !
   evpn ethernet-segment
      identifier 0000:0000:0000:33aa:33bb
      route-target import 12:34:00:00:00:0a
   lacp system-id 001c.7300.000a
!
interface Port-Channel4
   switchport access vlan 10
   !
   evpn ethernet-segment
      identifier 0000:0000:0000:44aa:44bb
      route-target import 12:34:00:00:00:0a
   lacp system-id 001c.7300.000a
!
interface Port-Channel5
   switchport access vlan 20
   !
   evpn ethernet-segment
      identifier 0000:0000:0000:55aa:55bb
      route-target import 12:34:00:00:00:0a
   lacp system-id 001c.7300.000a
!
interface Port-Channel6
   switchport access vlan 20
   !
   evpn ethernet-segment
      identifier 0000:0000:0000:66aa:66bb
      route-target import 12:34:00:00:00:0a
   lacp system-id 001c.7300.000a
!
interface Ethernet3
   switchport access vlan 10
   channel-group 3 mode active
!
interface Ethernet4
   switchport access vlan 10
   channel-group 4 mode active
!
interface Ethernet5
   switchport access vlan 20
   channel-group 5 mode active
!
interface Ethernet6
   switchport access vlan 20
   channel-group 6 mode active
        
Leaf1,2 - 각 ip 정보만 다름
[Leaf1,2 - 각 ip 정보만 다름]

[vrf]
vrf instance A
!
interface Vlan10
vrf A
ip address 172.16.10.1/24
ip virtual-router address 172.16.10.254
!
interface Vlan20
vrf A
ip address 172.16.20.1/24
ip virtual-router address 172.16.20.254
!
ip virtual-router mac-address 00:00:00:aa:aa:aa
!
ip routing vrf A

[VxLAN]
interface Vxlan1
   vxlan source-interface Loopback1
   vxlan udp-port 4789
   vxlan vlan 10 vni 10010
   vxlan vlan 20 vni 20020
   vxlan vrf A vni 5000

[MP-BGP_EVPN]
router bgp 65001
   router-id 10.1.1.1
   neighbor SPINE peer group
   neighbor SPINE remote-as 65001
   neighbor SPINE update-source Loopback0
   neighbor SPINE send-community extended
   neighbor 1.1.1.1 peer group SPINE
   neighbor 2.2.2.2 peer group SPINE
   !
   vlan 10
      rd 10.1.1.1:10
      route-target both 65001:10
      redistribute learned
   !
   vlan 20
      rd 10.1.1.1:20
      route-target both 65001:20
      redistribute learned
   !
   address-family evpn
      neighbor SPINE activate
   !
   vrf A
      rd 10.1.1.1:5000
      route-target import 65001:5000
      route-target export 65001:5000
      redistribute connected
        
Leaf3
[Leaf3]

[vrf]
vrf instance A
!
interface Vlan10
vrf A
ip address 172.16.10.3/24
ip virtual-router address 172.16.10.254
!
interface Vlan20
vrf A
ip address 172.16.20.3/24
ip virtual-router address 172.16.20.254
!
ip virtual-router mac-address 00:00:00:aa:aa:aa
!
ip routing vrf A


[VxLAN]
interface Vxlan1
   vxlan source-interface Loopback1
   vxlan udp-port 4789
   vxlan vlan 10 vni 10010
   vxlan vlan 20 vni 20020
   vxlan vrf A vni 5000

[MP-BGP_EVPN]
router bgp 65001
   router-id 10.1.1.3
   neighbor SPINE peer group
   neighbor SPINE remote-as 65001
   neighbor SPINE update-source Loopback0
   neighbor SPINE send-community extended
   neighbor 1.1.1.1 peer group SPINE
   neighbor 2.2.2.2 peer group SPINE
   !
   vlan 10
      rd 10.1.1.3:10
      route-target both 65001:10
      redistribute learned
   !
   vlan 20
      rd 10.1.1.3:20
      route-target both 65001:20
      redistribute learned
   !
   address-family evpn
      neighbor SPINE activate
   !
   vrf A
      rd 10.1.1.3:5000
      route-target import 65001:5000
      route-target export 65001:5000
      redistribute connected        

 

LACP 상태 확인

LACP 상태 확인
Leaf1
[Leaf1]
Leaf1#show lacp peer
State: A = Active, P = Passive; S=ShortTimeout, L=LongTimeout;
       G = Aggregable, I = Individual; s+=InSync, s-=OutOfSync;
       C = Collecting, X = state machine expired,
       D = Distributing, d = default neighbor state
                         |                        Partner                                              
   Port         Status   |  Sys-id                         Port#       State         OperKey    PortPri
---------- --------------|----------------------------- ----------- ------------- ------------- -------
Port Channel Port-Channel3:                                                                    
   Et3          Bundled  |  8000,00-00-00-00-11-11             1       ALGs+CD        0x0001      32768
Port Channel Port-Channel4:                                                                    
   Et4          Bundled  |  8000,00-00-00-00-22-22             1       ALGs+CD        0x0001      32768
Port Channel Port-Channel5:                                                                    
   Et5          Bundled  |  8000,00-00-00-00-33-33             1       ALGs+CD        0x0001      32768
Port Channel Port-Channel6:                                                                    
   Et6          Bundled  |  8000,00-00-00-00-44-44             1       ALGs+CD        0x0001      32768        
   
Leaf2
[Leaf2]
Leaf2#show lacp peer
State: A = Active, P = Passive; S=ShortTimeout, L=LongTimeout;
       G = Aggregable, I = Individual; s+=InSync, s-=OutOfSync;
       C = Collecting, X = state machine expired,
       D = Distributing, d = default neighbor state
                         |                        Partner                                              
   Port         Status   |  Sys-id                         Port#       State         OperKey    PortPri
---------- --------------|----------------------------- ----------- ------------- ------------- -------
Port Channel Port-Channel3:                                                                    
   Et3          Bundled  |  8000,00-00-00-00-11-11             2       ALGs+CD        0x0001      32768
Port Channel Port-Channel4:                                                                    
   Et4          Bundled  |  8000,00-00-00-00-22-22             2       ALGs+CD        0x0001      32768
Port Channel Port-Channel5:                                                                    
   Et5          Bundled  |  8000,00-00-00-00-33-33             2       ALGs+CD        0x0001      32768
Port Channel Port-Channel6:                                                                    
   Et6          Bundled  |  8000,00-00-00-00-44-44             2       ALGs+CD        0x0001      32768        
   
host1
[host1]
host1#show lacp peer
State: A = Active, P = Passive; S=ShortTimeout, L=LongTimeout;
       G = Aggregable, I = Individual; s+=InSync, s-=OutOfSync;
       C = Collecting, X = state machine expired,
       D = Distributing, d = default neighbor state
                         |                        Partner                                              
   Port         Status   |  Sys-id                         Port#       State         OperKey    PortPri
---------- --------------|----------------------------- ----------- ------------- ------------- -------
Port Channel Port-Channel1:                                                                    
   Et1          Bundled  |  8000,00-1c-73-00-00-0a             3       ALGs+CD        0x0003      32768
   Et2          Bundled  |  8000,00-1c-73-00-00-0a             3       ALGs+CD        0x0003      32768
        

 

Ethernet Segment (ESI) 상태 확인

`show bgp evpn instance` 명령어로 각 ESI의 동작 상태와 DF 선출 결과를 확인할 수 있습니다.

모든 ESI의 상태가 `up`으로 활성화되어 있으며, 모든 세그먼트에 대해 Leaf1(`10.2.2.1`)이 DF로, Leaf2(`10.2.2.2`)가 BDF(Non-Designated Forwarder)로 정상 선출된 것을 보여줍니다.

Ethernet Segment(ESI) 상태 확인
Leaf1
[Leaf1]
Leaf1#show bgp evpn instance 
EVPN instance: VLAN 10
  Route distinguisher: 10.1.1.1:10
  Route target import: Route-Target-AS:65001:10
  Route target export: Route-Target-AS:65001:10
  Service interface: VLAN-based
  Local VXLAN IP address: 10.2.2.1
  VXLAN: enabled
  MPLS: disabled
  Local ethernet segment:
    ESI: 0000:0000:0000:44aa:44bb
      Type: 0 (administratively configured)
      Interface: Port-Channel4
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
    ESI: 0000:0000:0000:33aa:33bb
      Type: 0 (administratively configured)
      Interface: Port-Channel3
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
EVPN instance: VLAN 20
  Route distinguisher: 10.1.1.1:20
  Route target import: Route-Target-AS:65001:20
  Route target export: Route-Target-AS:65001:20
  Service interface: VLAN-based
  Local VXLAN IP address: 10.2.2.1
  VXLAN: enabled
  MPLS: disabled
  Local ethernet segment:
    ESI: 0000:0000:0000:55aa:55bb
      Type: 0 (administratively configured)
      Interface: Port-Channel5
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
    ESI: 0000:0000:0000:66aa:66bb
      Type: 0 (administratively configured)
      Interface: Port-Channel6
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2        
      
Leaf2

[Leaf2]
Leaf2#show bgp evpn instance 
EVPN instance: VLAN 10
  Route distinguisher: 10.1.1.2:10
  Route target import: Route-Target-AS:65001:10
  Route target export: Route-Target-AS:65001:10
  Service interface: VLAN-based
  Local VXLAN IP address: 10.2.2.2
  VXLAN: enabled
  MPLS: disabled
  Local ethernet segment:
    ESI: 0000:0000:0000:44aa:44bb
      Type: 0 (administratively configured)
      Interface: Port-Channel4
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
    ESI: 0000:0000:0000:33aa:33bb
      Type: 0 (administratively configured)
      Interface: Port-Channel3
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
EVPN instance: VLAN 20
  Route distinguisher: 10.1.1.2:20
  Route target import: Route-Target-AS:65001:20
  Route target export: Route-Target-AS:65001:20
  Service interface: VLAN-based
  Local VXLAN IP address: 10.2.2.2
  VXLAN: enabled
  MPLS: disabled
  Local ethernet segment:
    ESI: 0000:0000:0000:55aa:55bb
      Type: 0 (administratively configured)
      Interface: Port-Channel5
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
    ESI: 0000:0000:0000:66aa:66bb
      Type: 0 (administratively configured)
      Interface: Port-Channel6
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2        
      

 

BGP EVPN 정보 확인 - route-type 4 (ES)

EVPN 멀티호밍이 올바르게 동작하는지 확인하는 단계 중 하나는 Route-Type 4, 즉 ES(Ethernet Segment) 경로를 확인하는 것입니다.

이 경로는 DF(Designated Forwarder) 선출을 위한 "후보자 등록 명단"과 같은 역할을 합니다. 동일한 ESI에 연결된 모든 스위치들이 서로의 존재를 인지하고 있는지 이 경로를 통해 확인할 수 있습니다.

`show bgp evpn route-type ethernet-segment` 명령을 사용하면 스위치가 알고 있는 모든 ES 경로 목록을 볼 수 있습니다.

BGP EVPN 정보 확인 - route-type 4

메인 목차의 기본 설명입니다.

Leaf1
Leaf1#show bgp evpn route-type ethernet-segment
BGP routing table information for VRF default
Router identifier 10.1.1.1, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >      RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.1
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.1
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.1
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.1
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.2
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1
        
Leaf2
Leaf2#show bgp evpn route-type ethernet-segment 
BGP routing table information for VRF default
Router identifier 10.1.1.2, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.2
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:44aa:44bb 10.2.2.2
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:55aa:55bb 10.2.2.2
                                 -                     -       -       0       i
 * >Ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.2.2.1:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.1
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >      RD: 10.2.2.2:1 ethernet-segment 0000:0000:0000:66aa:66bb 10.2.2.2
                                 -                     -       -       0       i
        

 

Leaf1 출력 결과 확인 시 ESI `...33aa:33bb`에 대해 두 개의 경로가 보입니다.

  • 첫 번째 경로 (`Next Hop: -`): Leaf1 자기 자신이 생성한 로컬 경로입니다.
  • 두 번째 경로 (`Next Hop: 10.2.2.2`): 멀티호밍 피어인 Leaf2로부터 수신한 원격 경로입니다.

이 출력을 통해 Leaf1은 ESI `...33aa:33bb`에 대한 DF 선출 후보자가 자기 자신과 Leaf2, 총 두 명이라는 사실을 인지하고 있음을 알 수 있습니다. 모든 ESI에 대해 이렇게 로컬 경로와 피어 경로가 모두 존재해야 합니다.

 

특정 ESI에 대한 경로를 더 자세히 살펴보면, 이 정보가 어떻게 교환되었는지 알 수 있습니다.

ESI 경로 정보 확인

메인 목차의 기본 설명입니다.

Leaf1
Leaf1#show bgp evpn route-type ethernet-segment esi 0000:0000:0000:33aa:33bb detail 
BGP routing table information for VRF default
Router identifier 10.1.1.1, local AS number 65001
BGP routing table entry for ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.1, Route Distinguisher: 10.2.2.1:1
 Paths: 1 available
  Local
    - from - (0.0.0.0)
      Origin IGP, metric -, localpref -, weight 0, tag 0, valid, local, best
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
BGP routing table entry for ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.2, Route Distinguisher: 10.2.2.2:1
 Paths: 2 available
  Local
    10.2.2.2 from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, ECMP head, ECMP, best, ECMP contributor
      Originator: 10.1.1.2, Cluster list: 2.2.2.2 
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
  Local
    10.2.2.2 from 1.1.1.1 (1.1.1.1)
      Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, ECMP, ECMP contributor
      Originator: 10.1.1.2, Cluster list: 1.1.1.1 
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
        
Leaf2
Leaf2#show bgp evpn route-type ethernet-segment esi 0000:0000:0000:33aa:33bb detail
BGP routing table information for VRF default
Router identifier 10.1.1.2, local AS number 65001
BGP routing table entry for ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.1, Route Distinguisher: 10.2.2.1:1
 Paths: 2 available
  Local
    10.2.2.1 from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, ECMP head, ECMP, best, ECMP contributor
      Originator: 10.1.1.1, Cluster list: 2.2.2.2 
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
  Local
    10.2.2.1 from 1.1.1.1 (1.1.1.1)
      Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, ECMP, ECMP contributor
      Originator: 10.1.1.1, Cluster list: 1.1.1.1 
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
BGP routing table entry for ethernet-segment 0000:0000:0000:33aa:33bb 10.2.2.2, Route Distinguisher: 10.2.2.2:1
 Paths: 1 available
  Local
    - from - (0.0.0.0)
      Origin IGP, metric -, localpref -, weight 0, tag 0, valid, local, best
      Extended Community: TunnelEncap:tunnelTypeVxlan EvpnEsImportRt:12:34:00:00:00:0a
        
  • `Extended Community` 속성을 보면 `EvpnEsImportRt:12:34:00:00:00:0a` 라는 값이 포함되어 있습니다.
  • 이것이 바로 Port-Channel의 ESI 설정에 추가했던 `ES-Import RT`값입니다. 이 RT 값을 통해 DF 선출 정보가 필요한 스위치들 사이에서만 교환되었음을 확인할 수 있습니다.

이처럼 Route-Type 4 경로를 확인하는 것은 DF 스플릿 브레인과 같은 멀티호밍 문제를 해결하는 데 있어 첫 단계입니다.

 

BGP EVPN 정보 확인 - route-type 1 (Auto-Discovery)

Route-Type 1은 Ethernet A-D(Auto-Discovery) 경로라고 부르며 EVPN 멀티호밍에서 All-Active 로드밸런싱(Aliasing)과 빠른 장애 복구를 위해 사용되는 중요한 정보입니다.

 

[역할1: Aliasing - 로드밸런싱]

- Route-Type 1의 가장 중요한 역할은 `Aliasing`, 즉 원격 스위치가 이중화된 경로를 모두 인지하고 트래픽을 분산할 수 있게 해주는 것입니다.

- 멀티호밍 상태를 관리하기 위해 사용하는 식별자로 서버에 직접 연결된 Leaf1과 Leaf2는 각자 자신이 해당 ESI(Ethernet Segment)에 연결되어 있다는 Type-1 경로를 생성하여 전체 네트워크에 광고합니다.

- 이 정보는 네트워크 내의 모든 스위치에게 전파되어 스위치들은 이 번호를 보고 "이 경로들은 같은 그룹에 대한 정보구나"라고 인지하고 경로를 특별하게 관리합니다.

- `Leaf3`는 동일한 ESI 값을 가진 경로가 두 개의 다른 Next Hop(Leaf1, Leaf2)으로부터 오는 것을 보고, "두 경로는 결국 같은 목적지로 가는 동등한 경로구나!"라고 판단합니다.

- 그 결과, Leaf3는 이 두 경로를 모두 사용하여 트래픽을 양쪽으로 분산(ECMP)할 수 있게 됩니다.

 

[역할2: Mass Withdrawal - 신속한 장애 전파]

- 두 번째 핵심 역할은 링크 장애 발생 시 빠른 속도로 장애를 전파하는 것입니다.

- 만약 Leaf1의 서버 연결 링크에 문제가 생기면, Leaf1은 즉시 BGP 경로 철회(Withdraw) 메시지를 전체 네트워크에 전송합니다.

- 이 철회 메시지에는 다음과 같이 장애가 발생한 ESI와 관련된 모든 정보가 포함됩니다.

  • Type-1 경로: `ESI: ...33bb`에 대한 경로
  • Type-2 경로: Host1 (`172.16.10.10`) 에 대한 경로

- '대량 철회(Mass Withdrawal)' 메시지를 받은 Leaf3는 즉시 Leaf1을 통한 경로를 포워딩 테이블에서 제거하고, 모든 트래픽을 정상 동작 중인 Leaf2로만 보내기 시작합니다.

- 이는 MAC 주소 테이블이 타임아웃 되기를 기다리는 기존 L2 방식보다 훨씬 빠르게 장애 복구가 가능합니다.

 

  • Leaf1, Leaf2 (연결 스위치): Route-Type 1 경로를 생성하고 광고하는 역할.
  • Leaf3 (원격 스위치): Route-Type 1 경로를 수신하고 활용하여 로드밸런싱과 장애 감지를 수행하는 역할.
BGP EVPN 정보 확인 - route-type 1
Leaf1
Leaf1#show bgp evpn route-type auto-discovery aliasing 
BGP routing table information for VRF default
Router identifier 10.1.1.1, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >      RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2
        
Leaf2
Leaf2#show bgp evpn route-type auto-discovery aliasing
BGP routing table information for VRF default
Router identifier 10.1.1.2, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >      RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:55aa:55bb
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.2:20 auto-discovery 0 0000:0000:0000:66aa:66bb
                                 -                     -       -       0       i
        
Leaf3
Leaf3#show bgp evpn route-type auto-discovery 
BGP routing table information for VRF default
Router identifier 10.1.1.3, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >Ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >Ec    RD: 10.2.2.1:1 auto-discovery 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.2.2.1:1 auto-discovery 0000:0000:0000:33aa:33bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >Ec    RD: 10.2.2.2:1 auto-discovery 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 auto-discovery 0000:0000:0000:33aa:33bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >Ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >Ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:10 auto-discovery 0 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 * >Ec    RD: 10.2.2.1:1 auto-discovery 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.2.2.1:1 auto-discovery 0000:0000:0000:44aa:44bb
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >Ec    RD: 10.2.2.2:1 auto-discovery 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.2.2.2:1 auto-discovery 0000:0000:0000:44aa:44bb
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
...(생략)...
        

 

EVPN Type-2 (MAC/IP) 경로를 확인하면, `Aliasing` 기능이 동작하고 있음을 확인할 수 있습니다.

  • 연결 스위치 (Leaf1, Leaf2)
    • 서버에 직접 연결된 Leaf1과 Leaf2는 각각 동일한 호스트 MAC 주소(`0000.0000.1111`)에 대해 두 가지 경로를 가집니다.
    • 하나는 자신의 포트에서 직접 학습한 로컬 경로이고, 다른 하나는 BGP를 통해 파트너 스위치로부터 수신한 원격 경로입니다.
    • 이는 두 스위치가 서로 완벽하게 백업하고 있음을 의미합니다.
  • 원격 스위치 (Leaf3)
    • `0000.0000.1111`에 대해 Leaf1과 Leaf2로부터 각각 경로 정보를 수신합니다.
    • 두 개의 유효한 경로가 존재한다고 판단하고 포워딩 테이블에 두 경로를 모두 등록해 ECMP를 통해 트래픽을 전송합니다.
EVPN Type-2(MAC/IP) 경로
Leaf1
Leaf1#show bgp evpn route-type mac-ip 0000.0000.1111
BGP routing table information for VRF default
Router identifier 10.1.1.1, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >      RD: 10.1.1.1:10 mac-ip 0000.0000.1111
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 * >      RD: 10.1.1.1:10 mac-ip 0000.0000.1111 172.16.10.10
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2
        
Leaf2
Leaf2#show bgp evpn route-type mac-ip 0000.0000.1111
BGP routing table information for VRF default
Router identifier 10.1.1.2, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 -                     -       -       0       i
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >      RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 -                     -       -       0       i
        
Leaf3
Leaf3#show bgp evpn route-type mac-ip 0000.0000.1111
BGP routing table information for VRF default
Router identifier 10.1.1.3, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2
        

 

DF 변경 / Failover 테스트

DF 전환 및 이중화 테스트를 위해 leaf1에서 host1과 연결된 링크를 shutdown 합니다. → `port-channel 3 shutdown`

port-channel 3의 lacp는 down되었고 DF 또한 leaf2로 전환되었습니다.

Failover 테스트
Leaf1
[Leaf1]
interface Ethernet3
   shutdown

Leaf1(config-if-Et3)#show int port-Channel 3
Port-Channel3 is down, line protocol is lowerlayerdown (notconnect)
...

Leaf1(config-if-Et3)#show lacp peer
State: A = Active, P = Passive; S=ShortTimeout, L=LongTimeout;
       G = Aggregable, I = Individual; s+=InSync, s-=OutOfSync;
       C = Collecting, X = state machine expired,
       D = Distributing, d = default neighbor state
                         |                        Partner                                              
   Port         Status   |  Sys-id                         Port#       State         OperKey    PortPri
---------- --------------|----------------------------- ----------- ------------- ------------- -------
Port Channel Port-Channel3:                                                                    
Port Channel Port-Channel4:                                                                    
   Et4          Bundled  |  8000,00-00-00-00-22-22             1       ALGs+CD        0x0001      32768
Port Channel Port-Channel5:                                                                    
   Et5          Bundled  |  8000,00-00-00-00-33-33             1       ALGs+CD        0x0001      32768
Port Channel Port-Channel6:                                                                    
   Et6          Bundled  |  8000,00-00-00-00-44-44             1       ALGs+CD        0x0001      32768
        
Leaf2
[Leaf2]
Leaf2#show bgp evpn instance 
EVPN instance: VLAN 10
  Route distinguisher: 10.1.1.2:10
  Route target import: Route-Target-AS:65001:10
  Route target export: Route-Target-AS:65001:10
  Service interface: VLAN-based
  Local VXLAN IP address: 10.2.2.2
  VXLAN: enabled
  MPLS: disabled
  Local ethernet segment:
    ESI: 0000:0000:0000:44aa:44bb
      Type: 0 (administratively configured)
      Interface: Port-Channel4
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.1
      Non-Designated forwarder: 10.2.2.2
    ESI: 0000:0000:0000:33aa:33bb
      Type: 0 (administratively configured)
      Interface: Port-Channel3
      Mode: all-active
      State: up
      ES-Import RT: 12:34:00:00:00:0a
      DF election algorithm: modulus
      Designated forwarder: 10.2.2.2
...
        

 

원격 스위치인 leaf3에서 host1(172.16.10.10)에 대한 경로 정보를 확인 해보겠습니다.

`host1`에 대한 경로는 `leaf2(RD:10.1.1.2:10)`에서만 등록되어 있으며 다른 `host2`에 대한 경로는 `leaf1(RD:10.1.1.1:10)`, `leaf2(RD:10.1.1.1:10)` 양쪽에서 정상으로 등록되고 있습니다.

host 경로 정보
host1 경로
Leaf3#show bgp evpn route-type mac-ip 0000.0000.1111
BGP routing table information for VRF default
Router identifier 10.1.1.3, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.1111 172.16.10.10
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2
        
host2 경로
Leaf3#show bgp evpn route-type mac-ip 0000.0000.2222
BGP routing table information for VRF default
Router identifier 10.1.1.3, local AS number 65001
Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP
                    c - Contributing to ECMP, % - Pending best path selection
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop

          Network                Next Hop              Metric  LocPref Weight  Path
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.2222
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.2222
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >Ec    RD: 10.1.1.1:10 mac-ip 0000.0000.2222 172.16.10.11
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 1.1.1.1 
 *  ec    RD: 10.1.1.1:10 mac-ip 0000.0000.2222 172.16.10.11
                                 10.2.2.1              -       100     0       i Or-ID: 10.1.1.1 C-LST: 2.2.2.2 
 * >Ec    RD: 10.1.1.2:10 mac-ip 0000.0000.2222 172.16.10.11
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 2.2.2.2 
 *  ec    RD: 10.1.1.2:10 mac-ip 0000.0000.2222 172.16.10.11
                                 10.2.2.2              -       100     0       i Or-ID: 10.1.1.2 C-LST: 1.1.1.1
        

 

장애 발생 시 동작 순서

 

1. Leaf1 (장애 감지 및 경로 철회)

  • Host1이 연결된 Port-Channel(ESI `...33bb`)이 down됩니다.
  • Leaf1의 BGP 프로세스는 즉시 BGP UPDATE 메시지를 생성하여 모든 BGP 피어에게 전송합니다.
  • 이 메시지 안에는 철회(WITHDRAWN)할 경로 목록이 포함되며, 여기에는 다음 두 가지가 모두 들어있습니다.
    • Type-1 경로: `ESI: ...33bb`에 대한 경로
    • Type-2 경로: `Host1 (172.16.10.10)` 에 대한 경로

2. Leaf3 (경로 수신 및 포워딩 테이블 업데이트)

  • Leaf3는 Leaf1으로부터 경로 철회 메시지를 수신합니다.
  • BGP 테이블에서 `Next-Hop: Leaf1`을 사용하는 Host1 경로를 제거합니다.
  • 이제 Host1으로 가는 유효한 경로는 `Next-Hop: Leaf2` 하나만 남게 됩니다.
  • Leaf3는 이 정보를 즉시 포워딩 테이블에 반영하여, 앞으로 Host1으로 가는 모든 트래픽을 Leaf2로만 보냅니다.

3. Host2 (영향 없음)

  • Host2가 연결된 Port-Channel(`ESI...44bb`)은 정상 상태이므로, Leaf1은 Host2에 대한 어떤 경로도 철회하지 않았습니다.
  • 따라서 Leaf3의 BGP 및 포워딩 테이블에서 Host2로 가는 경로는 이전과 동일하게 Leaf1과 Leaf2로 ECMP 상태를 유지합니다.

 

host에서 통신 확인 시 약간의 ping loss 후 통신 유지 됩니다.

ping loss 확인
host1#ping 172.16.10.11
80 bytes from 172.16.10.11: icmp_seq=84 ttl=64 time=2.89 ms
80 bytes from 172.16.10.11: icmp_seq=85 ttl=64 time=2.82 ms
80 bytes from 172.16.10.11: icmp_seq=88 ttl=64 time=35.7 ms
80 bytes from 172.16.10.11: icmp_seq=89 ttl=64 time=6.51 ms
  -> icmp_seq 85:88 사이 ping loss (1초 간격)

host1#ping 172.16.10.12
80 bytes from 172.16.10.12: icmp_seq=84 ttl=64 time=5.44 ms
80 bytes from 172.16.10.12: icmp_seq=85 ttl=64 time=13.4 ms
80 bytes from 172.16.10.12: icmp_seq=88 ttl=64 time=5.48 ms
80 bytes from 172.16.10.12: icmp_seq=89 ttl=64 time=5.46 ms
  -> icmp_seq 85:88 사이 ping loss

host1#ping 172.16.20.20
80 bytes from 172.16.20.20: icmp_seq=84 ttl=63 time=3.72 ms
80 bytes from 172.16.20.20: icmp_seq=85 ttl=63 time=3.80 ms
80 bytes from 172.16.20.20: icmp_seq=88 ttl=63 time=5.51 ms
80 bytes from 172.16.20.20: icmp_seq=89 ttl=63 time=8.40 ms
  -> icmp_seq 85:88 사이 ping loss

host1#ping 172.16.20.21
80 bytes from 172.16.20.21: icmp_seq=84 ttl=63 time=3.66 ms
80 bytes from 172.16.20.21: icmp_seq=85 ttl=63 time=3.94 ms
80 bytes from 172.16.20.21: icmp_seq=86 ttl=63 time=10.3 ms
80 bytes from 172.16.20.21: icmp_seq=89 ttl=63 time=5.07 ms
  -> icmp_seq 86:89 사이 ping loss

host1#ping 172.16.20.22
80 bytes from 172.16.20.22: icmp_seq=84 ttl=62 time=5.65 ms
80 bytes from 172.16.20.22: icmp_seq=85 ttl=62 time=6.20 ms
80 bytes from 172.16.20.22: icmp_seq=86 ttl=62 time=9.47 ms
80 bytes from 172.16.20.22: icmp_seq=88 ttl=62 time=5.94 ms
  -> icmp_seq 86:88 사이 ping loss
        

 

 

[Config]

github: vxlan-evpn_multi-homing