Skip to Content
05. SecurityIntroduction to Virtual Extensible LAN (VXLAN)

Virtual Extensible LAN (VXLAN) 소개

학습 목차

  1. 핵심 요약
  2. 사전 지식
  3. 오버레이 vs 언더레이
  4. VNI
  5. VTEP 5.1. 소프트웨어 5.2. 하드웨어 5.3. 인터페이스
  6. VXLAN 프레임 형식
  7. 패킷 워크스루
  8. 컨트롤 플레인
  9. 결론
  10. 추가 자료

Virtual eXtensible Local Area Network(VXLAN) 는 이더넷(레이어 2) 트래픽을 IP(레이어 3) 네트워크 위에서 터널링하는 터널링 프로토콜입니다. 4094 VLAN 제한과 spanning tree 프로토콜(STP)에 의해 차단되는 이중화 링크 같은 전통적인 이더넷 네트워크의 제한을 해결합니다. 물리적 언더레이 네트워크 위에 가상 오버레이 네트워크를 만들어 확장 가능한 레이어 2 네트워크를 구축할 수 있습니다.

전통적인 레이어 2 네트워크는 세 가지 주요 이유로 문제가 있습니다.

  • Spanning tree
  • 제한된 VLAN 수
  • 큰 MAC 주소 테이블

Spanning tree는 루프를 피하기 위해 모든 이중화 링크를 차단합니다. 루프 없는 토폴로지를 만들기 위해 링크를 차단하는 것은 일을 수행하지만, 사용할 수 없는 링크에 대해 비용을 지불한다는 의미이기도 합니다. 레이어 3 네트워크로 전환할 수 있지만, 일부 기술은 레이어 2 네트워킹을 필요로 합니다.

VLAN ID는 12비트이므로 4094개의 VLAN을 만들 수 있습니다(0과 4095는 예약됨). 데이터 센터에는 4094개의 사용 가능한 VLAN이 문제가 될 수 있습니다. 예를 들어, 500명의 고객이 있는 서비스 공급자가 있다고 상상해 봅시다. 4094개의 사용 가능한 VLAN으로는 각 고객에게 8개의 VLAN만 제공할 수 있습니다.

서버 가상화 때문에 스위치의 MAC 주소 테이블의 주소 수가 기하급수적으로 증가했습니다. 서버 가상화 이전에는 스위치가 스위치 포트당 하나의 MAC 주소만 학습하면 되었습니다. 서버 가상화로 단일 물리 서버에서 많은 가상 머신(VM)이나 컨테이너를 실행합니다. 각 VM은 가상 NIC와 가상 MAC 주소를 가집니다. 스위치는 단일 스위치 포트에서 많은 MAC 주소를 학습해야 합니다.

데이터 센터의 Top of Rack (ToR) 스위치는 24~48개의 물리 서버에 연결될 수 있습니다. 데이터 센터에는 많은 랙이 있을 수 있으므로 각 스위치는 서로 통신하는 모든 VM의 MAC 주소를 저장해야 합니다. 서버 가상화가 없는 네트워크에 비해 훨씬 큰 MAC 주소 테이블이 필요합니다.


1. 핵심 요약

  • VXLAN은 24비트 VNI(VXLAN Network Identifier)를 사용해 전통적인 12비트 VLAN ID로 4,094개의 VLAN과 비교해 약 16백만 개의 VXLAN을 허용합니다.
  • VTEP 장치(VXLAN Tunnel Endpoints)는 레이어 2 트래픽을 캡슐화하고 디캡슐화하며, 소프트웨어(하이퍼바이저 기반) 또는 하드웨어(스위치/라우터 기반)로 사용 가능합니다.
  • 레이어 3 언더레이 네트워크는 spanning tree를 제거해 이중화 링크에서 ECMP 로드 밸런싱을 가능하게 합니다.
  • 네 가지 컨트롤 플레인 옵션: 정적 유니캐스트, 멀티캐스트 flood-and-learn, MP-BGP EVPN, LISP를 사용한 VXLAN.
  • UDP 포트 4789가 공식 VXLAN 포트입니다(일부 구현은 8472 사용).
  • 오버레이와 언더레이 네트워크는 독립적이어서 한쪽의 변경이 다른 쪽에 영향을 주지 않습니다.

