What do you need to know about VXLAN and Linux?
VXLAN & Linux VXLAN is an overlay network to carry Ethernet traffic over an existing (highly available and scalable) IP network while accommodating a very large number of tenants. It is defined in RFC 7348. Starting from Linux 3.12, the VXLAN implementation is quite complete as both multicast and unicast are supported as well as IPv6 and IPv4.
Where does the routing take place in VXLAN?
The routing of traffic is based on the inner header or the overlay tenant IP address. Because VXLAN routing is fundamentally routing, it is most commonly deployed with a control plane, such as Ethernet Virtual Private Network ( EVPN ).
What kind of control plane does VXLAN use?
Because VXLAN routing is fundamentally routing, it is most commonly deployed with a control plane, such as Ethernet Virtual Private Network (EVPN). You can set up static routing too, either with or without the Cumulus Lightweight Network Virtualization (LNV) for MAC distribution and BUM handling.
How many virtual LANs does a VXLAN allow?
With a 24-bit segment ID, aka VXLAN Network Identifier (VNI), VXLAN allows up to 2^24 (16,777,216) virtual LANs, which is 4,096 times the VLAN capacity. VXLAN encapsulates Layer 2 frames with a VXLAN header into a UDP-IP packet, which looks like this:
What is the destination port number for VXLAN?
The destination port number is set to the IANA-assigned value of 4789. The Linux implementation of VXLAN pre-dates the IANA’s selection of a standard destination port number and uses the Linux-selected value by default to maintain backwards compatibility.
How to see the FDB of a VXLAN device?
The following figure summarizes the configuration, with the FDB of the Linux bridge (learning local MAC addresses) and the FDB of the VXLAN device (learning distant MAC addresses): The FDB of the VXLAN device can be observed with the bridge command. If the destination MAC is present, the frame is sent to the associated VTEP (unicast).
Which is an example of a VXLAN backend?
The VXLAN backend of Docker’s libnetwork is an example of this strategy (but it also uses the next method). Linux can also notify a program an ( L2 or L3) entry is missing. The program queries some central registry and dynamically adds the requested entry.