「VXLAN」- 静态 VXLAN 隧道

  CREATED BY JENKINSBOT

物理地址表项

物理地址表

VXLAN 实现的是在 Overlay Network 中进行二层转发,转发 Uncast 数据帧依赖的依旧是 MAC 地址表项。

VTEP 接收到 BD 内来自本地的数据帧,将数据帧的 SRC-MAC-ADDR 添加到该 BD 的 MAC 地址表中,出接口为收到数据帧的接口。
该表项用于指导发往本 VTEP 下连接终端的数据帧的转发。

物理地址动态学习

转发属于远端VTEP下所连接设备的数据帧,需要先学习到远端设备的MAC地址。
该过程与传统MAC地址表形成过程类似,依赖于主机之间的报文交互,一般通过ARP报文交互形成MAC地址表项。

PC1发送ARP广播请求
SW1学习到PC1的MAC地址
SW1将报文进行VXLAN封装,并将ARP报文进行泛洪(向所有同VNI内的VTEP节点转发)
SW2学习到PC1的MAC地址
SW2将ARP报文转发给PC2

PC2发送单播ARP响应
SW2学习到PC2的MAC地址
SW2查找MAC地址表,依据MAC地址表项{0000-0000-000A,10,1.1.1.1},将ARP数据帧封装之后发送给1.1.1.1
SW1学习到PC2的MAC地址
SW1将ARP报文转发给PC1

至此PC1、2相互学习到了对方的ARP信息,SW1、SW2完成了PC1、2的MAC地址学习,该过程也叫做Flood and Learn。

同子网已知目的地址单播报文转发

PC1发送单播帧给PC2
SW1在MAC地址表中查询PC2的MAC地址,找到匹配的表项
SW1将报文进行VXLAN封装,然后增加新的IP包头,报文的目的IP地址为远端VTEP SW2的地址2.2.2.2
SW2在MAC地址表中查询PC2的MAC地址,找到匹配的表项
SW2将报文转发给PC2

BUM流量转发

传输 BUM(Broadcast、Unknown、Multicast)流量时,VTEP 会将流量复制多份发送到头端复制列表中的对端 VTEP,从而在 Overlay Network 中实现泛洪转发的效果。

跨子网转发

PC1希望与PC2进行通信,本地计算发现对端与自身不在同一个子网,此时将报文发送给网关。
PC1发往PC2的数据帧,目的MAC为:00AB-09FF-1111(网关MAC地址),SW1收到之后执行L2查表发现出接口为远端VTEP(即L3网关),将报文加上VXLAN头部封装(VNI =1000)之后发往SW3。
SW3收到报文之后解VXLAN封装发现,内部原始数据帧其目的MAC为:00AB-09FF-1111,为自身接口VBDIF10的MAC地址,此时需要执行L3查表转发。
SW3查找路由表,发现目的IP:192.168.2.1,与本地接口VBDIF20产生的直连路由相匹配,查找ARP表项确定报文目的MAC,再查找MAC地址表确定报文的出接口。SW3中前往192.168.2.1所对应MAC地址的出接口为远端VTEP 2.2.2.2,将报文加上VXLAN封装,送往SW2。
SW2收到报文之后解VXLAN封装发现目的MAC并非自身任何接口的MAC地址,执行L2查表转发,依据MAC地址表将报文从本地接口转发出去。