The idea
Two racks of a data center each have a leaf Router, and two spine routers join the leaves. hostA in rack1 and
hostB in rack2 share one customer's (tenant's) network, 192.168.10.0/24: you will join them with VXLAN, a
tunnel between the leaves that carries their Ethernet inside UDP.
Steps
-
The underlay: every leaf to every spine
Every leaf is cabled to every spine, and each link speaks eBGP: this routed fabric is the underlay. Every rack then reaches any other through one spine, whichever it is. Read leaf1's BGP, then its route to rack2.
leaf1:~# vtysh leaf1:~# ip route show 10.0.2.0/24
-
One subnet, two racks: Ethernet stops at the leaf
hostA, behind leaf1, and hostB, behind leaf2, share a tenant Subnet and prefix length,
192.168.10.0/24, that the fabric never routes. To reach a host in its own subnet, hostA first asks for its MAC address with an ARP broadcast, which only one Ethernet segment carries.hostA:~# ping -c 2 192.168.10.12
Pro
4 more steps in the app
- Build a tunnel endpoint on each leaf
- The leaf learns where each MAC lives
- 50 bytes for the tunnel
- A spine fails; the overlay never notices