2. 사전 지식

이 소개 강의를 최대한 활용하려면 다음을 이해해야 합니다.

  • 터널링의 기본. 예를 들어 GRE 같은 단순한 터널링 프로토콜이 어떻게 작동하는지, 그리고 라우터가 터널링할 때 패킷을 어떻게 캡슐화하는지.
  • STP의 한계. VXLAN이 오늘날 일반적으로 사용되는 이유를 이해하는 데 도움이 되기 때문입니다.

3. 오버레이 vs 언더레이

VXLAN은 오버레이와 언더레이 네트워크를 사용합니다.

오버레이와 언더레이

오버레이 네트워크는 물리적 언더레이 네트워크 위에서 실행되는 가상 네트워크입니다. 이전에 이 용어를 들어본 적이 없어도 아마 본 적이 있을 것입니다. GRE 터널은 오버레이 네트워크의 간단한 예입니다. GRE 터널은 물리적 언더레이 네트워크 위에서 실행됩니다.

VXLAN에서 오버레이는 레이어 2 이더넷 네트워크입니다. 언더레이 네트워크는 레이어 3 IP 네트워크입니다. 언더레이 네트워크의 다른 이름은 transport network입니다.

언더레이 네트워크는 단순합니다. 유일한 작업은 패킷을 A에서 B로 가져오는 것입니다. 여기서 레이어 2를 사용하지 않고 레이어 3만 사용합니다. 레이어 3을 사용할 때 OSPF나 EIGRP 같은 IGP를 사용해 이중화 링크에서 트래픽을 로드 밸런싱할 수 있습니다.

또 다른 장점은 오버레이와 언더레이 네트워크가 독립적이라는 것입니다. 오버레이 네트워크는 가상이며 언더레이 네트워크가 필요하지만, 오버레이 네트워크에서 어떤 변경을 하든 언더레이 네트워크에 영향을 주지 않습니다.


4. VNI

VXLAN Network Identifier (VNI) 는 VXLAN을 식별하며 일반 VLAN의 VLAN ID와 비슷한 기능을 가집니다.

VNI

VNI에 24비트를 사용하므로 16,777,215(약 16백만) 개의 VXLAN을 만들 수 있습니다. 12비트 VLAN ID로 4094개의 VLAN과 비교하면 정말 많습니다.


5. VTEP

VXLAN tunnel endpoint (VTEP) 는 레이어 2 트래픽을 캡슐화하고 디캡슐화하는 장치입니다. 이 장치는 오버레이와 언더레이 네트워크 사이의 연결입니다. VTEP는 두 가지 형태로 제공됩니다.

  • 소프트웨어 (호스트 기반)
  • 하드웨어 (게이트웨이)

5.1. 소프트웨어

여기서 호스트라고 하면 VMware의 ESXi나 Microsoft의 Hyper-V 같은 하이퍼바이저를 의미합니다. 이러한 하이퍼바이저는 가상 스위치를 사용하며, 그 중 일부는 VXLAN을 지원합니다.

소프트웨어 VTEP

VXLAN 터널은 하이퍼바이저의 가상 스위치 사이에 있습니다. 언더레이 네트워크는 VXLAN을 인식하지 못합니다.

5.2. 하드웨어

하드웨어 VTEP는 VXLAN을 지원하는 라우터, 스위치 또는 방화벽입니다. 일반 VLAN과 VXLAN 세그먼트를 단일 레이어 2 도메인으로 결합하기 때문에 하드웨어 VTEP를 VXLAN 게이트웨이라고도 부릅니다. 일부 스위치는 ASIC을 사용한 VXLAN 지원을 가지고 있어 소프트웨어 VTEP보다 더 나은 VXLAN 성능을 제공합니다.

