VxLAN

2025. 12. 11. 21:56·Network

VxLAN 이란

VxLAN(Virtual Extensible LAN)은 기존의 물리적인 L3 기반 언더레이 위에 논리적인 L2 네트워크를 오버레이 형태로 구현할 수 있게 해주는 네트워크 가상화 기술입니다. 특히, VxLAN은 24비트의 네트워크 구분 ID를 지원하며, 이를 통해 이론적으로 약 1,600만 개의 가상 네트워크를 동일한 물리 인프라 위에 유연하게 분리해 운용할 수 있습니다.

VxLAN은 현대 클라우드 환경에서 핵심 기술로 자리잡았으며, Kubernetes CNI(Container Network Interface), OpenStack Neutron, VMware NSX 등 다양한 플랫폼에서 멀티테넌트 격리와 네트워크 가상화를 구현하는 데 활용되고 있습니다.

 

 

VxLAN 헤더와 VNI

VxLAN은 MAC 프레임을 UDP 안에 캡슐화하는 방식으로 동작하며, 이 과정에서 8바이트의 VxLAN 헤더가 사용됩니다.

VxLAN 헤더

세부적인 VxLAN의 헤더 구성은 다음과 같습니다.

  • Flags (8비트): VxLAN 프레임을 식별합니다. I 플래그는 유효한 VNI를 나타내기 위해 반드시 1로 설정해야 합니다. 나머지 7비트("R"로 표시)는 예약 필드이며, 전송 시 0으로 설정하고 수신 시 무시합니다.
  • Reserved (24비트 and 8비트): 하위 호완성을 위해 예약된 비트. 전송 시 0으로 설정하고 수신 시 무시합니다.
  • VXLAN Segment ID/VXLAN Network Identifier - VNI (24비트): 가상 네트워크를 식별하는 고유 ID입니다. 24비트 길이로 이론상 최대 16,777,216개(2^24)의 VxLAN 세그먼트를 지원하며, 이를 통해 각 테넌트나 애플리케이션을 완전히 격리된 L2 도메인으로 분리할 수 있습니다.

Outer UDP 헤더

원본 L2 프레임과 VxLAN 헤더를 캡슐화하는 외부 UDP 헤더는 VTEP(VxLAN Tunnel Endpoint)에 의해 추가됩니다.

  • Source Port: VTEP은 송신 포트를 동적으로 할당하며, 보통 내부 L2 프레임의 헤더 필드(예: MAC 주소, VLAN ID 등)를 해싱하여 결정합니다.
  • Destination Port: VxLAN UDP 포트로 4789를 사용하고 있습니다. 일부 초기 VxLAN 구현은 다른 포트 값을 사용했으며, 이러한 구현과의 상호 운용을 위해 목적지 포트는 설정 가능합니다.

 

 

VTEP

VxLAN(Virtual Extensible LAN)은 기존의 물리적인 L3 네트워크, 즉 언더레이(Underlay) 인프라 위에 논리적인 L2 네트워크인 오버레이(Overlay)를 유연하게 확장하고 격리하는 터널링 기술입니다. 이 기술의 핵심은 L2 프레임을 UDP/IP 패킷으로 감싸는 캡슐화(Encapsulation)와 이를 다시 L2 프레임으로 되돌리는 역캡슐화(Decapsulation) 과정에 있으며, 이 모든 작업은 VTEP(VxLAN Tunnel Endpoint)가 수행합니다.

 

VTEP의 역할과 종류

VTEP은 VxLAN 터널의 시작점과 끝점을 담당하는 장치입니다. 일반적으로 다음과 같은 위치에 구현됩니다.

  • 데이터센터 ToR(Top-of-Rack) 스위치
  • 서버의 하이퍼바이저 내 가상 스위치(예: Open vSwitch)
  • 스마트 NIC(네트워크 인터페이스 카드)

 

