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

前序:之前的两篇文章为大家介绍了NSX的基本架构以及NSX的安装流程,从NSX Manager到NSX Controller 再到逻辑网络,我都尽可能详细地给大家过了一遍。之所以坚持要写这部分,是因为在上一篇的《VMware NSX原理与实践——NSX-V安装》中的操作步骤中涉及到一些概念,如组播、单播、虚拟交换机、逻辑交换机等,在这篇文章中我将为大家一一解释。
一、vSphere虚拟交换机
之所以先讲虚拟交换机,是因为vSphere 的虚拟交换机是NSX的逻辑交换机的基础。简单地说,NSX逻辑交换基于VDS之上,使用overlay技术,实现了NSX网络虚拟化环境中的二层流量转发功能。
虚拟交换机是负责连接虚拟机与物理网络的交换机。虚拟交换机分为标准交换机和分布式交换机。标准交换机运行在单一的ESXI主机上,而分布式交换机运行在vCenter上。如果将服务器的物理网卡(上行链路适配器)连接到物理的交换机,那么就能实现虚拟机与外界物理网络的通信。如下图所示:
在这里插入图片描述
至于VMware vSphere分布式交换机其实与标准交换机区别并不是很大,只是把连接虚拟机的范围从一台ESXI扩展到了整个vCenter。再多的文字也不如来张图实在,所以我们看图:
在这里插入图片描述
通过上图,可以看的很明白,如果还是使用标准交换机,那么两台ESXI主机就要有两台标准交换机,如果是五台,十台呢?但是如果采用分布式交换机,哪怕有20台,或者更多,一台分布式交换机也足够,而且如果使用标准交换机,那么每一台标准交换机都需要配置,很麻烦,但是如果采用分布式交换机,只需配置一次就可以了。
二、NSX虚拟交换机(逻辑交换机)
这里所说的NSX逻辑交换机,我认为就是在ESXI主机中安装了NSX的内核模块后,能被NSX Controller控制的vSphere 分布式交换机。这也就解释了为什莫说NSX的逻辑交换机是以vSphere的分布式交换机为基础。
下面的图展示了在物理网络上运行的NSX逻辑交换机。从图中,可以看出,物理网络与逻辑网络分离后的结构示意图。逻辑网络通过使用VXLAN OVERLAY,允许二层网络在不同的服务器机柜中横向扩展(甚至可以跨越不同的数据中心),这种扩展与底层的架构是完全独立的。

在这里插入图片描述
接下来,为大家解释一下上面出现的粗体字“VXLAN”,VXLAN是将以太网报文封装在UDP传输层的一种隧道转发方式。是不是感觉很难理解,说的还是很含蓄,那么换个简单的说法:***而VXLAN可以使位于不同网络中的T1和T2两台终端在“逻辑上”位于“同一个‘网络中,因此,才能实现将VXLAN流量从本地子网传输到另一个子网。***可能好多朋友一直无法区分它与VLAN 的区别,我来说一说。**VLAN是将同一网络划分为多个虚拟子网,在链路层的层次上实现的广播域的隔离,从而防止了报文的泛滥。这两句话,可以说是简单明了通俗易懂地对这两个名词进行了对比和解释,如果各位读者还想了解的更具体些,可以去网上查一查资料,还是很多的。
也许大家还是对上面所说的一大堆理论知识感到头痛,那咱们就举一个具体的例子,咋样?????
在VXLAN Overlay中,属于不同主机的虚拟机建立二层连接的过程如下:
1、VM1发起一个去往同一逻辑子网的VM2的以太网报文请求;
2、VM1所在的ESXI主机定义了一个VTEP,在流量被发送到传输网络之前,对流量进行封装;
3、传输网络只需知道源和目的ESXI主机的IP地址,就可以在两个地址之间建立VXLAN隧道;
4、目的主机收到了VXLAN报文,对其进行解封装,并确认它所在的二层
子网
(利用VNI 标识)
5、最终,这个报文被传送到VM2。

这里是引用

								          上行报文处理:上行报文是指vtep收到的从服务器侧发来需要通过VXLAN封装的报文。

