0
点赞
收藏
分享

微信扫一扫

VMware NSX原理与实践----逻辑交换(三)

前序:上一篇主要给大家讲解了通信的三种方式,单播、组播和广播,通过微信发消息的生动例子大家应该已经掌握了这三种方式的区别,今天要给大家讲的是虚拟网络与虚拟网络之间以及虚拟网络与物理网络的通信。
一、虚拟网络与虚拟网络之间的通信流程
下面会给大家看一张图,然后我会通过这张图给大家详细讲解虚拟网络与虚拟网络之间的通信流程;先简单分析这张图,图中有三台ESXI主机,主机一和主机二上各运行着一台虚拟机,三台主机之间拥有着共同的分布式交换机。但是要注意看到一点:信息不会发送到ESXI3,为什莫??因为它没有属于VXLAN5001的虚拟机。
VMware NSX原理与实践----逻辑交换(三)_封装
接下来探讨一下通信流程:
1、虚拟机1会发送一个ARP请求,也就是二层广播包,希望知道虚拟机2的IP地址与MAC地址。
2、这个请求在传输的过程中,被ESXI2主机拦下,并生成了一个控制平面请求,要求NSX Controller提供虚拟机2的IP地址与MAC地址。
3、NSX Controller接收到这条请求
4、NSX Controller会去自己的本地ARP表中检索相关信息
5、检索成功之后,NSX Controller会把控制平面报告的信息传给ESXI1
6、ESXI1主机收到控制平面发来的信息之后,会根据新的信息更新自己的表项(至此ESXI1有了虚拟机2的信息,ESXI1的本地表项被更新
7、ESXI1主机生成一个支持虚拟机2 的ARP回应,并由虚拟机2直接传递给虚拟机1 。
8、上述工作完成(虚拟机1中有了ARP缓存)之后,就会开始进行数据流量的转发。
9、虚拟机1会生成一个去往虚拟机2 的包,在这之前,ESXI1已经通过NSX Controller的ARP报告知道了虚拟机2的位置
10、虚拟机1发出的原始报文就会被封装成一个VXLAN包,送往ESXI2的VTEP(10.1.1.11)
11、ESXI2主机收到包将其进行解封装,解封装之后,通过对外部IP头部的信息,它能学习到虚拟机的相关信息(MAC、IP、ESXI1的VTEP),至此ESXI2有了虚拟机1的信息,ESXI2的本地表项被更新
12、报文最终被传递给虚拟机2
13、双方都更新了本地表项,流量可一双向传递。
总体来看这个流程并不复杂,还是用微信举个例子:可以简单的理解为A和C想要见面,但是双方不认识,也不知道对方在哪里。A想要知道C的位置,所以需要B(nsx controller)就把C的位置信息(IP和MAC)发给A。这时A就了解了C的位置信息,但是C不知道A的位置信息。接下来A给C发了定位信息(封装后的报文信息),C回应收到,此时C也知道了A的位置信息(对报文进行解封装)。双方可以去找对方了(双向通信)。

二、虚拟网络与物理网络之间的通信
下面会给大家看一张图,然后我会通过这张图给大家详细讲解虚拟网络与物理网络之间的通信流程;先简单分析这张图,图中有三台ESXI主机,主机一和主机二上各运行着一台虚拟机,三台主机之间拥有着共同的分布式交换机。
这里说到的“物理网络”与大家理解的外部物理网络不同,其网络不是外部的,而是与数据中心内部应用有关的。大家都知道,通过Edge边界服务网关使用三层路由协议可以实现南北向的通信,但是有些流量需要在物理网络和逻辑网络之间进行二层通信,所以此时无法使用NSX Edge路由。
VMware NSX原理与实践----逻辑交换(三)_封装_02
接下来探讨通信流程:
1、虚拟机1生成一个ARP请求,希望得到物理服务器的MAC地址和IP地址。
2、这时ESXI1主机截获了这个请求,并向NSX Controller生成了控制平面请求,NSX Controller并没有物理服务器的MAC与IP(假设物理服务器刚刚连接到网络,尚未运行过流量),这时就需要ESXI1主机在VXLAN5001中进行ARP泛洪。
3、此时ARP请求被发送到ESXI2和ESXI3,而ESXI2的虚拟机2和ESXI3的桥接实例都连接到了VXLAN5001。那么ESXI1和ESXI2就会学习到虚拟机1 的相关信息。
4、ESXI3的桥接实例会将这个二层广播包发送给了二层物理网络
5、广播包在物理网络VLAN100中进行了泛洪,所有的二层交换机通过传统方式学习到了虚拟机1的MAC地址。
6、ARP请求最终到达了物理服务器,接下来物理服务器会将ARP回应返回虚拟机。
7、物理服务器会生成单播ARP回应,准备发给虚拟机1
8、携带了学到物理服务器的MAC(MAC3)地址的二层交换机执行数据转发任务,使得ARP回应在物理交换机中进行交换
9、运行与ESXI3上的桥接实例接收到ARP回应,同时学习到物理服务器的MAC(MAC3)地址
10、ESXI3将流量进行封装并发送给ESXI1
11、ESXI1收到报文之后,会进行解封装,将MAC3与运行了VXLAN5001的二层桥接实例的VTEP关联信息添加到本地的表项中
12、ESXI1生成了物理服务器的ARP回应(MAC3的源MAC地址),并传递给虚拟机1.之后就可以双向通信了。

三、总结
认真理解,就会发现虚拟网络与虚拟网络之间的通信和虚拟网络与物理网络之间的通信大同小异,基本上是换汤不换药。将这些流程理解清楚会更容易学习。加油。


举报

相关推荐

0 条评论