[ACP-DC 교육#15] EVPN (Ethernet VPN)
계층 3(Layer 3) 패브릭은 어떤 호스트 간에도 최대 3홉(Three hops) 이내로 저지연 통신을 제공하기 때문에 대규모 데이터센터에서 흔히 사용되는 표준 토폴로지가 되었습니다.
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 17](https://egstory.net/wp-content/uploads/2026/11/image-17.png)
이더넷 VPN(EVPN, Ethernet VPN)은 VXLAN과 MP-BGP 같은 프로토콜을 결합하여 스위치 간에 동적 EVPN 터널을 생성함으로써, L2 및 L3 통신을 모두 가능하게 합니다. 이때 BGP 확장 커뮤니티(BGP-extended communities)가 VTEP 간에 라우팅 및 제어 정보를 교환하여, 관리자가 일일이 수동으로 터널을 지정하지 않아도 스위치들이 동일한 VNI에 속한 원격 VTEP들을 스스로 발견(Discover)하고 그 사이에 동적으로 터널을 생성할 수 있도록 해줍니다.
VXLAN 기반 이더넷 VPN 개요 (Ethernet VPN over VXLAN overview)
EVPN은 MAC 주소, MAC 및 IP 바인딩(매핑 정보), IP 프리픽스(네트워크 대역) 등을 라우팅 프로토콜을 통해 광고하는 표준 기반의 BGP 컨트롤 플레인(제어 평면)입니다.
초기 EVPN 표준(RFC 7432)은 BGP EVPN 컨트롤 플레인을 정의하면서 MPLS 데이터 플레인(데이터 전송 평면)을 지정했습니다.
이후 MPLS 데이터 플레인을 포함하던 이 컨트롤 플레인은 RFC 8365에 상세히 기술된 것처럼 VXLAN, NVGRE, MPLS over GRE를 포함한 추가적인 데이터 플레인 캡슐화 모델을 수용하도록 확장되었습니다. 오늘은 오버레이 네트워크 구축을 위해 VXLAN 데이터 플레인과 함께 동작하는 EVPN에 초점을 맞춰보겠습니다.
기존의 정적(Static) VXLAN은 원격 호스트의 MAC 주소를 학습하기 위해 플러드 앤 런(Flood and Learn, 또는 인그레스 복제/Ingress replication) 방식을 사용하는데, 이는 목적지 MAC 주소를 모를 때 브로드캐스트로 패킷을 뿌려서 학습하는 방식이라 플러드 목록(Flood list)에 원격 VTEP들을 수동으로 일일이 설정해야 하는 번거로움이 있습니다. 반면 MP-BGP EVPN을 컨트롤 플레인으로 사용하면, 원격 VTEP을 자동으로 발견하고 VXLAN 오버레이 상에서 스위치들이 BGP를 통해 “내 밑에 어떤 MAC과 IP를 가진 호스트가 있다”고 미리 광고할 수 있으므로, 불필요한 트래픽을 유발하는 플러드 앤 런 방식을 완전히 제거할 수 있습니다.
이를 위해 MP-BGP는 새롭게 정의된 주소 패밀리 식별자(AFI, Address Family Identifier)와 후속 주소 패밀리 식별자(SAFI, Subsequent Address Family Identifier)를 사용하는 멀티프로토콜 BGP 확장을 통해, BGP 내부에서 전달되는 새로운 EVPN 네트워크 계층 도달 가능성 정보(NLRI, Network Layer Reachability Information)를 지원합니다.
- 경로 구분자 (RD, Route Distinguisher): VRF 내부에서 광고되는 주소 앞에 붙는 고유한 숫자(일종의 고유 식별 번호)로, 서로 다른 테넌트(고객사나 부서)가 동일한 IP 주소나 MAC 주소를 중복해서(Overlapping) 사용하더라도 BGP 테이블 내에서 이를 서로 다른 고유한 경로로 완벽히 구분하여 지원할 수 있도록 보장합니다.
- 경로 타겟 (RT, Route Target): EVPN 경로와 함께 광고되는 BGP 확장 커뮤니티(BGP-extended community)로, 일종의 ‘출입증’ 역할을 수행하여 여러 VLAN 및 VRF 간에 어떤 경로를 선택적으로 가져오고(Import) 내보낼지(Export) 정책적으로 제어할 수 있게 해줍니다.
EVPN을 통한 자동 발견 (Auto-discovery via EVPN)
VTEP들은 BGP EVPN 경로(Routes)를 사용하여 이웃 VTEP(VTEP neighbors)을 자동으로 발견하고, VXLAN 터널을 수립하며, 해당 터널을 각 VXLAN에 할당합니다.
- IMET 경로 (IMET route): VTEP들은 IMET 경로를 통해 자신이 보유한 VXLAN ID(VNI)를 네트워크에 광고합니다. 만약 두 VTEP이 동일한 VXLAN ID를 가지고 있다면, 두 장비는 서로를 인지하여 자동으로 VXLAN 터널을 수립하고 그 터널을 해당 VXLAN에 할당합니다. 이 방식을 사용하면 브로드캐스트, 알 수 없는 유니캐스트, 멀티캐스트(BUM) 트래픽 전달을 위한 복제 목록(Replication list)을 수동 설정 없이 자동으로 생성할 수 있습니다.
- MAC/IP 광고 경로 및 IP 프리픽스 광고 경로 (MAC/IP advertisement route and IP prefix advertisement route): EVPN 배포 환경에서 VTEP들은 내보내기 타겟(Export targets)이 포함된 MAC/IP 광고 경로 또는 IP 프리픽스 광고 경로를 광고합니다. 원격 VTEP이 이 경로를 수신하면, 해당 경로에 찍혀 있는 내보내기 타겟(Export targets)을 자신의 로컬 가져오기 타겟(Local import targets)과 비교하여 수용 여부를 결정합니다.
계층화된 전송 네트워크 (Layered transport network)
EVPN 전송 네트워크는 일반적으로 스파인-리프(Spine-Leaf)와 같은 계층화된 구조를 사용합니다. 전송 네트워크에서 리프(Leaf) 노드는 서버와 연결되어 VXLAN 서비스를 제공하는 VTEP 역할을 수행하며, 스파인(Spine) 노드는 VXLAN 내부를 들여다보지 않고 오직 외부 IP 헤더(Outer IP header)만을 기반으로 VXLAN 트래픽을 빠르게 포워딩(전달)하는 역할을 수행합니다.
만약 EVPN 네트워크의 모든 VTEP과 전송 네트워크 장비들이 동일한 자율 시스템(AS, Autonomous System — 즉 iBGP 환경)에 속해 있다면, 리프 스위치들끼리 복잡하게 1:1 풀메시(Full-mesh) BGP 연결을 맺는 대신 스파인 노드가 라우트 리플렉터(RR, Route Reflectors) 역할을 수행하여 VTEP들 간에 라우팅 경로만 반사(중계)해 줄 수 있습니다.
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 18](https://egstory.net/wp-content/uploads/2026/11/image-18.png)
위 그림에서 볼 수 있듯, 스파인 노드는 BGP EVPN 경로를 수신하고 다른 리프들에게 다시 광고하는 제어 평면의 중계자 역할만 할 뿐, 직접 VXLAN 캡슐화 및 역캡슐화를 수행하지는 않습니다.
EVPN을 위한 MP-BGP 확장 (MP-BGP extension for EVPN)
BGP가 기존의 IP 대역뿐만 아니라 이더넷(L2) 정보까지 실어 나르기 위해 정의한 주요 EVPN 경로 유형(Route types)은 다음과 같습니다:
- 이더넷 자동 발견 경로 (Ethernet auto-discovery route – Route Type 1): 하나의 서버가 두 대 이상의 스위치에 연결된 멀티호밍(Multihomed) 사이트에서 이더넷 세그먼트(ES, Ethernet Segment) 정보를 광고합니다.
- MAC/IP 광고 경로 (MAC/IP advertisement route – Route Type 2): 특정 호스트의 MAC 도달 가능성 정보와 호스트 경로 정보(호스트의 ARP 또는 IPv6 ND 매핑 정보)를 광고합니다.
- 포괄적 멀티캐스트 이더넷 태그 경로 (Inclusive multicast Ethernet tag (IMET) route – Route Type 3): VTEP 발견, VXLAN 터널 수립, 그리고 VXLAN 터널 할당을 자동화하기 위해 어떤 VTEP이 어떤 VXLAN(VNI)을 가지고 있는지 매핑 정보를 광고합니다.
- 이더넷 세그먼트 경로 (Ethernet segment route – Route Type 4): 멀티호밍 환경에서 ES(이더넷 세그먼트)와 VTEP 간의 매핑 정보를 광고합니다.
- IP 프리픽스 광고 경로 (IP prefix advertisement route – Route Type 5): 외부 네트워크나 서브넷 대역 같은 BGP IPv4 또는 IPv6 유니캐스트 경로를 IP 프리픽스 형태로 광고합니다.
이처럼 MP-BGP는 서로 다른 L2 도메인이나 테넌트의 BGP EVPN 경로가 겹치지 않도록 구별하기 위해 경로 구분자(RD, Route Distinguisher) 필드를 사용하며, 어떤 BGP EVPN 경로를 광고하고 받아들일지 제어하기 위해 다음 두 가지 유형의 경로 타겟(RT, Route Targets)을 지원합니다:
- 내보내기 경로 타겟 (Export route target): VTEP은 로컬 사이트에서 학습한 BGP EVPN 경로를 원격 VTEP들에게 광고하기 전에, 해당 경로에 이 경로가 어느 그룹에 속하는지 나타내는 내보내기 타겟(Export targets) 값을 붙여 보냅니다.
- 가져오기 경로 타겟 (Import route target): VTEP은 원격 VTEP들로부터 수신한 BGP EVPN 경로의 내보내기 타겟(Export targets)을 확인합니다. VTEP은 수신한 경로의 내보내기 타겟이 자신의 로컬 가져오기 타겟(Local import targets)과 일치할 때만 해당 BGP EVPN 경로를 자신의 라우팅/포워딩 테이블로 받아들입니다(Import).
계층 2 포워딩 (Layer 2 forwarding)
MAC 학습 (MAC learning)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 19](https://egstory.net/wp-content/uploads/2026/11/image-19-1024x547.png)
VTEP은 다음 두 가지 방법을 사용하여 MAC 주소를 학습하며, 로컬은 일반적인 스위치처럼 데이터 플레인으로 배우고 원격은 EVPN 컨트롤 플레인으로 배우는 하이브리드 구조를 가집니다:
- 로컬 MAC 학습 (Local MAC learning): VTEP은 로컬 사이트(직접 연결된 서버 등)에서 전송된 프레임의 출발지 MAC 주소를 기존 스위치 방식 그대로 자동 학습합니다. 로컬 MAC 주소 엔트리의 출력 인터페이스(Outgoing interfaces)는 사이트를 향하는 물리적 인터페이스(Site-facing interfaces)이며, 이곳이 곧 MAC 주소가 학습된 위치가 됩니다.
- 원격 MAC 학습 (Remote MAC learning): VTEP은 MP-BGP(EVPN Route Type 2)를 사용하여 로컬 MAC 도달 가능성 정보를 원격 사이트에 광고하고, 반대로 원격 사이트로부터 MAC 도달 가능성 정보를 학습합니다. 원격 사이트에서 광고되어 학습된 MAC 주소 엔트리의 출력 인터페이스는 물리 포트가 아닌 VXLAN 터널 인터페이스로 기록됩니다.
사이트 내부 유니캐스트 (Intra-site unicast / 로컬 유니캐스트)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 20](https://egstory.net/wp-content/uploads/2026/11/image-20-1024x446.png)
이 토폴로지는 호스트 A가 호스트 D로 프레임을 보내는 상황을 보여줍니다.
두 호스트는 동일한 VLAN에 속해 있으며 동일한 VTEP 아래에 연결되어 있습니다.
이 경우 VTEP-1은 VXLAN 터널을 전혀 거치지 않고 해당 패킷을 로컬 인터페이스 2번으로 즉시 브리징(L2 스위칭)합니다.
즉, VTEP은 로컬 사이트 내부에서 발생하는 알려진 유니캐스트(Known unicast) 트래픽에 대해서는 일반적인 로컬 계층 2 포워딩을 그대로 수행합니다.
사이트 간 유니캐스트 (Inter-site unicast / 원격 목적지 유니캐스트)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 21](https://egstory.net/wp-content/uploads/2026/11/image-21-1024x509.png)
위 그림에서 보듯, 이번에는 Host C가 Host I로 프레임을 보냅니다.
Host I는 다른 원격 VTEP에 연결되어 있기 때문에, 먼저 VTEP-1이 자신의 MAC 테이블을 조회합니다.
테이블에는 Host I에 도달하려면 ‘터널 인터페이스 1’을 통해야 한다고(앞서 MP-BGP를 통해 미리 학습되어) 나와 있으므로, VTEP-1은 패킷을 VXLAN으로 캡슐화하여 VTEP-2로 전송합니다.
패킷을 수신한 VTEP-2는 캡슐화를 해제(역캡슐화)하고 자신의 MAC 테이블을 조회하여 Host I가 로컬 인터페이스 3번을 통해 연결되어 있음을 확인한 뒤, 인터페이스 3번으로 패킷을 브리징합니다.
BUM 트래픽 처리 (Broadcast, Unknown-unicast, and Multicast)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 22](https://egstory.net/wp-content/uploads/2026/11/image-22-1024x467.png)
VTEP은 BUM(브로드캐스트, 알 수 없는 유니캐스트, 멀티캐스트) 프레임을 수신하면, 패킷이 들어온 인터페이스를 제외한 모든 로컬 사이트 방향 인터페이스(Site-facing interfaces)로 플러딩(Flooding)합니다. 동시에 출발지 VTEP은 이 플러드 프레임을 복제하여 해당 VXLAN에 속한 각 VXLAN 터널의 목적지 IP 주소로 복제본을 하나씩 전송합니다(Head-end Replication).
패킷을 수신한 각 목적지 VTEP은 캡슐화를 벗겨낸 내부 이더넷 프레임(Inner Ethernet frame)을 해당 VXLAN에 속한 모든 로컬 사이트 방향 인터페이스로 플러딩합니다.
이때 네트워크 루프(Loop)가 발생하는 것을 방지하기 위해, 목적지 VTEP들은 터널을 통해 받은 프레임을 다시 다른 VXLAN 터널로는 절대 플러딩하지 않습니다(Split Horizon 원칙).
MAC 이동성 (MAC mobility)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 23 edited](https://egstory.net/wp-content/uploads/2026/11/image-23-edited-1024x574.png)
MAC 이동성(MAC mobility)이란 가상 머신의 실시간 마이그레이션(예: VMware vMotion) 등으로 인해 사용자 단말(VM)이 한 VTEP에서 다른 VTEP으로 이동하는 것을 의미합니다.
원래 연결되어 있던 출발지 VTEP은 단말이 떠났다는 MAC 이동 이벤트를 즉각 알지 못합니다.
따라서 이동해 간 목적지 VTEP이 다른 VTEP들에게 이 변경 사항을 알리기 위해 해당 MAC 주소에 대한 새로운 MAC/IP 광고 경로(Route Type 2)를 광고합니다.
출발지 VTEP은 이 새로운 경로를 수신한 후 기존에 가지고 있던 해당 MAC 주소의 오래된 경로를 철회(Withdraw)합니다.
이때 MAC/IP 광고 경로에는 MAC 주소가 이동할 때마다 1씩 증가하는 시퀀스 번호(Sequence number)가 포함되어 있습니다.
만약 MAC 주소가 짧은 시간 동안 여러 번 이동하더라도, 스위치들은 이 시퀀스 번호를 비교하여 가장 숫자가 높은 최신 이동 터널 인터페이스를 정확히 식별해 냅니다.
계층 3 포워딩 (Layer 3 forwarding)
서로 다른 VXLAN(서브넷) 간에 통신하려면 L3 라우팅이 필요하며, 게이트웨이를 어디에 배치하느냐에 따라 중앙 집중식과 분산형으로 나뉩니다.
L3 중앙 집중식 게이트웨이 (L3 centralized gateway)
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 24](https://egstory.net/wp-content/uploads/2026/11/image-24-1024x442.png)
특정 VTEP 한 대(또는 한 쌍)가 VXLAN 내부 호스트들을 위한 전담 게이트웨이 역할을 수행합니다.
이 중앙 VTEP은 VXLAN 터널을 종료(Terminate)하는 동시에 호스트들을 위한 계층 3 라우팅 포워딩을 모두 전담합니다.
네트워크는 호스트에서 목적지로 계층 3 트래픽을 전달하기 위해 다음 프로세스를 사용합니다:
- 호스트는 게이트웨이 역할을 하는 VSI(가상 스위치 인터페이스, SVI)의 MAC 주소를 얻기 위해 ARP 요청을 보내고, 알아낸 MAC 주소를 목적지로 하여 계층 3 트래픽을 중앙 집중식 EVPN 게이트웨이로 전송합니다.
- 로컬 VTEP은 일치하는 MAC 주소 테이블을 조회한 뒤, 직접 라우팅하지 않고 VXLAN 터널을 통해 해당 트래픽을 중앙 집중식 EVPN 게이트웨이로 먼저 전달합니다.
- 중앙 집중식 EVPN 게이트웨이는 VXLAN 캡슐화를 제거하고 계층 3 라우팅 포워딩을 수행합니다. 만약 최종 목적지 호스트가 또 다른 원격 VTEP 뒤에 존재하는 경우, 중앙 게이트웨이는 패킷을 목적지 VNI로 다시 VXLAN 캡슐화하여 목적지 VTEP으로 전달합니다(이로 인해 트래픽이 중앙 게이트웨이를 찍고 돌아오는 헤어피닝/트롬보닝 현상이 발생할 수 있습니다).
- 되돌아오는 모든 응답 트래픽(Return traffic) 또한 위에서 설명한 것과 동일한 절차를 거칩니다.
L3 분산형 애니캐스트 게이트웨이 (L3 distributed Anycast gateway)
중앙 집중식의 비효율적인 우회 경로(헤어피닝)를 해결하기 위해 등장한 방식입니다.
이름에서 알 수 있듯이, 동일한 서브넷에 속한 호스트나 서버들과 연결된 모든 리프 VTEP들에 (해당 서브넷에 대해) 완전히 동일한 게이트웨이 IP 및 MAC 주소를 설정하며, 이로 인해 본질적으로 애니캐스트(Anycast) 방식으로 동작하게 됩니다. 이 (애니캐스트) 게이트웨이 IP와 MAC 주소는 서버 및 테넌트를 향하는 SVI 인터페이스(Interface VLAN)에 구성됩니다.
덕분에 어떤 서버든 자신이 연결된 바로 위의 로컬 리프 스위치에서 즉시 L3 라우팅을 처리할 수 있고, VM이 다른 랙으로 이동(vMotion)하더라도 기본 게이트웨이의 IP와 MAC이 똑같기 때문에 ARP 캐시를 새로 고칠 필요 없이 무중단 통신이 가능합니다.
SVI 인터페이스 하위에 active-gateway 명령어를 사용하여 애니캐스트 게이트웨이를 다음과 같이 구성할 수 있습니다:
switch(config)# interface vlan 10
switch(config-if-vlan)# active-gateway ip 10.1.1.1 mac 00:00:02:02:02:02
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 25](https://egstory.net/wp-content/uploads/2026/11/image-25-1024x472.png)
액티브 게이트웨이 구성 권장 사항 (Active gateway configuration recommendations)
- 액티브 게이트웨이의 가상 IP(Virtual IP) 구성은 인터페이스의 물리적 IP(Physical IP) 구성과 절대 같아서는 안 됩니다. EVPN 환경에서 액티브 게이트웨이 가상 IP와 물리적 IP를 동일하게 설정할 수 없으며, 그렇게 할 경우 데이터 트래픽이 무한 플러딩(Flooding)되는 장애로 이어질 수 있습니다. 또한 VSX-Primary와 VSX-Secondary 장비의 SVI 인터페이스에 설정되는 물리적 IP 주소는 서로 달라야 합니다(단,
active-gateway로 묶는 가상 IP와 가상 MAC은 모든 VTEP에서 동일하게 설정합니다).- 분산형 게이트웨이를 통해 비대칭 IRB(Asymmetric IRB)를 구현하기 위해 각 VTEP에 액티브 게이트웨이를 구성하는 경우에도 동일한 규칙이 적용됩니다.
- 애니캐스트 게이트웨이 구성을 위해 테넌트 SVI에 설정하는 액티브 게이트웨이 MAC 주소는 IPv6와 IPv4 모두 동일해야 합니다. 액티브 게이트웨이 IPv6 주소는 링크 로컬 주소(Link-local address,
fe80::으로 시작하는 주소)여야 하며 두 VSX 피어(Peer) 장비에서 동일하게 설정되어야 합니다.
분산 라우팅 – 비대칭 및 대칭 통합 라우팅과 브리징 (Distributed routing – Asymmetric & Symmetric IRB)
분산 라우팅이 적용된 EVPN을 사용할 때, 각 리프 스위치(VTEP)들이 서로 다른 서브넷의 서버 패킷을 라우팅하고 전달하는 방식에는 두 가지 접근법이 있습니다:
- 비대칭 IRB (Asymmetric IRB): 갈 때와 올 때의 처리 과정이 비대칭인 방식 (Bridge → Route → Bridge)
- 대칭 IRB (Symmetric IRB): 입구와 출구 스위치 모두 대칭적으로 라우팅을 수행하는 방식 (Bridge → Route → Route → Bridge)
1. 비대칭 IRB (Asymmetric IRB)
먼저 비대칭 IRB를 살펴보겠습니다.
분산 라우팅 및 비대칭 IRB 환경에서는 패킷이 진입 VTEP(Ingress VTEP)에서 즉시 라우팅되고, 최종 목적지 VNI로 캡슐화되어 출구 VTEP(Egress VTEP)으로 전송됩니다.
그러면 출구 VTEP은 라우팅 없이 단순히 패킷을 목적지 포트로 브리징(L2 스위칭)만 수행합니다.
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 26](https://egstory.net/wp-content/uploads/2026/11/image-26.png)
위 그림의 토폴로지에서 VNI A(10)에 속한 Host-1을 떠나 VNI B(20)에 있는 Host-2를 목적지로 하는 패킷의 처리 예시는 다음과 같습니다:
- Host-1이 진입 VTEP인 스위치 SW1로 패킷을 보냅니다.
- 스위치 SW1은 패킷을 VNI 10에서 VNI 20으로 즉시 라우팅합니다.
- 스위치 SW1은 패킷을 목적지인 VNI 20으로 캡슐화하여 스위치 SW2로 전달합니다.
- 출구 VTEP인 스위치 SW2는 패킷의 캡슐화를 해제(역캡슐화)합니다.
- 스위치 SW2는 이미 VNI 20으로 넘어온 패킷이므로 라우팅 없이 Host-2가 연결된 목적지 인터페이스로 패킷을 브리징(L2 전달)합니다.
특징 및 제약사항:
비대칭 IRB가 동작하려면 진입 VTEP이 출발지 VNI뿐만 아니라 목적지 VNI 정보도 알고 있어야 하므로, 진입 VTEP에 계층 2와 계층 3 포워딩을 위한 출발지 및 목적지 VNI(및 해당 VLAN/SVI)를 모두 구성해야 합니다. 즉, 진입 VTEP에서는 라우팅과 브리징이 모두 사용되고, 출구 VTEP에서는 브리징만 사용됩니다.
결과적으로 모든 VTEP에 데이터센터 내의 동일한 모든 VLAN과 VNI를 일일이 다 설정해 두어야 하므로, 비대칭 IRB는 VTEP 장비에 더 많은 ARP 및 MAC 테이블 엔트리 공간(메모리 자원)을 요구하게 되어 대규모 환경에서는 확장성이 떨어집니다.
2. 대칭 IRB (Symmetric IRB)
비대칭 IRB와 대칭 IRB의 가장 핵심적인 차이점은, 대칭 IRB에서는 양쪽 스위치(진입 VTEP과 출구 VTEP) 모두가 매 패킷을 라우팅하며, 이를 위해 VTEP들 사이를 연결하는 별도의 전용 전송 VNI(Transport VNI, 또는 L3 VNI)가 사용된다는 점입니다(이 덕분에 각 스위치는 자신에게 실제로 연결된 서버의 VLAN/VNI만 가지고 있으면 되어 확장성이 매우 뛰어납니다).
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 27](https://egstory.net/wp-content/uploads/2026/11/image-27-1024x462.png)
위와 동일한 토폴로지에서 VNI 10에 있는 Host-1을 떠나 VNI 20에 있는 Host-2를 목적지로 하는 패킷의 대칭 IRB 처리 과정은 다음과 같습니다:
- Host-1이 진입 VTEP인 스위치 SW1로 패킷을 보냅니다.
- 스위치 SW1은 패킷을 VNI 10에서 테넌트 공용 라우팅 통로인 전송 L3 VNI 1020(Transport L3 VNI 1020)으로 라우팅합니다.
- 스위치 SW1은 패킷을 L3 VNI 1020으로 캡슐화하여 스위치 SW2로 전달합니다.
- 출구 VTEP인 스위치 SW2는 패킷을 받아 캡슐화를 풀고, L3 VNI 1020에서 최종 목적지 VNI인 VNI 20으로 한 번 더 라우팅합니다.
- 스위치 SW2는 Host-2가 연결된 목적지 인터페이스로 패킷을 전달(브리징)합니다.
eBGP EVPN 지원 토폴로지 (eBGP EVPN supported topologies)
EVPN을 배포할 때 iBGP와 eBGP는 모두 유효한 선택지입니다. eBGP를 사용할 때는 다음 두 가지 토폴로지가 지원됩니다:
- 듀얼 AS (Dual-AS): 모든 스파인 스위치가 하나의 공통된 AS 번호(예: AS 65000)를 공유하고, 모든 리프 스위치들이 또 다른 하나의 공통된 AS 번호(예: AS 65001)를 공유하는 구조입니다.
- 멀티 AS (Multi-AS): 모든 스파인 스위치는 하나의 공통된 AS 번호를 공유하고, 모든 리프 스위치들은 각각 서로 다른 고유한 AS 번호(예: AS 65001, 65002, 65003…)를 가지는 구조입니다.
EVPN 터널 엔드포인트(VTEP)들은 광고되는 라우팅 경로(Routes) 내에서 넥스트 홉(Next-hop) 주소로 서로 통신합니다. 그런데 eBGP의 기본 동작 원리상 라우팅 경로가 라우터(스파인)를 하나 건너갈 때마다 넥스트 홉 IP 주소가 해당 라우터(스파인)의 IP로 변경됩니다. 만약 스파인이 넥스트 홉을 자기 자신의 IP로 바꿔버리면, 원격 리프 스위치는 최초에 경로를 보낸 출발지 VTEP의 터널 IP를 알 수 없게 되어 VXLAN 터널을 맺지 못합니다.
따라서 넥스트 홉(즉, 최초 터널 엔드포인트 정보)을 그대로 유지하기 위해서는, 스파인 스위치에서 EVPN 경로와 연결된 넥스트 홉을 변경하지 않도록 하는 추가 설정(next-hop-unchanged)이 반드시 필요합니다.
![[ACP-DC 교육#15] EVPN (Ethernet VPN) - image 28](https://egstory.net/wp-content/uploads/2026/11/image-28-1024x467.png)
switch(config-bgp-l2vpn-evpn)# neighbor 1.1.1.1 next-hop-unchanged
또한 듀얼 AS(Dual-AS) 토폴로지에서는 모든 리프 스위치가 동일한 AS 번호를 쓰기 때문에, 피어 VTEP(리프 스위치)이 스파인을 거쳐 다른 리프 스위치로부터 경로를 수신할 때 경로 기록(AS-Path)에 자신과 동일한 AS 번호가 찍혀 있는 것을 보고 BGP 루프 방지 메커니즘에 의해 해당 경로를 거부(Drop)하게 됩니다.
이를 방지하고 내 AS 번호가 찍힌 경로도 정상적으로 받아들이도록 하려면 리프 스위치에서 allowas-in 명령어를 사용해야 합니다.
switch(config-bgp-l2vpn-evpn)# neighbor 1.1.1.1 allowas-in 65001
VSX 페어(쌍)로 묶인 두 스위치는 논리적으로 하나의 VTEP처럼 동작해야 하므로, 듀얼 AS 배포든 멀티 AS 배포든 상관없이 언제나 동일한 AS에 속해야 한다는 점을 명심하세요.
EVPN 설정 (EVPN configuration)
MP-BGP 설정
확장 BGP 커뮤니티 활성화 (Enabling extended BGP community) EVPN은 RT(Route Target)나 MAC 이동 시퀀스 번호 같은 부가 제어 정보를 BGP 확장 커뮤니티에 실어 보내므로 이를 반드시 활성화해야 합니다.
neighbor {<IP-ADDRESS>|<PEER-GROUP-NAME>} send-community [standard | extended]
스파인(Spine) MP-BGP 샘플 설정 (iBGP Route Reflector 기준)
switch(config)# router bgp 100
switch(config-bgp)# neighbor 20.0.0.1 remote-as 100
switch(config-bgp)# neighbor 30.0.0.1 remote-as 100
switch(config-bgp)# address-family l2vpn evpn
switch(config-bgp-l2vpn-evpn)# neighbor 20.0.0.1 activate
switch(config-bgp-l2vpn-evpn)# neighbor 20.0.0.1 route-reflector-client
switch(config-bgp-l2vpn-evpn)# neighbor 20.0.0.1 send-community extended
switch(config-bgp-l2vpn-evpn)# neighbor 30.0.0.1 activate
switch(config-bgp-l2vpn-evpn)# neighbor 30.0.0.1 route-reflector-client
switch(config-bgp-l2vpn-evpn)# neighbor 30.0.0.1 send-community extended
원문에는
route-reflector-Server로 표기되어 있으나, 실제 AOS-CX CLI에서는 스파인이 자신이 RR 서버가 되기 위해 리프 이웃들을 클라이언트로 지정하는route-reflector-client명령어를 사용합니다.
네트워크는 원격 VTEP을 자동으로 발견하고 VXLAN 오버레이에서 MAC 주소 및 MAC/IP 바인딩을 광고하기 위해 MP-BGP EVPN을 사용하며, 이를 통해 수동 플러드 앤 런(Flood and learn)을 제거합니다.
MP-BGP는 새롭게 정의된 주소 패밀리 식별자(AFI)와 후속 주소 패밀리 식별자(SAFI)를 사용하는 멀티프로토콜 BGP 확장을 통해(위 설정의 address-family l2vpn evpn), BGP 내에서 전달되는 새로운 EVPN 네트워크 계층 도달 가능성 정보(NLRI)를 지원합니다. 경로 구분자(RD, Route Distinguisher)는 VRF 내에서 광고되는 주소의 맨 앞에 추가되는 고유 번호로, 서로 다른 테넌트 간에 IP 및 MAC 주소가 중복되더라도 이를 완벽히 지원하도록 보장합니다.
또한 EVPN 경로에 함께 광고되는 경로 타겟(RT, Route Target)이라는 BGP 확장 커뮤니티를 사용하여 여러 VRF 간에 경로를 선택적으로 가져오기(Import) 및 내보내기(Export)할 수 있습니다. BGP 라우터가 EVPN에 필요한 이러한 커뮤니티 값들을 전송할 수 있도록 허용하려면, BGP EVPN 피어 간에 확장 커뮤니티 전송(send-community extended)을 반드시 설정해야 합니다.
리프(Leaf) BGP 샘플 설정:
router bgp 100
neighbor 20.0.0.2 remote-as 100
address-family l2vpn evpn
neighbor 20.0.0.2 activate
neighbor 20.0.0.2 send-community extended
exit-address-family
EVPN 활성화 (Enabling EVPN)
스위치에서 EVPN을 활성화하려면 다음 세 단계를 수행해야 합니다:
- EVPN 컨텍스트(설정 모드)로 진입합니다.
- 각 VLAN에 대해 RD(Route Distinguisher)를 정의합니다.
- 경로 타겟(Route Target, RT)을 설정합니다.
1. EVPN 활성화
switch(config)# evpn
switch(config-evpn)#
2. RD 정의
switch(config-evpn)# vlan 10
switch(config-evpn-vlan-10)# rd 6800:1
3. 경로 타겟(RT) 설정
switch(config-evpn)# vlan 10
switch(config-evpn-vlan-10)# route-target export 1:1
switch(config-evpn-vlan-10)# route-target import 1:1
AOS-CX는 VTEP을 동적으로 학습하도록 EVPN을 활성화한 상태에서는, 수동으로 정적 VTEP(Static VTEPs)을 동시에 설정하는 것을 지원하지 않습니다.
경로 구분자 (RD, Route Distinguisher)
경로 구분자(RD)는 VRF 내부에서 광고되는 주소 앞에 붙는 고유한 숫자를 지정합니다.
이를 통해 서로 다른 테넌트 간에 IP 주소와 MAC 주소가 겹치더라도 중복을 지원할 수 있습니다.
기본값은 비어 있는 상태(NULL)이므로, 관리자가 반드시 수동으로 RD를 설정해야 합니다.
RD를 설정하려면 다음 명령어를 사용합니다: rd {auto | <AS-NUMBER:ID> | <IP-ADDRESS:ID>}
- RD 파라미터:
auto: 스위치의 BGP 라우터 ID(루프백 IP)와 VLAN ID 등을 조합하여 자동으로 고유한 RD 값을 생성 및 지정합니다.<AS-NUMBER:ID>: AS 번호(2바이트 또는 4바이트)와 임의의 ID 조합을 지정합니다. 전체 RD 크기는 6바이트로 고정되어 있으므로, 만약 AS 번호가 2바이트 값이면 뒤의 관리자 지정 번호(ID)는 4바이트 값이 되고, AS 번호가 4바이트 값이면 뒤의 관리자 지정 번호(ID)는 2바이트 값이 됩니다.<IP-ADDRESS:ID>: IP 주소와 ID 조합을 지정합니다. IP 주소가 4바이트 값을 차지하므로 뒤의 ID는 2바이트가 됩니다.
경로 타겟 (RT, Route Target)
경로 타겟(RT)은 네트워크 내에서 해당 경로가 실제로 필요한 시스템들에게만 VPN 경로를 가져오고(Import) 내보내도록(Export) 제어합니다.
기본값은 NULL이므로, 관리자가 수동으로 RT를 설정해야 합니다.
RT를 설정하려면 다음 명령어를 사용해야 합니다: route-target {import | export | both} {auto | <AS-NUMBER:ID> | <IP-ADDRESS:ID>}
- RT 파라미터:
import: 원격에서 받은 EVPN 경로를 내 테이블로 가져오기 위한 경로 타겟을 설정합니다.export: 내 로컬 EVPN 경로를 원격으로 내보낼 때 붙일 경로 타겟을 설정합니다.both: 가져오기(Import)와 내보내기(Export) 경로 타겟을 동일한 값으로 한 번에 설정합니다.auto: AS 번호와 VNI(또는 VLAN) 값을 기반으로 자동으로 RT 값을 계산하여 할당합니다.<AS-NUMBER:ID>: AS 번호(2바이트 또는 4바이트)와 ID를 지정합니다. AS 번호가 2바이트이면 뒤의 관리자 지정 번호는 4바이트 값이 되고, AS 번호가 4바이트이면 뒤의 관리자 지정 번호는 2바이트 값이 됩니다.<IP-ADDRESS:ID>: 4바이트 값인 IP 주소와 2바이트인 ID 조합을 지정합니다.
EVPN 검증 및 확인 (Verifying EVPN)
1. EVPN 설정 확인 (Checking EVPN configuration)
switch# show running-config evpn
evpn
vlan 10
rd 2:2
route-target both auto
vlan 20
rd 3:3
route-target both 3000:1
EVPN을 모니터링하고 트러블슈팅(장애 조치)할 때 가장 먼저 취해야 할 단계는 show running-config evpn 명령어를 입력하여 EVPN 설정을 확인하는 것입니다.
여기서 중점적으로 봐야 할 포인트는 대상 VLAN들이 누락 없이 들어갔는지, RD(경로 구분자)와 RT(경로 타겟)가 양쪽 VTEP 간에 의도한 대로 일치하게 설정되었는지 확인하는 것입니다.
2. EVPN 인스턴스 요약 확인 (Checking EVPN instances summary)
switch# show bgp l2vpn evpn summary
VRF : default
BGP Summary
-----------
Local AS : 100 BGP Router Identifier : 10.1.17.1
Peers : 2 Log Neighbor Changes : No
Cfg. Hold Time : 180 Cfg. Keep Alive : 60
Neighbor Remote-AS MsgRcvd MsgSent Up/Down Time State AdminStatus
10.1.7.1 100 1291 1300 18h:31m:50s Established Up
10.1.7.3 100 1294 1294 18h:31m:57s Established Up
switch# show interface vxlan1 vteps
Source Destination Origin Status VNI VLAN
----------- ----------- ------ ----------- ------ ----
10.1.17.1 10.1.17.2 evpn operational 100110 10
10.1.17.1 10.1.17.2 evpn operational 100111 11
10.1.17.1 10.1.17.3 evpn operational 100110 10
10.1.17.1 10.1.17.3 evpn operational 100111 11
다음으로는 show bgp l2vpn evpn summary 명령어를 사용합니다.
이 명령어는 모든 BGP EVPN 인스턴스의 요약 정보를 보여주며, 특히 피어들과의 BGP 세션 상태(State)가 Established로 정상 수립되었는지 확인할 수 있습니다.
또 다른 유용한 명령어는 show interface vxlan1 vteps입니다.
이 명령어는 수동 설정 없이 EVPN과 BGP를 통해 동적으로 생성된(Origin: evpn) 원격 VTEP 터널 목록과 활성화 상태(Status: operational)를 보여줍니다.
3. EVPN 인스턴스 상세 정보 확인 (Checking EVPN instances detail)
switch# show bgp l2vpn evpn
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, e external S Stale, R Removed, a additional-paths
Origin codes: i - IGP, e - EGP, ? - incomplete
EVPN Route-Type 2 prefix: [2]:[ESI]:[EthTag]:[MAC]:[OrigIP]
EVPN Route-Type 3 prefix: [3]:[EthTag]:[OrigIP]
EVPN Route-Type 5 prefix: [5]:[ESI]:[EthTag]:[IPAddrLen]:[IPAddr]
VRF : default
Local Router-ID 10.1.17.10
Network Nexthop Metric LocPrf Weight Path
--------------------------------------------------------------------
Route Distinguisher: 10.1.17.10:10 (L2VNI 100010)
*> [3]:[0]:[10.1.17.10] 10.1.17.10 0 100 0 ?
Route Distinguisher: 10.1.17.11:10 (L2VNI 100010)
*>i [3]:[0]:[10.1.17.11] 10.1.17.11 0 100 0 ?
* i [3]:[0]:[10.1.17.11] 10.1.17.11 0 100 0 ?
위 출력 결과에서 [3]:[0]:[10.1.17.11]처럼 대괄호 맨 앞의 숫자가 바로 EVPN 경로 유형(Route-Type)을 나타냅니다. 주요 EVPN 경로 유형은 다음과 같습니다:
- 이더넷 자동 발견 경로 (Ethernet auto-discovery route – Route 1): 멀티호밍 사이트에서 이더넷 세그먼트(ES) 정보를 광고합니다.
- MAC/IP 광고 경로 (MAC/IP advertisement route – Route 2): 로컬에서 학습된 호스트의 MAC 주소 및 MAC/IP(v6) 바인딩(ARP/ND 이웃 엔트리 및 호스트 경로 매핑 정보)을 광고합니다.
- 포괄적 멀티캐스트 이더넷 태그 경로 (IMET route – Route 3): VTEP 발견, VXLAN 터널 수립 및 VXLAN 터널 할당을 자동화하기 위해 VTEP과 VXLAN 매핑 정보를 광고합니다(위 출력 예시에서 보이는 타입 3 경로들입니다).
- 이더넷 세그먼트 경로 (Ethernet Segment route – Route 4): ES와 VTEP 간의 매핑을 광고합니다.
- IP 프리픽스 광고 경로 (IP Prefix advertisement route – Route 5): BGP IPv4 또는 IPv6 유니캐스트 경로를 IP 프리픽스 형태로 광고합니다.
지원 범위: 현재 AOS-CX 릴리스는 MAC 및 MAC/IP 광고(Route Type 2), 포괄적 멀티캐스트 이더넷 태그(IMET) 경로(Route Type 3), 그리고 IP 프리픽스 경로 광고(Route Type 5)만 지원합니다.
왜냐하면 AOS-CX는 멀티호밍을 표준 EVPN ES 방식인 Type 1, 4 대신 자체 기술인 VSX Logical VTEP 방식으로 훨씬 간결하게 처리하기 때문입니다.
4. EVPN MAC 주소 테이블 확인 (Checking EVPN MAC address table)
switch# show mac-address-table
MAC age-time : 300 seconds
Number of MAC addresses : 7
MAC Address VLAN Type Port
--------------------------------------------------
54:80:28:fd:dc:00 10 evpn vxlan1(10.1.17.3)
00:50:56:a5:b5:42 10 evpn vxlan1(10.1.17.2)
00:24:a8:cc:a0:3d 10 evpn vxlan1(10.1.17.2)
00:24:a8:cc:a0:3f 10 dynamic 1/1/13
54:80:28:fd:dc:00 11 evpn vxlan1(10.1.17.3)
90:20:c2:ba:43:00 1101 dynamic 1/1/25
90:20:c2:ba:92:00 1102 dynamic 1/1/26
show mac-address-table 명령어를 통해 로컬 물리 포트(1/1/13 등)에서 직접 배운 dynamic 타입의 MAC 주소들과, MP-BGP EVPN 컨트롤 플레인을 통해 원격 VTEP(vxlan1(10.1.17.3) 등)으로부터 광고받아 학습된 evpn 타입의 MAC 주소들을 한눈에 구분하여 확인할 수 있습니다.
이번 모듈에서는 정적 VXLAN에 MP-BGP라는 제어 평면을 결합하여 터널과 MAC/IP 학습을 자동화하는 EVPN의 핵심 원리와 분산형 애니캐스트 게이트웨이(IRB) 설계를 함께 살펴보았습니다. 이제 여러분은 수동 설정과 브로드캐스트 플러딩의 한계를 넘어, 대규모 멀티테넌트 환경에서도 가상 머신의 이동을 유연하게 수용하고 최적의 경로로 통신하는 지능형 데이터센터 패브릭을 직접 구축할 수 있게 되었습니다.
다음 시간에는 이 EVPN 패브릭 위에서 불필요한 ARP/ND 트래픽을 억제하고, 멀티캐스트 라우팅(IGMP 스누핑 및 PIM-SM)과 IPv4 언더레이 기반의 IPv6 오버레이 네트워크까지 구현하는 EVPN 추가 기능(Additional Features)에 대해 하나씩 알아보겠습니다.