또한 VTEP은 구현 방식에 따라 두 가지로 구분됩니다.

  • 하드웨어 VTEP: ToR 스위치나 전용 게이트웨이 장비에서 ASIC을 이용해 처리하며, 높은 성능과 낮은 레이턴시를 제공합니다.
  • 소프트웨어 VTEP: 하이퍼바이저나 컨테이너 호스트에서 CPU로 처리하며, 배포의 유연성과 소프트웨어 기반 제어가 용이합니다.

각 VTEP은 언더레이 네트워크에서 고유한 IP 주소를 가지며, 이 주소가 터널링을 위한 외부 IP 헤더의 출발지/목적지로 사용됩니다.

 

VxLAN 브릿징과 라우팅

캡슐화 과정

호스트(가상 머신 또는 컨테이너)가 데이터를 전송하면, 원본 L2 이더넷 프레임은 먼저 로컬 VTEP에 도착합니다. 이후 다음과 같은 단계로 캡슐화가 진행됩니다.

  1. VxLAN 헤더 추가: VTEP은 원본 프레임 앞에 8바이트의 VxLAN 헤더를 추가합니다. 이 헤더에는 해당 프레임이 속한 가상 네트워크를 식별하는 VNI(VxLAN Network Identifier)가 포함됩니다.
  2. UDP 헤더 추가: VxLAN 헤더와 원본 프레임 전체는 UDP 페이로드가 되며, VTEP은 그 앞에 UDP 헤더를 붙입니다. 목적지 포트는 4789번을 사용하고, 송신 포트는 원본 프레임의 헤더 필드를 해싱하여 동적으로 할당됩니다.
  3. 외부 IP 헤더 추가: 통신할 상대 VTEP의 IP 주소를 목적지로, 자신의 IP 주소를 출발지로 하는 외부 IP 헤더를 추가합니다.
  4. 외부 L2 헤더 추가: 언더레이 네트워크의 다음 홉(Next Hop)으로 전달하기 위한 외부 이더넷 헤더를 추가합니다.

이로써 원본 L2 프레임은 언더레이 L3 네트워크를 통해 라우팅될 수 있는 표준 UDP/IP 패킷으로 완전히 변환됩니다.

 

언더레이 전송과 역캡슐화

캡슐화된 패킷은 언더레이 네트워크를 통해 목적지 VTEP의 IP 주소로 일반적인 L3 라우팅 경로를 따라 전송됩니다. 목적지 VTEP이 VxLAN 패킷을 수신하면, 역캡슐화 과정이 시작됩니다.

  1. 외부 L2/IP 헤더 제거: 언더레이 전송에 사용된 헤더를 제거합니다.
  2. UDP 헤더 확인 및 제거: 목적지 포트 4789를 확인하여 VxLAN 트래픽임을 식별하고 UDP 헤더를 제거합니다.
  3. VxLAN 헤더 처리: VNI 값을 확인하여 이 프레임이 속한 가상 네트워크(VxLAN 세그먼트)를 식별하고 헤더를 제거합니다.
  4. 원본 프레임 전달: 모든 외부 헤더가 제거되면 원래의 순수한 L2 이더넷 프레임이 복원되고, VTEP은 이를 해당 VNI에 연결된 최종 목적지 호스트로 전달합니다.

 

주소 학습 및 트래픽 처리 방식

VxLAN 환경에서 VTEP이 성공적으로 통신하려면, 특정 가상 머신의 MAC 주소가 네트워크 상의 어느 VTEP IP 주소에 연결되어 있는지에 대한 MAC-VTEP 매핑 정보를 학습해야 합니다.

초기에는 기존 L2 방식처럼 데이터 평면 학습을 사용했지만, 이는 브로드캐스트, 알 수 없는 유니캐스트, 멀티캐스트(BUM) 트래픽을 언더레이 전체에 플러딩하여 네트워크 비효율성을 초래했습니다.

현재는 이러한 문제를 해결하기 위해 EVPN(Ethernet VPN)을 제어 평면으로 활용하는 방식을 사용하고 있습니다. EVPN은 표준 BGP(Border Gateway Protocol)를 사용하여 VTEP들이 로컬 호스트의 MAC/IP 정보를 학습하는 즉시, 이 정보를 네트워크 전체의 다른 VTEP들에게 자동으로 광고(배포)합니다. 따라서 VTEP들은 통신하기 전에 상대방의 위치를 미리 알게 되어, 트래픽을 효율적인 유니캐스트로 전송할 수 있게 됩니다.

