学习VXLAN我在文档中发现:
… … VTEP1然后将包含VNI的VXLAN头添加到以太网帧,将帧封装在第3层UDP数据包中,并通过第3层networking将数据包路由到VTEP2。
然后,关于封装的头文件:
外部MAC头 – 包含源VTEP的MAC地址和下一跳路由器的MAC地址。 分组path上的每个路由器都会重写此报头,以便源地址是路由器的MAC地址,目标地址是下一跳路由器的MAC地址。
如果数据包通过第3层路由,为什么要求下一跳的外部MAC地址,而不是第三层IP?
而关于VXLAN隧道节点(非VTEP),它们是交换机/虚拟交换机(L2),路由器(L3)还是可以兼得?
[编辑]
VXLAN分组报头
VXLAN是第二层框架,所以当一个VTEP想要发送数据到另一个VTEP时,它将创build一个二层VXLAN帧(基本上是一个以太网帧)。 这个帧然后需要被传送到目的地VTEP的IP地址。
当他们谈论“外MAC标头”时,他们似乎在谈论通过物理networking发送的帧。 想象下面的configuration –
VTEP Host A: 1.1.1.1 MAC AA (not going to bother with full MAC addresses) Local Router Interface 1: 1.1.1.254 MAC BB Local Router Interface 2: 2.2.2.254 MAC CC VTEP Host B: 2.2.2.2 MAC DD
(上面的IP地址是实际的主机地址(VTEP端点),而不是虚拟VXLAN接口本身的地址)。
[UDP PACKET 1.1.1.1->2.2.2.2[VXLAN FRAME]] [ETH FRAME AA->BB[UDP PACKET[VXLAN FRAME]]] [ETH FRAME CC->DD[UDP PACKET[VXLAN FRAME]]] 。 ** **如果VTEP之间有其他路由器,则此过程将继续。 每个路由器将提取数据包并将其置于一个新的帧中,使用自身的src MAC和下一个跃点的dst MAC,直到到达目的地。