#keywords VXLAN,VTEP,VNI,VNID,4789,network,overlay,ethernet,802.11,VLAN,Tag,frame,mac,address,arp,L2,L3,flooding,encapsulation,decapsulation,tunnel,gre #title VXLAN (Virtual eXtensible Local Area Network) [wiki:Home 대문] / [wiki:CategoryNetwork 네트웍], [wiki:CategoryProgramming 프로그래밍] / [wiki:VXLAN VXLAN (Virtual eXtensible Local Area Network)] ---- == [wiki:VXLAN VXLAN (Virtual eXtensible Local Area Network)] == * 작성자 조재혁 ([mailto:minzkn@minzkn.com]) * 고친과정 2022년 8월 30일 : 처음씀 [[TableOfContents]] === 개요 === [[attachment:VXLAN-Overview-0-20220831.png]] [wiki:VXLAN 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 [wiki:Ethernet 이더넷 (Ethernet)] Header : 14 bytes * Outer [wiki:IPv4 IPv4] Header : 20 bytes ([wiki:IPv6 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) * 최적의 Flooding을 사용하게 됩니다. * 학습하지 못한 목적지 MAC은 IP Mulicast를 이용하여 목적지 MAC 주소가 있는 스위치에 전송. * 모든 MAC Address를 L2 switch의 ARP Table에 저장하지 않는 구조 달성 가능. * vSwitch에서만 MAC Address를 저장하고 패킷을 Forwarding해서 해결. * VXLAN은 Multicast 기반으로 Shared-Tree 구성할 수 있어 Trunk 가 필수 요소가 아님. ==== 용어정의 ==== * 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 === 참고 자료 === * '''[wiki:OSI_7LayerModel OSI 7 계층모델]''' * [wiki:Ethernet 이더넷 (Ethernet)] * [^https://www.rfc-editor.org/rfc/rfc7348 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://white-polarbear.tistory.com/69 Overlay Network & Underlay Network (오버레이, 언더레이)] * [^https://white-polarbear.tistory.com/83 VXLAN (Virtual eXtention LAN) 기술 소개] * [^https://white-polarbear.tistory.com/84 VXLAN (Virtual eXtention LAN) 네트워크 모델] * [^https://white-polarbear.tistory.com/85 VXLAN (Virtual eXtention LAN) MAC 주소 학습 방법] * [^https://white-polarbear.tistory.com/86 VXLAN (Virtual eXtention LAN) Gateway 소개] * [^https://white-polarbear.tistory.com/87 VXLAN (Virtual eXtention LAN) High Availability 소개] * [^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]