vxlan学习(一)----------分布式VXLAN IP网关

. 简介

图3-5 分布式VXLANIP网关示意图

vxlan学习(一)----------分布式VXLAN IP网关_第1张图片

 

采用集中式VXLANIP网关方案时,不同VXLAN之间的流量以及VXLAN访问外界网络的流量全部由集中式VXLAN IP网关处理,网关压力较大,并加剧了网络带宽资源的消耗。如3-5所示,在分布式VXLAN IP网关方案中,每台VTEP设备都可以作为VXLAN IP网关,对本地站点的流量进行三层转发,很好地缓解了网关的压力。

图3-6 分布式VXLANIP网关部署示意图

vxlan学习(一)----------分布式VXLAN IP网关_第2张图片

 

3-6所示,在分布式VXLAN IP网关组网中,所有的分布式VXLAN IP网关(GW)上都需要创建VSI虚接口,并为不同GW上的相同VSI虚接口配置相同的IP地址,作为VXLAN内虚拟机的网关地址。在分布式VXLAN IP网关上还需要开启本地代理ARP功能。边界网关(Border)上也需要创建VSI虚接口,并配置IP地址。

采用分布式VXLANIP网关组网方案时,三层流量通过查找ARP表项进行三层转发。

2. 相同VXLAN内不同站点的虚拟机通信过程

3-6所示,以VM 1访问VM 4为例,相同VXLAN内不同站点的虚拟机的通信过程为:

(1)     VM 1广播发送ARP请求消息,获取VM 4的MAC地址。

(2)     GW 1收到ARP请求消息后,学习VM 1的ARP信息,并代理应答该ARP请求,即:向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)     VM 1学习到VM 4的MAC地址为GW 1上VSI虚接口10的MAC地址。

(4)     GW 1将接收到的ARP请求消息中的源MAC地址修改为VSI虚接口10的MAC地址,对该消息进行VXLAN封装后,将其发送给VXLAN内的所有远端VTEP。

(5)     GW 2对VXLAN报文进行解封装后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 1上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口10的MAC地址,在VXLAN 10的本地站点内进行广播。

(6)     VM 4收到ARP请求后,学习VM 1的ARP信息(IP为10.1.1.11、MAC为GW 2上VSI虚接口10的MAC),并发送ARP应答消息给本地网关GW 2。

(7)     GW 2从VM 4收到ARP应答消息后,学习VM 4的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口10的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。

(8)     GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 4的ARP信息(IP为10.1.1.12、MAC为GW 2上VSI虚接口10的MAC、出接口为接收该VXLAN报文的Tunnel接口)。

(9)     通过上述步骤完成ARP信息的学习后,VM 1发送给VM 4的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 4。

3. 不同VXLAN间不同站点的虚拟机通信过程

3-6所示,以VM 1访问VM 5为例,不同VXLAN的虚拟机的通信过程为:

(1)     VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。

(2)     GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)     VM 1将访问VM 5的报文发送给GW 1。

(4)     GW 1在所有VXLAN内向本地站点和远端站点广播发送ARP请求,获取VM5的MAC地址。ARP请求消息中的源IP地址为20.1.1.1、源MAC地址为本地VSI虚接口20的MAC地址。

(5)     GW 2从VXLAN隧道上接收到VXLAN报文,对其进行解封装后,学习GW 1的ARP信息(IP为20.1.1.1、MAC为GW 1上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口),并将ARP请求消息中的源MAC修改为本地VSI虚接口20的MAC地址,在VXLAN 20的本地站点内广播该ARP请求消息。

(6)     VM 5收到ARP请求后,学习GW 2的ARP信息(IP为20.1.1.1、MAC为GW 2上VSI虚接口20的MAC),并发送ARP应答消息给本地网关GW 2。

(7)     GW 2从VM 5收到ARP应答消息后,学习VM 5的ARP信息,将ARP应答消息中的源MAC修改为本地VSI虚接口20的MAC地址,并根据已经学习到的ARP表项,为ARP应答消息添加VXLAN封装后发送给GW 1。

(8)     GW 1对VXLAN报文进行解封装后,根据收到的ARP应答消息学习VM 5的ARP信息(IP为20.1.1.12、MAC为GW 2上VSI虚接口20的MAC、出接口为接收该VXLAN报文的Tunnel接口)。

(9)     通过上述步骤完成ARP信息的学习后,VM 1发送给VM 5的报文,根据已经学习到的ARP信息进行转发:首先发送给GW 1;GW 1对其进行VXLAN封装后,将其发送给GW 2;GW 2解封装后,将其发送给VM 5。

4. 虚拟机与外部网络的三层通信过程

虚拟机要想与外部网络进行三层通信,需要在接入虚拟机的本地分布式VXLAN IP网关上指定流量的下一跳为Border,可以通过如下方式来实现:

·     在本地分布式VXLANIP网关上配置静态路由,指定路由下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。

·     在本地分布式VXLANIP网关上配置策略路由,设置报文的下一跳为Border上同一个VXLAN对应VSI虚接口的IP地址。

3-6所示,以VM 1访问外部网络内的主机50.1.1.1为例,虚拟机访问外部网络的三层通信过程为:

(1)     VM 1广播发送ARP请求消息,获取网关10.1.1.1的MAC地址。

(2)     GW 1收到ARP请求消息后,学习VM 1的ARP信息,并向VM 1发送ARP应答消息,应答的MAC地址为VSI虚接口10的MAC地址。

(3)     VM 1将访问外部网络的报文发送给GW 1。

(4)     GW 1接收到报文后,根据策略路由判断报文的下一跳地址为10.1.1.2。GW 1在VXLAN10内向本地站点和远端站点广播发送ARP请求消息,获取10.1.1.2对应的MAC地址。

(5)     Border对VXLAN报文进行解封装,学习GW 1的ARP信息,并通过VXLAN隧道回复ARP应答消息。

(6)     GW 1对VXLAN报文进行解封装,并获取到10.1.1.2的ARP信息。

(7)     GW 1根据获取到的信息为VM 1发送的报文封装链路层地址(10.1.1.2对应的MAC地址),并通过VXLAN隧道将报文发送给Border。

(8)     Border对接收到的报文进行解封装后,对报文进行三层转发。


来自:http://www.h3c.com/cn/Service/Document_Center/Switches/Catalog/S12500/S12500X-AF/Configure/Operation_Manual/H3C_S12500X-AF_CG(R26xx)-6W101/15/201703/976464_30005_0.htm


你可能感兴趣的:(网络技术)