VXLAN 网络中报文转发过程

天翼云开发者社区
• 阅读 4

本文分享自天翼云开发者社区《VXLAN 网络中报文转发过程》,作者:刘****林

以同网段的 VM 间互通简单介绍 VXLAN 网络中的报文转发过程。

VXLAN 网络中报文转发过程

1.VM1 发送目的地址为 VM2 的报文。 2.VTEP1 收到该报文后进行 VXLAN 封装,封装的外层目的 IP 为 VTEP2。封装后的报文,根据外层 MAC 和 IP 信息,在 IP 网络中进行传输,直至到达对端VTEP2。 3.VTEP2 收到报文后,对报文进行解封装,得到 VM1 发送的原始报文,然后将其转发至VM2。

二层 MAC 学习及 BUM 报文转发 1.二层MAC学习 在 VXLAN 网络中,同子网虚拟机的互通是通过查找 MAC表进行转发。如下图所示,VM1 给 VM2 发送报文时,经过 VTEP1 转发,VTEP1 上需要学习到 VM2 的 MAC 地址。 最初的 VXLAN 标准并没有定义控制平面,VTEP 之间无法传递学习到的主机 MAC 地址。但是 VXLAN 有着与传统以太网非常相似的 MAC 学习机制,当 VTEP接收到VXLAN 报文后,会记录源 VTEP 的 IP、虚拟机 MAC 和 VNI 到本地 MAC表中,这样当 VTEP 接收到目的 MAC 为此虚拟机的 MAC 时,就可以进行 VXLAN 封装并转发。

VXLAN 网络中报文转发过程

以 VTEP2 学习到 VM1 的 MAC 过程为例: 1.VM1 发送目的地址为 VM2 的报文。 2.VTEP1 接收到报文后,进行 VXLAN 封装,并将其转发至 VTEP2。同时,VTEP1可以学习到 VM1 的 MAC 地址、VNI、入接口。 3.VTEP2 接收到报文后,对报文进行解封装。同时,VTEP2 可以学习到 VM1 的MAC 地址、VNI、入接口(为 VTEP1)。

经过上述流程,VTEP1 和 VTEP2 可以学习到 VM1 的 MAC 地址。VTEP1 和 VTEP2学习到 VM2 的 MAC 地址过程与之类似。 1.BUM 报文转发 前面描述的报文转发过程都是已知单播报文转发,如果 VTEP 收到一个未知地址的BUM 报文(广播、组播、未知单播)如何处理呢。与传统以太网 BUM 报文转发类似,VTEP 会通过泛洪的方式转发流量。

VXLAN 网络中报文转发过程

以上图中 VM1 想向 VM2 发送报文为例,因为 VM1 不知道VM2 的 MAC 地址,所以会发送 ARP 广播报文请求 VM2 的 MAC 地址。 1.VM1 发送 ARP 广播请求,请求 VM2 的 MAC地址。 2.VTEP1 收到 ARP 请求后,因为是广播报文,VTEP1 会在该 VNI 内查找所有的隧道列表,依据获取的隧道列表进行报文封装后,向所有隧道发送报文,从而将报文转发至同子网的 VTEP2 和 VTEP3。 3.VTEP2 和 VTEP3 接收到报文后,进行解封装,得到 VM1 发送的原始 ARP报文,然后转发至 VM2 和 VM3。 4.VM2 和 VM3 接收到 ARP 请求后,比较报文中的目的 IP 地址是否为本机的IP地址。VM3 发现目的IP不是本机IP,故将报文丢弃;VM2 发现目的IP是本机IP,则对 ARP 请求做出应答。 由于此时 VM2 上已经学习到了 VM1 的 MAC 地址,所以 ARP 应答报文为已知单播报文,转发流程与前文描述的一致,此处不在赘述。 5.VM1 收到 VM2 的 ARP 应答后,就可以学习到VM2的MAC 地址。后续的转发流程同已知单播转发流程一致。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
UDP协议报文格式
今天让我们来认识一下UDP协议的报文格式UDP协议和TCP协议同位于传输层,介于网络层(IP)和应用层之间:UDP数据部分为应用层报文,而UDP报文在IP中承载。如下图:!(https://oscimg.oschina.net/oscnet/74e201602c3a16bf23339e6347610af1f67.png)UDP报文格式
Wesley13 Wesley13
3年前
DHCP协议报文
DICP协议采用客户端服务器方式进行交互,其报文格式共有8种,由报文中“DHCPmessage0pe”字段的值来确定,后面括号中的值即为相应类型的值,具体含义如下1、DHCPDiscover报文,是客户端开始DHCP过程的第一个报文。2\.DHCPOfer报文,是服务器对DHCP\_Discover报文的响应3\.D
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Docker Overlay 介绍
OverlayNetworkOverlayNetwork:属于Docker网络驱动,基于VXLAN封装实现Docker原生Overlay网络。OverlayNetwork:覆盖网络,在基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路连接起来。Overla
Stella981 Stella981
3年前
Docker容器跨主机通信
一、Docker主机间容器通信的解决方案  Docker网络驱动1.Overlay:基于VXLAN封装实现Docker原生Overlay网络2.Macvlan:Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识一个VLAN。容器接口直接连接Docker主机3.网卡接口:
Stella981 Stella981
3年前
Linux应急响应(二):捕捉短连接
0x00前言​短连接(shortconnnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。在系统维护中,一般很难去察觉,需要借助网络安全设备或者抓包分析,才能够去发现。0x01应急场景​
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Linux Bridge和Tap关系详解
Bridge(桥)是Linux上用来做TCP/IP二层协议交换的设备,与现实世界中的交换机功能相似。Bridge设备实例可以和Linux上其他网络设备实例连接,既attach一个从设备,类似于在现实世界中的交换机和一个用户终端之间连接一根网线。当有数据到达时,Bridge会根据报文中的MAC信息进行广播、转发、丢弃处理。
一条数据包从收到发--交换芯片篇(一)
从程控交换设备的软处理到交换芯片的硬件pipeline,从基于dpdk的软件转发到可编程的pipeline硬转发,从Kbps带宽能力到Tbps能力,网络转发设备的发展带来大带宽能力的同时,其技术架构也是经历了软硬软硬的周期,可谓完美演绎了“十年河东十年河西”“各领风骚数年”的传奇。但对于底层网络而言,其七层架构、数据包结构、协议标准基本没有变化,即对于网络转发设备而言,数据报文处理架构可以做通用设计抽象,转发细节的差异与演进大多体现在报文处理逻辑的优化,内部报文高速传递的优化等。
Linux VXLAN小实验
VXLAN在云网络中应用十分广泛。本文介绍一种方法在两台Linux主机之间建立简单的VXLAN隧道,以供学习、研究之用。
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
727
粉丝
15
获赞
40