Hi guys,
I started playing with VxLAN and I think I have some good understanding of it now, but I have a few questions I couldn't find the answers for and I will really appreciate to hear your thoughts. When it comes to the L2 it's all pretty clear, but when it comes to Layer3 I don't quite understand a few things.
Reading this paper it says:
Each VTEP has a unique system MAC address that other VTEPs can use for inter-VNI routing. This MAC address is referred to here as the router MAC address. The router MAC address is used as the inner destination MAC address for the routed VXLAN packet.
1. Why does the VTEP need to know the remote's VTEP MAC address if it is going to route the traffic to it? Is this something specific for Cisco's implementation or do the other vendors do this and if so - then why? From my perspective as long as the local VTEP performing the encapsulation knows what VNI and VTEP to use as well as having a route to the remote VTEP, then this information *should* be enough? One of the books I read about VxLAN states this, which is a bit vague and still unclear to me:
“The requirement of incorporating the RMAC in the BGP EVPN message comes from the fact that VXLAN is a MAC in IP/UDP encapsulation. By providing the inner MAC to be the RMAC for routing purposes, the information used during encapsulation appropriately identifies the neighboring VTEP not only at the Layer 3 (next-hop IP) level but also at the Layer 2 (destination VTEP MAC) level”
2. Also when performing symmetric IRB, we do bridge - route - route - bridge using an intermediate, common/shared segment that has to be created on every device where the VRF is present. This is something else I don't quite understand the purpose of. Why do we need to have an SVI with no ip addresses, allowing ip forwarding, etc - this sounds like some sort of a "workaround" for what's going on under the hood. Similar to my previous question, considering this topology:
-[CUSTOMER_A_VRF]-(VTEP A) --- { layer3 } --- {VTEP B}-[CUSTOMER_A_VRF]-
^^^vni 10001000 ^^^vni 10001000
if we have VRF_A present on two or more routers, all the VTEPs/Routers need to know is how to associate this traffic and which VRF does it belong to. In the control plane the BGP will use route-targets so it will place the routing within the appropriate VRF. In the data plane when the traffic comes and it contains the VNI which is configured with an "associate-vrf" under the NVI interface, that should be enough for the router to know that this traffic belongs to that particular VRF, right?
My background is mostly MPLS/SP so I do believe I understand the general concept of underlay/overlay model, but I simply struggle to understand why it's been done this way?
Will appreciate any thoughts and references. Thanks for your time in advance!