
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
'Routing > VXLAN-EVPN' 카테고리의 다른 글
| [EVPN] Multi-Site 환경 VXLAN-EVPN 설계 및 실습 (Routed L3) (0) | 2026.03.24 |
|---|---|
| [EVPN] Multi-Site 환경 VXLAN-EVPN 설계 및 실습 (Stretched L2) (0) | 2026.03.17 |
| [EVPN] VXLAN-EVPN 연동 실습#4 - EVPN Overlay L3VPN 연동 (멑티 테넌트) (0) | 2026.03.03 |
| [EVPN] VXLAN-EVPN 연동 실습#3 - EVPN Overlay L3VPN 연동 (단일 테넌트) (0) | 2026.01.31 |
| [EVPN] VXLAN-EVPN 연동 실습#2 - EVPN Overlay L2VPN 연동 (단일 테넌트) (0) | 2026.01.24 |