본문 바로가기

네트워크/Network 가상화

VXLAN - Part 1

Last Update : 2014.04.28


 

새롭게 지난 주말부터 정리를 시작한 VXLAN입니다.

수정이 필요한 부분은 말씀해주시면, 확인 후 수정하도록 하겠습니다.


 

 

VXLAN

  물리적인 환경의 제약이 없이 Layer 2 Segment를 확장한다.

  〮 VM 이동 후에도 기존 IP 주소를 지속적으로 사용.

  표준화된 방법으로 Overlay를 구성할 수 있게하여,  다양한 Vendor들의 Ecosystem을 구축할 수 있음.

    ※ Cisco,Vmware, F5, Broadcom, Brocade, Arista etc

  기존 Layer 212bitVLAN ID4094 VLAN지원, VXLAN24bitVNID1600만개의 VXLAN을 지원한다.

  기존 Layer2 VLANSTP 사용하여 Loop방지를 하기 때문에 Blocking 등으로 인해 미사용하는 구간이 발생한다.

    반면에 VXLANLayer 3 기반의 RoutingECMP, Link Aggregation 프로토콜로 모든 경로를 다 사용할 수 있다.

  MAC in IP/UDP 방식으로 Encapsulation. (캡슐화 역할을 vSwitch에서 제공)

      - Encapsulation을 vSwitch(Software VTEP)에서 뿐만 아니라, Physical Switch(Hardware VTEP)에서도 제공할 수도 있으며,

        이 둘 간에는 상호 연동/호환이 가능하다.

 Multicast 기반으로 Tunneling을 하기 때문에 기존 Network망에서의 별도의 구성이 필요 없다.

 50ByteOverhead 발생. 향후 160Byte까지 확장 고려로, MTU1660Byte로 고려해야 하며 Jumbo Frame 설정 권고

 Multicast(IGMP /PIM)이 지원이 되야하고, Layer 3 Routing Protocol이 동작하고 있는 Network Infrastructure여야 한다

      - EncapsulationPhysical Switch에서 제공해도 되지만, 이 경우에는 VXLAN 구간의 모든 Physical 구간에 VXLAN

       지원하는 Physical Switch가 필요로 하게 되어, 해당 장비의 종속성을 띄게 된다.

 

 

VXLAN 사용 이유

 가상화 환경에서는 VM별로 vNIC을 사용하기 때문에 다수의 MAC Address가 생성되게 된고, 이로 인해 단일 Layer2

   Domain에서 Table 관리의 한계가 올 수 있음.

     VXLAN으로 모든 MAC AddressSwitch에서 가지지 않고, vSwitch에서만 소유하도록 함.

    ※ Core Network에서의 Mac Address 확장성 이슈 해결

 〮 VXLANEnd-Point Device에서만 제공 가능하여도 가능하기 때문에 보다 Vendor에 유연성을 제공한다.

 

 

 

VXLAN 구성 요소

  〮 VXLAN Segment

     - L2 / L3 환경에서의 VM간의 L2 환경을 구현한 Network 범위

     - VXLAN Layer 2 overlay network over which VMs communicate

  VXLAN Overlay Network

     - VXLAN segmentL2/L3 네트워크에서 구현

     - another term for VXLAN Segment

  VNI (VXLAN Network Identifier)

     - VXLAN Segment ID

  VXLAN Gateway

     - VXLANNon-VXLAN간의 트래픽 전송

     - an entity which forwards traffic between VXLAN and non-VXLAN environments

  VTEP (VXLAN Tunnel End Point)

     - VXLAN의 터널 지원하는 End Device.  vSwitch.

     - Local Host와 연결된 InterfaceVXLANEncapsulation/De-capsulation을 역할을 Core와 연결된 IP Interface가 있다.

     - VXLAN Tunnel End Point - an entity which originates and/or terminates VXLAN tunnels

 

 

VXLAN Header

 

 


 

 Flag (8bits)

 유효한 VXLAN Network ID(VNI) 설정된 경우 1로 설정되며, 나머지 7bit Reserved Filed0으로 설정하여 전송하며

   수신 시에는 해당 bit는 무시한다.  [ RRRR1RRR ]

 

VNI (VXLAN Segmemnt Identifier) (24bits)

 〮 VXLAN Overlay Network에 대한 식별자이며, VM들은 동일한 VXLAN Overlay에 있어야 통신이 가능하다.

 〮 VM은 서로 다른 VXLAN Overlay Networks 간에는 통신할 수 없다.

 〮 1600만개의 Segmaent가 동작하도록 허용.

 

Reserved (24bits & 8bits)

 〮 Reserved Filed0으로 설정하여 전송하며 수신 시에는 해당 bit는 무시한다.

 

 

 

Source Port (16bits)

 〮 UDP Source Port는 내부 PacketFiledHash하여 계산하는 것을 권고하는 데, 예를 들어 내부 PacketHeader

   Hash하는 것이다. 이것은 VXLAN overlay를 통한 VM간의 ECMP/Load balancing을 할 수 있게 한다.

 〮 UDP Source PortDynamic/Private Port의 범위인 49152-65535[RFC 6335]의 값이 나오도록 하는 것이 좋다

 

VXLAN Port (16bits)

〮 IANAVXLAN UDP Port4789를 지정하였으며, 이는 Destination UDP Port로 사용된다. (Vendor에 따라 다를 수 있다)

 

UDP Length(16bits)

 

CheckSum (16bits)

 UDP Checksum field0으로 전송되어야 하며, 0으로 전송된 경우에 Decapsulation된다.

   만약 0 아닌 Checksum 값이 확인이 되는 경우에는 Drop되게 된다.

 

 

 

IP Header (72bits)

 Version / IHL / Type of Service / Total Length / Identification / Flags / Fragment Offset / Time to Live

 

Protocol (8bits)

 0x11(17) = UDP packet

 

Header Checksum (16bits)

 

Source IP  (32bits)

 〮 VTEPSource IP로 설정

 

Destination IP (32bits)

 〮 DestinationVTEP IP Address로 설정.

 unknown unicast 혹은 Broadcast/Multicast Address의 경우에는 Multicast Group을 사용하여 전송한다.

 

 

Destination MAC Address (48bits)

 동일한 Subnet 경우에는 Destination VTEPMAC Address로 설정.

 다른 Subnet인 경우에는 Router와 같은 Next Hop DeviceMAC Address로 설정

 

Source MAC Address (48bits)

 〮 Source VTEP MAC address

 

VLAN (16bits)

 VXLAN 구현을 위한 옵션이며, Default로는 802.1Q Ethertype 0x8100과 연관된 VLAN ID Tag로 설정된다.

 

Ethertype (16bits)

 0x0800