또한 BUM 프레임의 처리 방식도 진화했습니다. 이전에는 언더레이에서 복잡한 멀티캐스트 그룹을 설정하여 BUM 트래픽을 전송했지만, EVPN 환경에서는 출발지 VTEP이 BUM 트래픽을 해당 VNI에 속한 모든 목적지 VTEP에게 개별적으로 복제하여 유니캐스트로 전송(Head-End Replication)하는 방식을 주로 사용하여 언더레이 네트워크 설정의 복잡도를 낮춥니다.

 

 

VxLAN의 장점과 단점

장점

  • 높은 확장성 (VLAN 한계 극복)
    • 기존 VLAN이 12비트 식별자(최대 4,096개)를 사용하는 데 반해, VXLAN은 24비트 VNI(VXLAN Network Identifier)를 사용하여 이론적으로 최대 1,600만 개 이상의 가상 네트워크를 지원합니다. 이는 대규모 클라우드 및 멀티테넌트 환경에 필수적입니다.
  • L3 인프라 기반의 L2 확장
    • MAC-in-UDP 캡슐화 방식을 사용하여 Layer 3(IP 라우팅) 네트워크 위에서 Layer 2 네트워크를 가상으로 확장합니다.
  • 멀티테넌시 및 격리
    • VNI를 통해 테넌트별 네트워크를 논리적으로 격리하고, 클라우드 환경에서 수많은 고객 네트워크를 안전하게 분리할 수 있습니다.

단점

  • 운영 및 복잡성 증가
    • VXLAN 자체는 캡슐화 기술이며, 효율적인 운영을 위해서는 보통 BGP EVPN과 같은 Control Plane 프로토콜을 함께 사용해야 합니다. 이로 인해 설정 및 운영의 복잡도가 증가하고, 운영진에게 더 높은 전문 지식이 요구됩니다.
  • 디버깅 및 트래픽 분석의 어려움
    • MAC-in-UDP 캡슐화로 인해 패킷 구조가 복잡해지므로, 네트워크 문제 진단(디버깅) 및 트래픽 분석이 기존의 L2/L3 네트워크에 비해 어렵습니다.
  • 멀티캐스트 의존성 및 비효율성 (Cotrol Plane 미사용 시)
    • BGP EVPN과 같은 제어 평면을 사용하지 않을 경우, 브로드캐스트/알 수 없는 유니캐스트/멀티캐스트(BUM) 트래픽 처리를 위해 언더레이 네트워크에서 IP 멀티캐스트를 사용해야 하며, 이 경우 멀티캐스트 라우팅 설정이 필요해집니다.

 

 

참고

  • https://www.juniper.net/documentation/us/en/software/junos/evpn/topics/topic-map/sdn-vxlan.html
  • https://www.rfc-editor.org/rfc/pdfrfc/rfc7348.txt.pdf
  • https://www.cisco.com/c/dam/global/ko_kr/partners/assets/partner-webinar-ndfc-ndi-update.pdf
'Network' 카테고리의 다른 글
  • 오픈소스 네트워킹
  • TCP Nagle 알고리즘
  • ZeroTier 소개
  • NAT(Network Address Trasition)
yeseong9769
yeseong9769
  • yeseong9769
    ys.tech.blog
    yeseong9769
  • 전체
    오늘
    어제
    • 분류 전체보기 (47)
      • Artificial Intelligence (6)
      • BigData (2)
      • Cloud (12)
      • Linux (3)
      • Network (9)
      • Mobile (1)
        • Android (1)
      • 정보보안 (9)
        • Blockchain (4)
  • 블로그 메뉴

    • 홈
    • 태그
  • 태그

    anvil
    AWS
    bedrock
    Bitcoin
    boto3
    Calico
    cast
    Ceph
    cloudnative
    conda
  • hELLO· Designed By정상우.v4.10.5
yeseong9769
VxLAN
상단으로

티스토리툴바