위 그림에서 VXLAN 터널은 물리 스위치 사이에 있습니다. 물리 스위치에 연결되는 장치는 VXLAN을 인식하지 못합니다.

5.3. 인터페이스

각 VTEP는 두 가지 인터페이스 유형을 가집니다.

  • VTEP IP 인터페이스: VTEP를 고유 IP 주소를 가진 언더레이 네트워크에 연결합니다. 이 인터페이스는 이더넷 프레임을 캡슐화하고 디캡슐화합니다.
  • VNI 인터페이스: 물리 인터페이스에서 네트워크 트래픽을 분리하는 가상 인터페이스입니다. SVI 인터페이스와 비슷합니다.

VTEP는 여러 VNI 인터페이스를 가질 수 있지만, 모두 동일한 VTEP IP 인터페이스와 연결됩니다.

VTEP 인터페이스 1 VTEP 인터페이스 2

위에서 볼 수 있는 것을 설명해 보겠습니다.

  • VTEP 장치 세 개가 있고, 각 VTEP는 언더레이 네트워크에 연결되는 VTEP IP 인터페이스를 가지고 있습니다.
  • 모든 VTEP 장치는 레이어 2 세그먼트를 만들기 위해 VNI 5012의 VNI 인터페이스를 가지고 있습니다.
  • VTEP1과 VTEP2는 또 다른 레이어 2 세그먼트를 만들기 위해 VNI 5013의 또 다른 VNI 인터페이스도 가지고 있습니다.

6. VXLAN 프레임 형식

VTEP가 이더넷 프레임을 캡슐화할 때 VXLAN 헤더를 추가합니다. 이 헤더에서 VNI와 일부 플래그를 찾을 수 있습니다.

VXLAN의 공식 UDP 포트 번호는 4789입니다. 그러나 UDP 포트 8472도 만날 수 있습니다. VXLAN이 처음 Linux에서 구현되었을 때 공식 포트 번호가 아직 없어 많은 벤더가 포트 8472를 사용했습니다.

참고: VXLAN 헤더는 LISP 헤더와 비슷합니다. 이는 우연이 아닙니다. 아이디어는 LISP에 레이어 2 지원을 추가해 layer 2 LISP라고 부르는 것이었습니다. 대신 VXLAN이라는 이름을 만들었습니다.

VXLAN 프레임

7. 패킷 워크스루

VXLAN이 이더넷 프레임을 어떻게 캡슐화하고 디캡슐화하는지 예제를 살펴봅시다. 토폴로지는 다음과 같습니다.

H1과 H2는 일반 호스트이며 VXLAN을 인식하지 못합니다. VTEP1과 VTEP2는 VTEP 장치 역할을 하는 두 스위치입니다. H1과 H2 사이의 이더넷 프레임을 캡슐화하기 위해 VNI 5012를 사용합니다.

이 프로세스를 단계별로 설명해 보겠습니다.

  1. H1이 H2를 목적지로 한 이더넷 프레임을 전송합니다.
  2. VTEP1이 VNI 인터페이스에서 이더넷 프레임을 받고 다음 동작을 수행합니다:
    • H1이 연결된 VNI(예제에서는 5012)를 조회합니다.
    • 목적지 MAC 주소와 원격 VTEP IP 주소 사이의 매핑을 찾습니다.
    • VNI 5012로 VXLAN 헤더를 추가합니다.
    • UDP 헤더를 추가합니다.
    • 외부 IP 헤더를 추가하고 VTEP1과 VTEP2의 VTEP IP 주소를 설정합니다.
    • 언더레이 네트워크에 IP 패킷을 전송합니다.
  3. VTEP2가 VTEP 인터페이스에서 IP 패킷을 받고 다음 동작을 수행합니다:
    • IP 패킷을 디캡슐화합니다.
    • VNI가 올바른지 확인하고 목적지 MAC 주소를 사용하는 호스트가 있는지 확인합니다.
    • 원본 이더넷 프레임을 H2로 전달합니다.
  4. H2가 이더넷 프레임을 받습니다.

