VXLAN

개요

VXLAN(Virtual eXtensible Local Area Network)은 VLAN의 한계를 극복하기 위해 등장한 기술이다.[1]
전반적으로는 L2 이더넷 프레임을 L3 UDP 패킷으로 캡슐화(Encapsulation)하여 기존 IP 네트워크 위에서 터널링하는 방식을 이용한다.
L3를 활용해 L2 대역을 넓히는 기술인 것이다.

배경

먼저 선조격인 VLAN은 말 그대로 가상의 LAN을 만드는 기술로 하나의 스위치로 여러 브로드캐스트 도메인을 나누기 위해 등장했다.
VLAN은 장비를 효율적으로 사용하면서 각 회선의 간 경합, 보안 영역을 분리할 수 있는 기술로 지금도 실무 환경에서는 절찬리에 사용되고 있다.
그러나 기술이 발전하면서 점차 VLAN으로 커버하기 어려운 요건이 발생하기 시작했다.

두번째 문제에서 VLAN은 명확하게 프로토콜 차원에서 한계를 지닌다.
VLAN은 본디 L2 이더넷 프레임에 12bit로 VLAN ID를 부여해서 네트워크 영역을 나눌 수 있게 표시를 해둔다.
이는 곧 VLAN이 분리시킬 수 있는 네트워크 영역은 최대 4094개 정도라는 것인데, 현대 환경에서는 이 정도의 범위도 부족할 수 있다.
가상 환경이 대두되며 가상의 호스트를 자유롭게 만들 수 있게 됐고, 클라우드 컴퓨팅까지 접목되니 이제는 네트워크 영역 만 개 단위는 우습게 처리할 수 있어야 하는 상황이 되어버린 것이다.
L3 레벨에서 멀티 테넌시를 최대한 구축하는 것도 가능하나, L3에서는 비즈니스 도메인과 결합성이 높아지기도 하고 다른 서비스와 프로토콜과의 연관도가 높아서 이것도 만족스러운 선택지가 아니다.

이러한 수요 아래 VLAN을 L3 차원에서 확장시키기 위한 기술로 VXLAN이 나온 것이다.

용어

여기에서 알아둬야 할 용어 두 가지만 먼저 짚어본다.

구조

구조는 그다지 복잡하지 않다.

VXLAN은 위에서 말했듯이 L2 프레임을 통째로 한번 감싸서 L3 이상의 영역으로 보내는 프로토콜이다.
그래서 외부 프레임 안에 내부 프레임이 따로 들어가는 구조를 가지고 있고, 이때 내부 프레임을 식별하는데 사용하기 위한 VXLAN 헤더 8바이트가 들어간다.

VXLAN 헤더는 위처럼 VNI 24비트가 들어가며 총 64 비트(8바이트)로 구성된다.
나머지는 사실 전부 Reserved 상태로, 언젠가 사용될 수 있도록 0으로만 채워져 있다(1이어도 무시된다).
딱 한가지, 맨 앞 8비트를 VXLAN 플래그라 하며 중간 5번째 비트는 1로 채우는데, 이는 VXLAN 패킷이 정상적임을 나타내는 신호이다.

보통 이더넷 프레임은 802.3 형식에 따라 MTU(Maximum Transmission Unit, 전송 가능한 최대 데이터 크기)가 최대 1500 바이트로 한정된다.[2]

그런데 VXLAN을 사용하게 되면 캡슐화를 통해 들어가는 헤더들 덕에 최대 1450 바이트까지만 데이터를 전송할 수 있게 된다.
그 이유는 아래 그림의 헤더를 보면 알 수 있다.
image.png
맨 아래 윗 계층의 페이로드가 담기기 전까지, 위의 여러 헤더들이 자리를 차지하게 된다.

이러한 방식으로 인해 50 바이트 가량을 전송 데이터로 활용할 수 없다는 점을 유의해야 한다.
이더넷 프레임 체크섬으로 마지막에 붙는 FCS(Frame Check Seqeunce)는 내부 이더넷 프레임에는 붙지 않아 여기에서 활용 가능한 MTU가 더 줄지는 않는다.

관련 문서

EXPLAIN - 파생 문서

이름0related생성 일자

Dataview: No results to show for table query.

기타 문서

Z0-연관 knowledge, Z1-트러블슈팅 Z2-디자인,설계, Z3-임시, Z5-프로젝트,아카이브, Z8,9-미분류,미완
이름1코드타입생성 일자
4W - 실리움 라우팅 모드 실습 - native, vxlan, geneveZ8published2025-08-09 20:22

참고


  1. https://datatracker.ietf.org/doc/html/rfc7348 ↩︎

  2. https://aws.amazon.com/ko/blogs/tech/aws-mtu-mss-pmtud/ ↩︎