1、报文解析:对收到的上行报文进行解析,得到后续处理所需要的各种信息如外层IP头、以太网头,以及VXLAN报头等;
2、入接口信息获取:根据报文接收端口的配置信息来决定是否需要进行VXLAN上行报文处理;如果需要进行VXLAN上行报文的处理,则还将获得VXLAN ID的映射关系,该VXLAN ID的映射关系可通过VLAN或源MAC地址来标记VXLAN ID;
3、VXLAN ID确定:根据之前获得的VXLAN ID的映射关系进行查表,如VXLAN ID用VLAN标记时,用入接口 ID和VLAN ID作为关键字进行查找,在查找结果的输出中可以获得转发需要的VXLAN ID;
4、二层转发查表:根据报文的目的MAC地址和VXLAN ID共同作为关键字进行查表,获得该报文的目的地以及编辑方式。(如果是组播报文,则针对每一个组播组成员,获得对应的目的地以及编辑方式,后续处理将针对每一个组播组成员依次处理;在二层转发表查表模块中,通常需要设置一条默认条目,这样在查表的时候必然可以返回结果。通常情况下,广播、组播和未知单播报文都可以使用该条目,其目的是使当前报文洪泛到虚拟转发域中的所有成员);
5、出口信息获取:根据转发表决定的目的地获取出接口的信息;
6、报文封装:根据转发表决定的封装信息,进行相应的封装,包括VXLAN头、UDP头、外层IP头、外层以太网头的封装;
7、报文转发:从相应的目的端口发送出去,从而完成VXLAN上行报文的处理过程。

                                       **下行报文处理:下行报文是指vtep收到从IP网络发来的带有VXLAN封装的报文。**

1、报文解析:对收到的报文进行解析,得到后续处理所需要的各种信息如外层IP头、以太网头,以及VXLAN报头等;
2、入接口信息获取:根据报文接收端口的配置信息以及当前报文的封装结构,来决定是否需要进行VXLAN下行报文处理,只有当报文具有VXLAN封装,并且外层目的IP是本接入点需要处理的时候,才会进入后续的解封装,否则仅仅执行普通的路由处理;
3、解封装:根据入接口信息,使用外层目的IP、源IP和封装在报文中的VXLAN ID—起作为关键字进行查表,获得解封装信息。然后去掉报文的外层IP头、以太网头,以及VXLAN报头,并且获得VXLAN报头中所携带的VXLAN ID;
4、二层转发表查表:根据内层的目的MAC地址和封装在报文中的VXLAN ID共同作为关键字进行查表,得到报文的处理信息,该处理信息包括目的端口和编辑信息,由于此时不需要对报文进行封装,因此只可能有一些编辑信息,如VLAN。(当查表结果是组播的话,则需要进行组播复制,然后获取每一个组播成员的目的端口和编辑信息。在二层转发表查表模块中,通常需要设置一条默认条目,这样在查表的时候必然可以返回结果。通常情况下,广播、组播和未知单播报文都可以使用该条目,其目的是使当前报文洪泛到虚拟转发域中的所有成员。)
5、出接口信息获取:根据查表的结果,得到需要转发出去的端口信息;
6、报文编辑:根据查表结果和目的端口的配置,对内层报文进行必要的编辑,然后交给报文转发模块进行转发。在报文编辑模块中,最主要的作用是根据VXLAN ID映射出在目的端口虚拟机上所对应的VLAN ID,以便使服务器可以识别,发送给对应的虚拟机;
7、报文转发:从相应的目的端口发送出去,从而完成VXLAN下行报文的处理过程。
————————————————
ARP报文转发过程:
流程图在下面:哈哈哈哈哈哈哈
1、主机A向主机B发出ARP Request,Src MAC为MAC-A,Dst MAC为全f;
2、ARP Request报文到达vtep-1后,vtep-1对其封装VXLAN包头,其中外层的Src MAC为vtep-1的MAC-1,Dst MAC为组播mac地址, Src ip为vtep-1的IP-1,Dst ip为组播ip地址,并且打上了VXLAN VNID:10。由于vtep之间是三层网络互联的,广播包无法穿越三层网络,所以只能借助组播来实现arp报文的泛洪。通常情况下一个组播地址对应一个VNID,同时可能会对应一个租户或者对应一个vrf网络,通过VNID进行租户之间的隔离。
3、打了VXLAN头的报文转发到了其他的vtep上,进行VXLAN头解封装,原始的ARP Request报文被转发给了vtep下面的主机,并且在vtep上生成一条MAC-A(主机A的mac)、VXLAN ID、IP-1(vtep-1的ip)的对应表项;
4、主机B收到ARP请求,回复ARP Response,Src MAC:MAC-B、Dst MAC:MAC-A;
5、ARP Response报文到达vtep-2后,被打上VXLAN的包头,此时外层的源目mac和ip以及VXLAN ID是根据之前在vtep-2上的MAC-A、VXLAN ID、IP-1对应表项来封装的,所以ARP Response是以单播的方式回复给主机A;
6、打了VXLAN头的报文转发到vtep-1后,进行VXLAN头的解封装,原始的ARP Response报文被转发给了主机A;
7、主机A收到主机B返回的ARP Response报文,整个ARP请求完成。
在这里插入图片描述
———————————————
以上部分转载于CSDN博主「老七叔叔」,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_31828101/article/details/50504656

	总结:这次为大家讲了讲逻辑交换机,其实还有很多东西我也不是很清楚,所以文中后半部分引用了大佬的部分文章,我正在努力学习,随着技术的进步,我会随时更新这部分内容的。还望见谅。
发布了19 篇原创文章 · 获赞 17 · 访问量 646

猜你喜欢

转载自blog.csdn.net/Gao068465/article/details/103792449