VXLAN

Its a multicast standard

Implementation

  • linux vxlan

    • Support multicast and unicast

VTEP (VXLAN Tunnel End Point) - Resolve and pack packet

Hardware implementation

Software implementation

  • 3.9 版本及以後的帶 vxlan 內核模塊的 Linux

  • Open vSwitch

  • VMware vSphere VDS(vSphere Distributed Switch)

VMWare solution

Linux vxlan

  • Linux vxlan create UDP Socket,default 8472 port

  • Linux vxlan 在 UDP socket 上接收到 vxlan 包後,untag vlan,然後根據其中的 vxlan ID 將它轉給某個 vxlan interface,然後再通過它所連接的linux bridge 轉給VM

  • Linux vxlan 在收到VM的multicast, broadcast frame後,將其封裝為multicast UDP 包(在使用multicast時)或者多個unicast包(在使用unicast時),在從指定網卡發出

  • Linux vxlan 在VM的unicast frame後,如果 fdb 表中包含有目的虛機的 VTEP IP 條目,則將其封裝為unicast UDP 包,否則,通過multicast或者多個unicast,發到指定的 VTEP

  • Linux vxlan 在配置了 Proxy ARP 時會根據 fdb 表來響應VM的 ARP multicast請求

VXLAN component

vSphere

Linux

Open vSwitch (OVS)

VTEP

vSphere

Linux

OVS

Bridge

VDS

Linux bridge

OVS

VXLAN ID

Linux VXLAN module

  • linux-$version/drivers/net/vxlan.c

Last updated

Was this helpful?