VMware NSX原理与实践----逻辑路由及二层网络(二)
NSX逻辑路由器有自己的接口称之为LIF接口。在功能上与物理路由器的接口基本一样。然后在LIF上配置了IP地址,并将其连接到逻辑交换机的端口或分布式的端口组后,最终连接每个子网的NSX逻辑路由器也就有了自己的ARP表。在LIF上还会引入virtual MAC(vMAC)的概念,它是LIF 的MAC地址,在物理环境中不可见,只能在虚拟化环境中被识别。虚拟机使用vMAC作为作为默认网关的MAC地址。而
前序:上一篇给大家讲了讲逻辑路由器的基础概念以及逻辑路由器的优点,因为在后面的讲解中偶然提到“二层网络”,所及临时加了一些关于二层网络的相关知识,当然了这些资料也是我在网络上找到的,感谢网友的无私奉献。所以本节继续上次未讲完的内容。
一、NSX逻辑接口
NSX逻辑路由器有自己的接口称之为LIF接口。在功能上与物理路由器的接口基本一样。然后在LIF上配置了IP地址,并将其连接到逻辑交换机的端口或分布式的端口组后,最终连接每个子网的NSX逻辑路由器也就有了自己的ARP表。在LIF上还会引入virtual MAC(vMAC)的概念,它是LIF 的MAC地址,在物理环境中不可见,只能在虚拟化环境中被识别。虚拟机使用vMAC作为作为默认网关的MAC地址。而对于物理交换机的上连端口,其MAC地址叫pMAC,这种MAC地址实在物理环境中可以识别的。
逻辑接口有下面两种配置方式。
1、VXLAN LIF:用于逻辑路由器连接逻辑交换机
2、VLAN LIF:用于逻辑路由器连接分布式的端口组,端口组内可能包含一个或多个VLAN。
LIF连接到VLAN时,物理网络可能无法确认不同的主机中,哪一台携带了VLAN LIF的MAC地址。为了解决这个问题,每台主机都会拥有VLAN LIF 的pMAC地址,但是只有一台主机会对VLAN LIF的ARP请求做出回应。这个做出回应的主机称为DI,它是由NSX Controller根据算法自动选择的。DI会发送ARP请求到其他的主机。对于VLAN LIF,所有的入向流量都是由DI进行接收的;而对于出向流量,则不需要DI进行处理。当DI发生故障时,NSX Controller会将另一个主机选为DI,并通知其他所有主机。
LIF连接到VXLAN 时,LIF也就有了vMAC,DI就不会存在,因为对于物理网络,vMAC是不可见的。
二、NSX集中逻辑路由
NSX路由有两中方式,集中式路由和分布式路由。集中式路由用于处理南北向通信,它允许逻辑网络和外部的三层网络进行路由通信,除此之外,NSX Edge还能提供DHCP、NAT、VPN、防火墙和负载均衡。有一点要注意,我说集中式路由用于处理南北向通信,但并不是说它不能处理东西向通信,只是不够优化,下面我会用图文给大家展示用它处理东西向路由时的流程,请注意与后面会讲到的分布式路由的处理方式作比较。
上面的图描述的就是集中式路由处理东西向流量时的流程:
1、主机1上的虚拟机1想要和主机1上的虚拟机2进行通信,注意两个虚拟机处于不同的网段
2、处于VXLAN5001上的虚拟机1向分布式交换机发送原始报文,由于另一台虚拟机处于VXLAN5002,所以主机1将报文转发到了默认网关
3、安装了NSX Edge网关的主机2收到了这个报文
4、数据包被传送到了NSX Edge网关,进行路由处理。
5、网关做出选择,并将数据包传回主机1
6、主机1收到后,将数据包发送给虚拟机2.
这就是一个完整的过程,我暂时不去说它的优缺点,等下面讲完了分布式路由,大家一眼就能看出不同。
三、NSX分布式路由
分布式逻辑路由通常称为DLR,在NSX虚拟化环境中,分布式路由的控制平面是由NSX Controller和DLR-C-VM一起提供的,其中DLR-C-VM以虚拟机的形式安装在vSphere环境中。
接下来我会举两个例子分别是相同主机内连接不同网段的两台虚拟机的通信与不同主机内连接不同网段的两台虚拟机的的通信。
同一主机内
1、同一ESXI主机内,属于VXLAN5001的虚拟机1要与属于VXLAN5002上地虚拟机2进行通信、
2、虚拟机1向默认网关(位于内核之上)发送了一个携带三层IP地址的报文,默认网关根据目的地址确认了目的地址所属的网段
3、默认网关检查了ARP表,并确认了目的MAC地址
4、由于虚拟机2与虚拟机1位于同一个主机,默认网关直接将报文传递给虚拟机2
下图中清晰地展现了这个流程:
不同主机内
1、不同的ESXI主机内,属于VXLAN5001的虚拟机1要与属于VXLAN5002上地虚拟机2进行通信,发出了数据包。数据包被发送到虚拟机1的本地网关接口所在的分布式路由器。
2、在本地的分布式路由进行查询,确认目的网段直接连接到LIF2。另外LIF2中的ARP表的查询也会确认其MAC地址与虚拟机2 的IP地址关联,注意如果ARP信息不可以用,那么分布式路由器就会在VXLAN5002上生成一个ARP请求,以确认需要映射的信息。
3、本地的MAC地址表会进行二层的查询,以确认数据包是否到达虚拟机2。确认完成后,本地就会进行VXLAN 的封装,并发送到主机2的VTEP.
4、主机2对数据包进行解封装,并在关联了VXLAN5002的MAC地址表中进行二层查询
5、数据包最终抵达虚拟机2
总结:通过上面的讲解,应该很容易的比较出同一主机内,位于不同网段的虚拟机进行通信时,用分布式路由要优于使用集中式路由。而且分布式路由也可以用于处理南北向流量,只不过同样是类似于用集中式路由处理东西向流量不够优化。总体来说,各有各的优缺点,都有适合各自的地方。
更多推荐
所有评论(0)