号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
你们好,我的网工朋友
不知道大家有没有想过这个问题:VXLAN网络中的报文是如何转发的?
在基本的二三层转发中,二层转发依赖的是MAC表,三层转发依赖的是FIB表。
在VXLAN中,其实也是同样的道理。
今天就来讲讲报文在VXLAN网络中的转发流程,以VXLAN隧道的建立为例,分别介绍同子网内、跨子网间是如何进行通信的,看完再也没疑问了
今日文章阅读福利:《 华为官方出品-网络协议报文格式大全 》
说到报文,分享一个不错的资料给你,私信我,发送暗号“报文”,限量获取。
如果想从0到1系统学习,也欢迎私信我,告知学习意向,我会为你推荐最适合你的方式。
01 集中式VXLAN中同子网互通流程
如下图所示,VM_A、VM_B和VM_C属于同网段。此时,VM_A想与VM_C进行通信,首次进行通信,报文进行如下处理:
1、VM_A上没有VM_C的MAC地址,所以会发送ARP广播报文请求VM_C的MAC地址。
2、VTEP_1收到ARP请求后,先进行VXLAN封装,然后将VXLAN报文复制多份分别发送给所有的对端VTEP。
3、报文到达VTEP_2和VTEP_3后,VTEP对报文进行解封装,得到VM_A发送的原始报文。VTEP_2和VTEP_3在对应的二层域内广播。
4、当VM_C收到该请求报文后,发现目的IP与本机IP相同,因此VM_C将进行ARP应答。而其他VM收到该请求报文会丢弃。
经过上述过程,VM_A和VM_C均已学习到了对方的MAC地址。之后,VM_A和VM_C将采用单播方式进行通信。
02 集中式VXLAN中跨子网互通流程
跨子网报文转发需要通过三层网关实现。如下图所示,VM_A、VM_B属于不同网段。VM_A与VM_B进行通信的报文处理过程如下:
1、VM_A先将数据报文发送给VTEP_1。
2、VTEP_1收到后进行VXLAN封装,然后将VXLAN报文发送给对端VTEP_3。
3、VTEP_3收到VXLAN报文后进行解封装,发现目的MAC是三层网关接口BDIF的MAC地址MAC_10,而目的IP地址为IP_B(10.1.20.1),因此需要进行三层转发。
4、VTEP_3根据路由表查找到IP_B的下一跳,发现出接口为BDIF 20,VTEP_3将报文重新进行VXLAN封装,然后将VXLAN报文发送给对端VTEP_2。
5、报文到达VTEP_2后,VTEP_2对报文进行解封装,并将其发送给VM_B。
BDIF接口的功能与VLANIF接口类似,是基于BD创建的三层逻辑接口,用以实现不同子网之间的通信,或VXLAN网络与非VXLAN网络之间的通信。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部