8. 컨트롤 플레인

패킷 워크스루 예제에서 VTEP 장치가 목적지 MAC 주소에 도달하기 위해 어떤 VTEP IP 주소를 사용할지 알아내기 위해 매핑을 조회한다고 설명했습니다. VTEP1이 이 매핑 정보를 어떻게 학습했는지는 설명하지 않았습니다. 어떻게 작동하는지 봅시다.

전통적인 VLAN에서, 두 호스트가 처음 서로 통신할 때 다음과 같이 진행됩니다.

  • H1이 ARP 요청을 보냅니다.
  • H1과 H2 사이의 스위치들이 H1의 MAC 주소를 학습합니다.
  • 스위치들이 ARP 요청을 플러딩합니다.
  • H2가 ARP 요청을 받습니다.
  • H2가 ARP 응답으로 답변합니다.
  • 스위치들이 H2의 MAC 주소를 학습합니다.

VXLAN에서, 각 VTEP는 목적지 MAC 주소를 원격 VTEP IP 주소에 매핑하는 VXLAN 매핑(전달) 테이블을 가지고 있습니다. VTEP 장치는 어떻게 MAC 주소를 학습할까요? 다양한 컨트롤 플레인 솔루션이 있습니다. Cisco는 이 네 가지 옵션을 지원합니다.

  • 정적 유니캐스트 VXLAN 터널을 사용하는 VXLAN
  • 멀티캐스트 언더레이를 사용하는 VXLAN
  • MP-BGP EVPN을 사용하는 VXLAN
  • LISP를 사용하는 VXLAN

첫 번째 옵션은 단순합니다. VXLAN 매핑 테이블을 수동으로 구성합니다. 작동하지만 확장 가능한 솔루션은 아닙니다. VXLAN 표준은 두 번째 솔루션을 설명하는데, 언더레이에서 멀티캐스트 “flood and learn” 솔루션을 사용합니다.

작동 방식:

  • 각 VNI는 멀티캐스트 그룹에 매핑됩니다.
  • VTEP 장치가 멀티캐스트 그룹에 가입합니다.
  • VTEP1이 ARP 요청을 받으면 멀티캐스트 그룹으로 전송합니다.
  • VTEP2가 ARP 요청을 받고 H1의 MAC 주소를 학습합니다.
  • VTEP2는 H1의 MAC 주소와 VTEP1의 IP 주소를 매핑 테이블에 저장합니다.
  • VTEP2가 H2로부터 ARP 응답을 받으면 매핑 테이블의 정보를 사용해 VTEP1로 유니캐스트 패킷을 보냅니다.

MP-BGP EVPN 솔루션은 데이터 센터와 사설 클라우드에서 인기 있습니다. LISP를 사용한 VXLAN은 캠퍼스 네트워크에 인기 있는 선택입니다. 예를 들어 Cisco의 SD-Access는 컨트롤 플레인에서 LISP를 사용한 VXLAN을 사용합니다.


9. 결론

