VXLAN (Virtual eXtensible Local Area Network)
- 작성자
- 고친과정
2022년 8월 30일 : 처음씀
1.1. 개요
[PNG image (124.32 KB)]
VXLAN (Virtual eXtensible Local Area Network)은 OSI Layer 2 Ethernet frame을 OSI Layer 3 UDP 로 Encapsulation하여 L2를 L3 네트워크로 확장 가능하도록 하는 터널링 프로토콜 중 하나입니다.
- 대규모 클라우드 컴퓨팅 배포와 관련된 확장성 문제를 해결하기 위한 네트워크 가상화 기술입니다.
- VLAN과 같은 Encapsulation 기술을 사용하여 기본적으로는 4789/UDP 로 OSI Layer 2 Ethernet frame을 Encapsulation 하게 됩니다. (MAC in UDP 캡슐화)
- OSI Layer 2 를 IP Network (UDP/IP) 기반하에 어느 곳에서나 확장가능하게 합니다.
- OSI Layer 2 원문으로부터 VXLAN Encapsulation하는데 최소 50 bytes header 를 추가하게 됩니다. (때문에 MTU 1500을 기준으로 VXLAN MTU는 1550 또는 1450으로 고려할 필요성 있습니다.)
- Outer Ethernet/IP/UDP Header + VXLAN Header + Original OSI Layer 2 frame
- Outer 이더넷 (Ethernet) Header : 14 bytes
- Outer IPv4 Header : 20 bytes (IPv6 Header의 경우 최소 40 bytes)
- Outer UDP Header : 8 bytes
- VXLAN Header : 8 bytes (VXLAN-Flags 8bits + Reserved 24 bits + VNI 24 bits + Reserved 8 bits)
- Outer Ethernet/IP/UDP Header + VXLAN Header + Original OSI Layer 2 frame
- 최적의 Flooding을 사용하게 됩니다.
- 학습하지 못한 목적지 MAC은 IP Mulicast를 이용하여 목적지 MAC 주소가 있는 스위치에 전송.
- 모든 MAC Address를 L2 switch의 ARP Table에 저장하지 않는 구조 달성 가능.
- vSwitch에서만 MAC Address를 저장하고 패킷을 Forwarding해서 해결.
- VXLAN은 Multicast 기반으로 Shared-Tree 구성할 수 있어 Trunk 가 필수 요소가 아님.
1.1.1. 용어정의
- VXLAN : Virtual eXtensible Local Area Network
- VTEP : VXLAN Tunnel End Point (VXLAN Tunnel 의 종단)
- VXLAN Tunnel End Point. An entity that originates and/or terminates VXLAN tunnels
- VXLAN Tunnel 간 Encapsulation 및 Decapsulation을 수행하는 것. (VXLAN 의 핵심적인 역할을 수행)
- End point 하단에서는 VXLAN 의 존재 및 동작 여부를 알 수 없음.
- VTEP은 커널 기반 가상 머신 (KVM) 호스트와 같은 하이퍼바이저 호스트에 상주하여 가상화된 워크로드를 직접 지원할 수도 있음.
- VNI / VNID : Virtual Network Identifier
- VXLAN Network Identifier (or VXLAN Segment ID)
- VLAN과 VXLAN segment 간 식별자 번호 (tenant를 식별) 이며 동일한 VLAN에 여러개의 VNI 가 가능.
- VLAN의 12bits Tag(VLAN ID) 4K 제한을 해결하기 위해서 VXLAN의 VNI는 24bits 로 최대 약 16,000,000개 (2 ^ 24)를 사용 가능.
- NVE : Network Virtualization Interface
- VXLAN의 Encapsulation 및 Decapsulation이 발생하는 논리적 인터페이스
- Overlay network : 물리 네트워크 위에 성립되는 가상의 컴퓨터 네트워크를 의미
- 각 node는 가상 및 논리 링크로 연결될 수 있으며 각 링크는 수 많은 물리적 링크를 경유하지만 이러한 물리적 링크를 고려하지 않는 것이 특징.
- Underlay network : 실제 물리적 장비들을 이용한 네트워크 인프라를 의미
- VXLAN Segment : VM간 통신을 위한 VXLAN Layer 2 overlay network
- VXLAN Layer 2 overlay network over which VMs communicate
- VXLAN Gateway : VXLAN간 또는 VXLAN 과 Non-VXLAN간의 통신을 위한 Gateway (~= VTEP)
- an entity that forwards traffic between VXLANs
- L2 (VXLAN-to-VLAN)
- VXLAN으로 부터 도착된 패킷이 동일한 L2 Domain (VNI가 같은) 임이 확인된 후 VLAN으로 전달하는 것
- L3 (VXLAN-to-VLAN)
- VXLAN으로 부터 도착된 패킷이 동일한 L2 Domain (VNI가 같은) 임이 확인된 후 라우팅을 통해 Non-VXLAN으로 전달하는 것
- L3 (VXLAN-to-VXLAN)
- 서로 다른 L2 Domain (VNI가 다른) 간 VXLAN 라우팅을 통해서 전달하는 것
- VRF : Virtual Routing Forwarding
- vSwitch : Virtual Switch (가상의 Switch)
- BUM traffic : Broadcast, Unknown-unicast and multicast traffic
- 발신자가 네트워크 주소를 모르는 대상으로 보내기 위한 세 가지 방법 중에서 하나를 사용하여 전송하는 traffic을 지칭
- RP : Rendezvous Point (참고: http://www.ktword.co.kr/test/view/view.php?m_temp1=4073)
- 모든 멀티캐스트 트래픽이 집결되는 노드
- 멀티캐스팅 라우팅 프로토콜인 PIM-SM에서 각 멀티캐스트 그룹의 중심이 되는 라우터
- 그룹 공유 트리(Group Shared Tree)의 루트가 됨
- PIM : Platform Independent Multicast (참고: http://www.ktword.co.kr/test/view/view.php?m_temp1=2467&id=704)
- 대규모 네트워크 상에서 프로토콜에 의존하지 않고, 멀티캐스트 라우팅 트리를 구성할 수 있게 하는 멀티캐스트 라우팅 프로토콜
- vPC : Virtual Port Channel (참고: https://www.cisco.com/c/ko_kr/support/docs/ios-nx-os-software/nx-os-software/217274-understand-virtual-port-channel-vpc-en.html)
- 물리적인 2대의 장비를 묶어 논리적으로 하나의 장비처럼 동작하게 하는 시스코 전용 기술
- ToR : Top of Rack
1.2. 참고 자료
- OSI 7 계층모델
- 이더넷 (Ethernet)
- RFC7348 - Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
- https://www.cisco.com/c/ko_kr/support/docs/switches/nexus-9000-series-switches/118978-config-vxlan-00.html
- https://en.wikipedia.org/wiki/Virtual_Extensible_LAN
- https://en.wikipedia.org/wiki/Overlay_network
- https://skstp35.tistory.com/227
- https://www.arubanetworks.com/ko/faq/what-is-evpn-vxlan/
- https://www.juniper.net/kr/ko/research-topics/what-is-vxlan.html
- https://support.huawei.com/enterprise/en/doc/EDOC1100086966
- https://atthis.tistory.com/6
- https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/6e4619c416ff4bd19e1c087f27a43eea/www-assets-prod/presentation-media/OpenStackOverVxlan.pdf
- http://www.definethecloud.net/vxlan-deep-dive/, https://www.definethecloud.net/vxlan-deep-divepart-2/
- https://ikcoo.tistory.com/117
- 블로그 - 네트워크&파이썬 (white-polarbear)
- https://vincent.bernat.ch/en/blog/2017-vxlan-linux
- https://www.juniper.net/documentation/kr/ko/software/junos/evpn-vxlan/topics/concept/vxlan-evpn-integration-overview.html
- https://www.cloudshark.org/captures/670aeb7bad79
- https://blog.naver.com/PostView.nhn?blogId=lunaeye&logNo=221160549927
- https://www.joinc.co.kr/w/man/12/OpenVSwitch/VXLAN