EVPN-VXLAN이란?

yeongjin·2025년 4월 29일

EVPN과 VXLAN에 대해 알기 위해서 L2 네트워크를 구성하기 위한 기술인 VLAN, VXLAN, EVPN을 하나씩 도입해가며 각 기술의 역할을 단계적으로 알아가보자. 참고로 여기서 사용하는 스위치는 L2뿐 아니라 L3 기능도 포함하는 (즉, 라우터의 기능까지 포함하는) 스위치라 가정하고 설명하겠다.

📌 전통적인 L2 네트워크

같은 스위치에 연결된 서버들은 ip주소는 필요 없이 MAC 주소 정보만으로 패킷을 전달할 수 있는데, 이는 스위치에 저장되 있는 MAC 테이블 덕분이다.

MAC 주소연결 포트 번호
aa:bb:cc:dd:ee:ffEthernet1
11:22:33:44:55:66Ethernet2

하지만 보안적인 문제나 Flooding 성능 문제로 인해 L2 네트워크를 여러 개 구성해야될 수도 있다. 이런 상황에서 전통적인 L2 네트워크 구조에서는 L2 네트워크의 갯수만큼 스위치 장비가 필요하게 된다. 기존 스위치의 포트를 다 사용하지 않았더라도 새로운 L2 네트워크를 구성하기 위해서는 새로운 스위치 장비를 사용해야 되는 것이다.

📌 VLAN이 도입된 L2 네트워크

VLAN을 도입하면 하나의 스위치에서 포트마다 VLAN ID를 할당하여 여러 개의 L2 네트워크를 구성할 수 있다. 서버에 연결된 스위치 포트가 같은 VLAN ID값을 가지면 같은 L2 네트워크가 된다. 반면 연결된 스위치 포트가 서로 다른 VLAN ID값을 가지면 이들간에는 L3 네트워크를 거쳐 패킷을 전달해야 한다.

하지만 VLAN만 가지고는 4096개의 L2 네트워크만 구성할 수 있다는 한계가 있다. 또한 우리가 알고 있는 일반적인 L2 네트워크 개념의 한계 때문에, 물리적으로 다른 위치(데이터센터, 건물)에 있는 서버들로 같은 L2 네트워크를 구성하지는 못할 것이다.

📌 VXLAN이 도입된 L2 네트워크

VLAN을 확장한 VXLAN을 도입하면 L3 네트워크 위에 가상의 L2 네트워크를 구성한다. 원래의 스위치는 자신과 연결된 L2 네트워크에 속한 서버들의 MAC 주소만 저장하는데, VXLAN을 지원하는 스위치에서는 L3 네트워크로 연결된 다른 서버들의 MAC 주소까지 저장한다.

VNI: VXLAN 네트워크를 구분하는 식별자 (가상의 VLAN ID)
VTEP: VXLAN 캡슐화를 수행(ex: 일반 L3 패킷에 VNI값 추가)하는 엔드포인트 (장치 또는 S/W, 그림 속 스위치)
VXLAN Tunnel: VXLAN 캡슐화된 패킷을 전송하는 L3 네트워크 경로 (그림 속 파란 점선 영역)

다시 말하자면 VTEP들은 다른 VTEP과 연결된 L2 네트워크(VXLAN L2 네트워크가 아닌 실제 L2 네트워크)에 속한 서버들의 MAC 주소도 저장한다는 것이다. 다음처럼 MAC 주소, VNI, VTEP IP를 매핑하여 저장한다.

MAC 주소VNIVTEP IP
aa:bb:cc:dd:ee:011001192.168.1.10
aa:bb:cc:dd:ee:021001192.168.1.11

하지만 VXLAN만 사용했을 때도 한계점이 있다. VTEP이 자신이 모르는 MAC주소를 학습하기 위해 모든 다른 VTEP에 ARP Flooding 요청을 보내야 하기 때문이다. 이러한 브로드캐스트 통신은 VTEP과 VNI가 많아질 수록 네트워크의 성능 이슈를 일으킬 수 있다. VTEP에 새로운 서버가 연결되거나 기존 서버가 분리될 때도 매번 arp 브로드캐스트 요청이 들어올 것이다. 이 역시도 네트워크 크기가 클수록 VTEP 정보 업데이트의 지연이 발생할 것이다.

📌 EVPN-VXLAN이 도입된 L2 네트워크

구조는 VXLAN만 도입했을 때와 같다. 여기서 EVPN 프로토콜을 적용하려면 BGP라는 라우팅 정보 프로토콜을 사용하게 된다.

EVPN: MAC/IP/VNI 정보를 정의하고 공유하기 위한 포맷(주소체계) like 편지 내용
BGP: EVPN 정보를 다른 VTEP에게 전달하는 메신저 (전송 프로토콜) like 우체부

BGP를 통해 VTEP간 MAC / VNI / VTEP IP 정보를 주기적으로 광고하고 업데이트해주기 때문에, 브로드캐스트 없이 정확하고 빠른 통신을 할 수 있게된다. 다른 VTEP들의 정보까지 이미 알고 있으니까 VTEP에서 다른 VTEP으로 ARP Flooding 요청을 보낼 필요가 없는 것이다. 또한 VTEP에 새로운 서버가 추가되거나 분리될 때도 자연스럽게 모든 VTEP들이 그 정보를 알기 때문에 VXLAN 네트워크 관리도 훨씬 수월해진다.

0개의 댓글