배운 내용을 요약해 봅시다.

  • 전통적인 레이어 2 네트워크는 문제가 있습니다:
    • Spanning tree가 모든 이중화 링크를 차단합니다. ECMP를 사용할 수 없습니다.
    • 12비트 VLAN ID 때문에 제한된 VLAN 수.
    • 서버 가상화 때문에 큰 MAC 주소 테이블.
  • VXLAN은 오버레이와 언더레이 네트워크를 사용합니다:
    • 언더레이 네트워크는 100% 레이어 3이므로 spanning tree를 사용할 필요가 없고 로드 밸런싱을 사용할 수 있습니다.
    • 오버레이 네트워크는 가상입니다.
  • 24비트 VNI가 VXLAN을 식별하며 VLAN ID와 비슷합니다. 약 16백만 개의 VXLAN을 만듭니다. 큰 서비스 공급자에게도 충분합니다.
  • VTEP 장치는 레이어 2 트래픽을 캡슐화하고 디캡슐화합니다. 두 가지 버전이 있습니다:
    • 소프트웨어: 하이퍼바이저의 가상 스위치에서 실행.
    • 하드웨어: 라우터, 스위치, 방화벽에서 실행. 일부 하드웨어 VTEP는 더 나은 성능을 위해 ASIC을 사용합니다.
  • 각 VTEP는 두 인터페이스를 가집니다:
    • VTEP IP 인터페이스: VTEP를 언더레이 네트워크에 연결. 이 인터페이스가 VXLAN 트래픽을 캡슐화하고 디캡슐화합니다.
    • VNI 인터페이스: 가상 인터페이스, SVI 인터페이스와 비슷.
  • VXLAN은 이더넷 프레임을 캡슐화하고 VXLAN, UDP, IP 헤더를 추가합니다.
  • VXLAN 표준은 컨트롤 플레인을 위한 멀티캐스트 “flood and learn” 솔루션을 설명합니다.
  • 다른 컨트롤 플레인 옵션은 EVPN을 사용한 MP-BGP 또는 LISP를 사용한 VXLAN입니다.

VXLAN의 장점:

  • VXLAN은 레이어 2 네트워크의 단점 없이 VLAN처럼 네트워크를 세그먼트할 수 있게 합니다.
  • Spanning tree가 없으므로 이중화 링크(ECMP)를 사용할 수 있습니다.
  • 단순한 언더레이 네트워크.
  • 12비트 VLAN ID 때문에 4094 VLAN으로 제한되지 않습니다.
  • 24비트 VNI 때문에 16백만 개 이상의 VXLAN을 만들 수 있습니다.
  • 큰 레이어 2 토폴로지를 구축하고 전체 네트워크에 VLAN을 펼칠 필요가 없습니다.
  • 더 적은 플러딩(브로드캐스트, 멀티캐스트, 알 수 없는 유니캐스트 트래픽).
  • ASIC을 사용하는 하드웨어 VTEP의 고성능.

10. 추가 자료

VXLAN에 대해 더 배우고 싶다면 VXLAN Static Ingress Replication 강의를 확인하세요. 수동 VTEP 구성으로 Cisco Nexus 9000v 스위치에서 VXLAN을 구성하는 방법을 설명합니다. VXLAN 일반에 대한 자세한 내용은 RFC 7348를 참조하세요.


이미지

포럼 답글

davide.concio

포럼 답글

안녕 Rene, 이는 VXLAN에 대한 매우 좋은 강의입니다. 핵심을 짚고 잘 작성되었습니다.

작년에 VXLAN EVPN Fabric에 대해 작업했기 때문에 이 주제에 특히 열정적이며 이 기술을 사랑합니다.

처음 시작했을 때 이런 강의가 있었다면 주제를 배우기 더 쉬웠을 것입니다…

bikram.na

포럼 답글

안녕 Rene,

vxlan을 어떻게 구성할 수 있나요? 설명해 주실 수 있나요?

lagapidis

안녕 Bikram,

VXLAN 토폴로지를 구현하는 방법을 더 이해하기 위해 다음 강의를 살펴보세요.

도움이 되었길 바랍니다!

포럼 답글

Laz

syedabrar_8055

이는 인터넷에서 사용 가능한 VXLAN에 대한 최고의 설명 문서입니다.

lagapidis

안녕 Syed,

긍정적인 피드백 정말 감사합니다. 우리에게 최선을 다하도록 동기를 부여합니다!

Laz

64개의 추가 답글이 있습니다. 커뮤니티 포럼을 방문해 질문하거나 토론에 참여하세요.


출처: networklessons.com - Introduction to Virtual Extensible LAN (VXLAN)

태그: VXLAN