본문 바로가기
네트워크

대규모 데이터센터 네트워크의 핵심, VXLAN(Virtual Extensible LAN)

by forward error correction Circle 2026. 8. 5.
반응형

Ⅰ. VXLAN 기술이란?

ⅰ. 개요 및 배경

  1. VXLAN(Virtual Extensible LAN)은 기존 L2 VLAN의 개수 한계(최대 4,094개)를 극복하기 위해 제안된 L2 over L4 오버레이 캡슐화 기술입니다.
  2. 대규모 멀티테넌트 클라우드 데이터센터에서 수만 개 이상의 가상 네트워크 세그먼트를 생성하고 관리하기 위해 필수적으로 사용됩니다.

ⅱ. 핵심 개념

  1. 테넌트 가상머신(VM)의 L2 이더넷 프레임을 L4 UDP 패킷으로 캡슐화하여 L3 언더레이 네트워크 상에서 L2 터널링을 구현합니다.
  2. 기존 물리 네트워크 스위치 장비나 루팅 구조의 변경 없이 논리적으로 격리된 대규모 오버레이 네트워크를 제공합니다.

Ⅱ. VXLAN 기술 특징

ⅰ. 24비트 VNI(VXLAN Network Identifier) 지원

  1. 기존 VLAN ID(12비트, 4,094개) 한계를 24비트로 대폭 확장하여 최대 약 1,600만 개(16,777,216개)의 가상 네트워크 ID를 제공합니다.
  2. 대규모 멀티테넌시 클라우드 환경(AWS, OpenStack 등)에서 고객별 네트워크 격리 요구사항을 완벽히 수용합니다.

ⅱ. L3 언더레이 기반 L2 오버레이 확장 (Overlay Network)

  1. 물리 네트워크(Underlay)는 L3 라우팅으로 작동하므로 Spanning Tree Protocol(STP)의 포트 차단 문제가 발생하지 않습니다.
  2. 모든 물리 링크의 대역폭을 ECMP(Equal-Cost Multi-Path) 기법을 활용해 효율적으로 100% 활용할 수 있습니다.

ⅲ. 표준 UDP 포트 캡슐화

  1. UDP Destination Port 4789번(IANA 표준)을 사용하여 L3 네트워크 장비의 투명한 통신을 보장합니다.
  2. 지리적으로 분산된 서로 다른 데이터센터 간(DCI) L2 네트워크 확장을 용이하게 처리할 수 있습니다.

Ⅲ. VXLAN 기술 동작방식

ⅰ. 패킷 캡슐화 (Encapsulation)

  1. 송신 호스트(VM)에서 생성된 Original L2 Frame에 24비트 VNI 정보를 담은 VXLAN Header를 부착합니다.
  2. Outer UDP Header(Port 4789), Outer IP Header(VTEP IP), Outer Ethernet Header를 순차적으로 감싸 L3 언더레이 네트워크로 전송합니다.

ⅱ. 패킷 디캡슐화 (Decapsulation)

  1. 수신 VTEP 장비는 Outer IP 및 UDP 헤더(Port 4789)를 확인하여 VXLAN 패킷임을 판별합니다.
  2. Outer 헤더와 VXLAN 헤더를 제거(Decapsulation)한 후 Original L2 Frame만을 추출하여 목적지 가상머신(VM)으로 전달합니다.

ⅲ. VTEP 간 MAC 주소 학습 및 BUM 트래픽 처리

  1. Flood-and-Learn 방식: IP Multicast를 이용하여 BUM(Broadcast, Unknown Unicast, Multicast) 패킷을 플러딩하고 상대 VTEP의 MAC 주소를 데이터 평면에서 자동 학습합니다.
  2. BGP-EVPN 제어 평면 방식: MP-BGP 라우팅 프로토콜을 이용해 VTEP 간 MAC 및 IP 주소 정보를 제어 평면(Control Plane)에서 사전 교환함으로써 불필요한 플러딩을 최적화합니다.

Ⅳ. VXLAN 기술 구성 및 흐름도

ⅰ. VXLAN 주요 구성 요소

  1. VTEP (VXLAN Tunnel End Point): VXLAN 패킷의 캡슐화 및 디캡슐화를 수행하는 엔티티로, 가상 스위치(OVS 등) 또는 하드웨어 네트워크 스위치로 구현됩니다.
  2. VNI (VXLAN Network Identifier): 개별 VXLAN 오버레이 세그먼트를 식별하는 24비트 구분자입니다.
  3. NVE (Network Virtualization Edge): VTEP 기능이 동작하는 가상화 인터페이스 구역입니다.

ⅱ. VXLAN 패킷 구조 및 데이터 전달 흐름도

 

[VXLAN 아키텍처 및 통신 흐름도]

  [ Tenant VM A ]                                             [ Tenant VM B ]
  (10.0.0.10/24)                                             (10.0.0.20/24)
        │                                                           ▲
   Original L2                                                 Original L2
      Frame                                                       Frame
        ▼                                                           │
