VXLAN Overlay 네트워크 데이터 플레인 동작 심층 분석
VXLAN, 가상화된 네트워크의 숨겨진 영웅
클라우드 컴퓨팅과 가상화 기술이 현대 IT 인프라의 근간이 되면서, 물리적 네트워크의 제약에서 벗어나 유연하고 확장 가능한 네트워크 환경을 구축하는 것이 중요해졌습니다. 바로 이 지점에서 VXLAN(Virtual Extensible LAN)이 등장합니다. VXLAN은 오버레이 네트워크 기술의 대표적인 예시로, 기존 Layer 2 네트워크를 Layer 3 네트워크 위에 캡슐화하여 가상 네트워크를 구축하고 확장할 수 있도록 해줍니다. 마치 투명 망토를 쓴 네트워크 패킷처럼, VXLAN은 기존 네트워크 인프라를 변경하지 않고도 가상 머신(VM) 간의 통신을 가능하게 합니다.
VXLAN의 탄생 배경과 핵심 목표
VXLAN은 VMware를 비롯한 여러 기업들이 협력하여 개발한 기술입니다. 기존 VLAN(Virtual LAN)의 한계를 극복하고, 대규모 클라우드 환경에서 요구되는 높은 확장성과 유연성을 제공하기 위해 탄생했습니다. VLAN은 4094개의 ID만을 지원하기 때문에, 대규모 환경에서는 ID 부족 문제가 발생할 수 있습니다. 반면 VXLAN은 24비트의 VNI(VXLAN Network Identifier)를 사용하여 1600만 개 이상의 가상 네트워크를 지원할 수 있습니다. 이는 사실상 무한대에 가까운 가상 네트워크를 구축할 수 있다는 의미입니다.
VXLAN의 핵심 목표는 크게 세 가지로 요약할 수 있습니다.
- 확장성 대규모 클라우드 환경에서 요구되는 가상 네트워크의 확장성을 제공합니다.
- 유연성 물리적 네트워크의 제약 없이 가상 네트워크를 자유롭게 구성하고 관리할 수 있도록 지원합니다.
- 이동성 VM이 물리적 위치에 상관없이 동일한 가상 네트워크에 속할 수 있도록 VM 이동성(VM Migration)을 지원합니다.
데이터 플레인 동작의 핵심 원리
VXLAN의 데이터 플레인 동작은 캡슐화(Encapsulation)와 역캡슐화(Decapsulation)라는 두 가지 핵심 과정으로 이루어집니다. VM에서 출발한 이더넷 프레임은 VXLAN 헤더에 캡슐화되어 UDP 패킷으로 변환되고, 물리적 네트워크를 통해 목적지 VM으로 전송됩니다. 목적지에서는 이 UDP 패킷이 역캡슐화되어 원래의 이더넷 프레임으로 복원됩니다.
캡슐화 과정 상세 분석
캡슐화 과정은 다음과 같은 단계를 거칩니다.
- Original Frame VM에서 출발한 이더넷 프레임입니다. 이 프레임은 목적지 VM의 MAC 주소와 IP 주소를 포함하고 있습니다.
- VXLAN Header 추가 VXLAN 터널 엔드포인트(VTEP)는 Original Frame에 VXLAN 헤더를 추가합니다. VXLAN 헤더에는 VNI(VXLAN Network Identifier)가 포함되어 있으며, 이는 가상 네트워크를 식별하는 데 사용됩니다.
- UDP Header 추가 VXLAN 헤더가 추가된 프레임은 UDP 헤더에 캡슐화됩니다. UDP 헤더에는 VTEP의 IP 주소와 UDP 포트 번호가 포함됩니다.
- IP Header 추가 UDP 패킷은 IP 헤더에 캡슐화됩니다. IP 헤더에는 출발지 VTEP의 IP 주소와 목적지 VTEP의 IP 주소가 포함됩니다.
- Ethernet Header 추가 마지막으로 IP 패킷은 이더넷 헤더에 캡슐화됩니다. 이더넷 헤더에는 출발지 VTEP의 MAC 주소와 목적지 VTEP의 MAC 주소가 포함됩니다.
결과적으로 VM에서 출발한 이더넷 프레임은 VXLAN, UDP, IP, Ethernet 헤더로 겹겹이 캡슐화되어 물리적 네트워크를 통해 전송됩니다. 마치 러시아 인형 마트료시카처럼, 각 헤더는 패킷을 올바른 경로로 전달하는 데 필요한 정보를 담고 있습니다.
역캡슐화 과정 상세 분석
역캡슐화 과정은 캡슐화 과정의 역순으로 진행됩니다. 목적지 VTEP는 수신된 패킷에서 Ethernet, IP, UDP, VXLAN 헤더를 제거하고, Original Frame을 복원합니다. 복원된 이더넷 프레임은 목적지 VM으로 전달됩니다.
- Ethernet Header 제거 목적지 VTEP는 수신된 패킷에서 이더넷 헤더를 제거합니다.
- IP Header 제거 다음으로 IP 헤더를 제거합니다.
- UDP Header 제거 UDP 헤더를 제거합니다.
- VXLAN Header 제거 VXLAN 헤더를 제거합니다. VNI를 확인하여 패킷이 올바른 가상 네트워크에 속하는지 확인합니다.
- Original Frame 복원 마지막으로 Original Frame을 복원하고, 목적지 VM으로 전달합니다.
역캡슐화 과정은 캡슐화 과정에서 추가된 헤더를 제거하고, 원래의 이더넷 프레임을 복원하는 과정입니다. 이 과정을 통해 VM은 VXLAN 오버레이 네트워크를 인지하지 못하고, 마치 동일한 물리적 네트워크에 연결된 것처럼 통신할 수 있습니다.
VTEP, VXLAN 네트워크의 관문
VXLAN 터널 엔드포인트(VTEP)는 VXLAN 네트워크의 핵심 구성 요소입니다. VTEP는 VXLAN 캡슐화 및 역캡슐화 기능을 수행하며, 물리적 네트워크와 가상 네트워크를 연결하는 역할을 합니다. VTEP는 일반적으로 하이퍼바이저, 물리적 스위치, 라우터 등에 구현될 수 있습니다.
VTEP의 주요 기능
VTEP는 다음과 같은 주요 기능을 수행합니다.
- 캡슐화 VM에서 출발한 이더넷 프레임을 VXLAN 헤더에 캡슐화하여 UDP 패킷으로 변환합니다.
- 역캡슐화 수신된 UDP 패킷에서 VXLAN 헤더를 제거하고, 원래의 이더넷 프레임을 복원합니다.
- VNI 매핑 VNI와 VM의 MAC 주소 간의 매핑 정보를 관리합니다.
- MAC 주소 학습 VXLAN 네트워크 내의 VM들의 MAC 주소를 학습하고, MAC 주소 테이블을 유지합니다.
- 브로드캐스트, 멀티캐스트, 유니캐스트 처리 브로드캐스트, 멀티캐스트, 유니캐스트 트래픽을 처리합니다.
VTEP는 VXLAN 네트워크의 관문 역할을 수행하며, VM 간의 통신을 가능하게 하는 핵심 요소입니다. VTEP의 성능은 VXLAN 네트워크 전체의 성능에 큰 영향을 미치므로, VTEP의 설계와 구현은 매우 중요합니다.
VTEP 구현 방식
VTEP는 다양한 방식으로 구현될 수 있습니다.
- 하이퍼바이저 기반 VTEP 하이퍼바이저에 VTEP 기능을 구현하는 방식입니다. 이 방식은 VM 이동성을 지원하고, 관리의 용이성을 제공합니다.
- 물리적 스위치 기반 VTEP 물리적 스위치에 VTEP 기능을 구현하는 방식입니다. 이 방식은 하드웨어 가속을 통해 높은 성능을 제공할 수 있습니다.
- 라우터 기반 VTEP 라우터에 VTEP 기능을 구현하는 방식입니다. 이 방식은 VXLAN 네트워크 간의 라우팅을 지원합니다.
VTEP 구현 방식은 네트워크 환경과 요구 사항에 따라 선택될 수 있습니다. 일반적으로 하이퍼바이저 기반 VTEP는 소규모 환경에 적합하고, 물리적 스위치 기반 VTEP는 대규모 환경에 적합합니다.
VXLAN의 장점과 한계
VXLAN은 다양한 장점을 제공하지만, 몇 가지 한계점도 가지고 있습니다.
VXLAN의 주요 장점
- 확장성 향상 24비트 VNI를 사용하여 1600만 개 이상의 가상 네트워크를 지원하므로, VLAN의 확장성 한계를 극복할 수 있습니다.
- 유연성 증대 물리적 네트워크의 제약 없이 가상 네트워크를 자유롭게 구성하고 관리할 수 있습니다.
- VM 이동성 지원 VM이 물리적 위치에 상관없이 동일한 가상 네트워크에 속할 수 있도록 VM 이동성을 지원합니다.
- Layer 2 확장 Layer 3 네트워크를 통해 Layer 2 네트워크를 확장할 수 있습니다.
- 멀티 테넌시 지원 여러 테넌트가 동일한 물리적 인프라를 공유하면서도 서로 격리된 가상 네트워크를 사용할 수 있습니다.
VXLAN은 클라우드 컴퓨팅 환경에서 요구되는 확장성, 유연성, 이동성을 제공하는 강력한 기술입니다.
VXLAN의 한계점
- 오버헤드 증가 캡슐화 과정에서 헤더가 추가되므로, 네트워크 오버헤드가 증가할 수 있습니다.
- 복잡성 증가 VXLAN 네트워크의 구성 및 관리가 복잡할 수 있습니다.
- MTU 문제 캡슐화로 인해 패킷 크기가 증가하므로, MTU(Maximum Transmission Unit) 문제를 고려해야 합니다.
- 멀티캐스트 의존성 브로드캐스트 및 멀티캐스트 트래픽 처리를 위해 멀티캐스트 프로토콜에 의존할 수 있습니다.
VXLAN은 오버헤드 증가, 복잡성 증가, MTU 문제 등의 한계점을 가지고 있습니다. 이러한 한계점을 극복하기 위해 다양한 기술들이 개발되고 있으며, VXLAN은 지속적으로 발전하고 있습니다.
VXLAN과 유사 기술 비교
VXLAN 외에도 다양한 오버레이 네트워크 기술이 존재합니다. 대표적인 예로는 NVGRE(Network Virtualization using Generic Routing Encapsulation), STT(Stateless Transport Tunneling) 등이 있습니다. 각 기술은 고유한 특징과 장단점을 가지고 있습니다.
VXLAN vs NVGRE
NVGRE는 마이크로소프트에서 개발한 오버레이 네트워크 기술입니다. VXLAN과 마찬가지로 캡슐화 기술을 사용하여 가상 네트워크를 구축하지만, 사용하는 헤더와 프로토콜이 다릅니다. NVGRE는 GRE(Generic Routing Encapsulation) 헤더를 사용하는 반면, VXLAN은 UDP 헤더를 사용합니다.
VXLAN은 UDP를 사용하기 때문에 방화벽 및 NAT(Network Address Translation) 장비와의 호환성이 더 높다는 장점이 있습니다. 반면 NVGRE는 GRE를 사용하기 때문에 하드웨어 가속이 용이하다는 장점이 있습니다.
VXLAN vs STT
STT는 VMware에서 개발한 오버레이 네트워크 기술입니다. STT는 TCP를 사용하여 패킷을 캡슐화하고 전송합니다. STT는 TCP를 사용하기 때문에 안정적인 전송을 보장할 수 있지만, 오버헤드가 크다는 단점이 있습니다.
VXLAN은 UDP를 사용하기 때문에 STT보다 오버헤드가 적고, 더 높은 성능을 제공할 수 있습니다. 하지만 TCP에 비해 신뢰성이 낮다는 단점이 있습니다.
각 기술은 네트워크 환경과 요구 사항에 따라 선택될 수 있습니다. VXLAN은 일반적으로 높은 성능과 유연성을 요구하는 환경에 적합하고, STT는 안정적인 전송을 중요시하는 환경에 적합합니다.