┌──────────────────────────────┐                           ┌──────────────────────────────┐
│  Source VTEP (Host A)        │                           │  Destination VTEP (Host B)   │
│  IP: 192.168.1.10            │                           │  IP: 192.168.1.20            │
├──────────────────────────────┤                           ├──────────────────────────────┤
│ 캡슐화 (Encapsulation)        │                           │ 디캡슐화 (Decapsulation)     │
│ [Outer IP][UDP][VXLAN][Inner]│                           │ Outer 헤더 제거 후 Inner 전달  │
└──────────────┬───────────────┘                           └──────────────▲───────────────┘
               │                                                          │
               │            Outer UDP Packet (Port 4789)                  │
               └───────────────────► [ L3 Underlay ] ─────────────────────┘
                                    (IP Routing / ECMP)
  1. VM A → VTEP A: VM A가 동일 VNI 대역의 VM B로 이더넷 프레임을 송신합니다.
  2. VTEP A 캡슐화: VTEP A는 Inner L2 Frame에 VXLAN Header(VNI) + UDP Header(4789) + Outer IP Header(Src: 192.168.1.10, Dst: 192.168.1.20)를 추가합니다.
  3. L3 언더레이 전달: 언더레이 라우터는 Outer IP 헤더를 보고 표준 IP 라우팅을 통해 VTEP B로 전달합니다.
  4. VTEP B 디캡슐화: VTEP B는 Outer 헤더를 해제하고 원본 프레임을 VM B로 최종 전달합니다.

Ⅴ. VXLAN 기술 설치 방법

ⅰ. 리눅스 환경 사전 준비사항

  1. iproute2 패키지와 커널 v3.7 이상이 탑재된 Linux 환경(Ubuntu/RHEL)을 준비합니다.
  2. VTEP 노드 간 물리 L3 네트워크(Underlay IP) 통신 상태를 ping으로 확인합니다.

ⅱ. Linux Kernel VXLAN 모듈 로드 및 환경 검증

  1. sudo modprobe vxlan 명령어를 실행하여 커널 모듈을 활성화합니다.
  2. lsmod | grep vxlan 명령어로 모듈이 정상적으로 로드되었는지 확인합니다.

Ⅵ. VXLAN 기술 사용 방법

ⅰ. Unicast 방식의 VXLAN 인터페이스 생성

  1. sudo ip link add dev vxlan10 type vxlan id 10 local 192.168.1.10 remote 192.168.1.20 dstport 4789 dev eth0 명령으로 VNI 10을 사용하는 터널 인터페이스를 생성합니다.
  2. sudo ip addr add 10.0.0.1/24 dev vxlan10 명령으로 오버레이 가상 IP를 할당합니다.

ⅱ. 인터페이스 활성화 및 통신 테스트

  1. sudo ip link set dev vxlan10 up 명령으로 인터페이스를 활성화합니다.
  2. 원격 노드의 오버레이 IP(10.0.0.2)로 ping 테스트를 수행하여 오버레이 통신을 검증합니다.

Ⅶ. VXLAN 기술 자주 쓰는 명령어

ⅰ. VXLAN 인터페이스 조회 및 생성 관련 명령어

  1. ip -d link show dev <interface>: VXLAN 인터페이스의 VNI, VTEP IP, UDP Port 등 상세 속성을 조회합니다.
  2. ip link add dev <name> type vxlan id <VNI> local <Local_IP> remote <Remote_IP> dstport 4789: 1:1 유니캐스트 방식 VXLAN 터널 생성.

ⅱ. VTEP FDB(Forwarding Database) 테이블 관리 명령어

  1. bridge fdb show dev <interface>: VXLAN 터널에 바인딩된 MAC 주소와 상대 VTEP IP 맵핑 정보 테이블을 확인합니다.
  2. bridge fdb add <MAC_ADDR> dev <interface> dst <REMOTE_VTEP_IP>: FDB 테이블에 MAC-VTEP 엔트리를 수동으로 정적 추가합니다.

Ⅷ. VXLAN 기술 활용방안

ⅰ. 대규모 멀티테넌트 클라우드 데이터센터 격리

  1. 하나의 물리 인프라 위에서 고객(테넌트)별 L2 네트워크를 VNI로 완전 격리하여 안전한 가상 데이터센터(VDC)를 구축합니다.
  2. 동일한 IP Subnet을 가진 테넌트 가상머신들을 물리적 서버 위치에 제약 없이 자유롭게배치합니다.

ⅱ. 데이터센터 간 연결 (DCI) 및 VM Live Migration

  1. 지리적으로 이격된 데이터센터 간 L2 네트워크 영역을 확장하여 VM의 IP 변경 없이 vMotion / Live Migration을 수행합니다.
  2. 재해 복구(DR) 센터 구성 시 스위치오버 과정에서 IP 재설정 작업 없이 신속하게 서비스를 복구할 수 있습니다.

Ⅸ. VXLAN 기술 트러블 슈팅

ⅰ. MTU 패킷 파편화(Fragmentation) 및 드롭 문제

  1. VXLAN 캡슐화 과정에서 총 50 Byte(Outer Eth 14B + Outer IP 20B + UDP 8B + VXLAN 8B)의 추가 오버헤드가 발생합니다.
  2. 언더레이 물리 네트워크 장비의 MTU를 최소 1550~1600 Byte 이상(Jumbo Frame)으로 확장하여 패킷 파편화 및 드롭을 방지해야 합니다.

ⅱ. 방화벽 UDP Port 차단 여부 점검

  1. VXLAN 표준 포트인 UDP 4789(또는 일부 벤더 고유 포트 8472)가 언더레이 방화벽에서 차단되면 터널링이 실패합니다.
  2. nc -z -v -u <Remote_VTEP_IP> 4789 또는 tcpdump -i eth0 port 4789 명령어로 패킷 도달 여부를 분석합니다.

ⅲ. BUM 트래픽 전송 및 FDB 미학습 문제 해결

  1. 멀티캐스트 설정 오류 또는 EVPN BGP 피어링 문제로 상대 MAC 주소가 학습되지 않아 통신이 차단될 수 있습니다.
  2. bridge fdb show 명령어로 목적지 MAC 및 VTEP IP 바인딩 상태를 검증하고, 수동 FDB 등록 또는 BGP-EVPN 세션 상태를 점검합니다.
반응형