SDN VMware NSX网络原理与实践-NSX-V 解决方案基本架构【2.0】

4.1.4 NSX 中 VXLAN 的单播复制模式

        其实在 NSX 中,默认的 VXLAN 流量复制方式就是单播模式。单播模式的实现方式与 组播模式相反,它实现了逻辑网络和物理网络的完全解耦。在单播模式下, ESXi 主机被分 割成不同的组,这些组是基于 VTEP 端口所在的 IP 子网的,也就是 VTEP Segment。每一 个 VTEP Segment 中的 ESXi 主机都会充当单播隧道终结点(Unicast Tunnel End Point, UTEP)的角色。源 UTEP 的职责是将封装后的流量通过单播复制给本地的 VTEP 或远端的 UTEP。目的 UTEP 的职责是从源 VTEP 接收封装流量,再将封装流量通过单播复制到本地 的每一个 VTEP。在单播模式下,无需在底层物理网络配置任何组播。

        为了优化单播模式下的复制行为,仅当至少有一个活跃的虚拟机连接到逻辑交换机本 地子网,并且该虚拟机所属的逻辑子网与目的地址相同时, UTEP 才会向 ESXi 主机复制流 量。同样,只有当至少一个活跃的虚拟机连接到远端的逻辑网段时,源 ESXi 主机才会向 远端的 UTEP 发送流量请求。 在图 4.9 中, BUM 流量在单播模式下的复制过程如下。

1.在图 4.9 中,有 4 个虚拟机连接到逻辑交换机,且都属于 VXLAN 5001 网段。虚拟 机 1 生成一个 BUM 报文,希望发送到其他所有虚拟机。

2. ESXi-1 通过控制平面中的 NSX Controller 节点查询了本地 VTEP 表,确定了需要将 数据包复制到本地子网的 VTEP(ESXi-2)和远端网段的 UTEP(ESXi-3 和 ESXi-4)。单播 副本在发送到远端的 UTEP 时,在 VXLAN 头部增加了一个特殊的比特位(“本地复制” 比 特位)作为特征,用来告知目的 UTEP 这个报文来自远端的 VTEP 网段,并可能需要在接收 它之后在本地进行复制。在存在多个目的 UTEP 的情况下, 报文会只选择一个作为接收方。

3.远端 UTEP(ESXi-3)接收到了这个报文,同样通过控制平面中的 NSX Controller 节点查询了本地 VTEP 表,并将其复制到连接到本地 VTEP Segment 且至少有一个活跃并 属于 VXLAN 5001 的虚拟机所在的 ESXi 主机(ESXi-4)。这里需要注意的是,如果是虚拟 机 1 生成原始的 BUM 报文,那么,就有可能选择一个不同的远端 UTEP 进行初次接收(如 ESXi-4),接收后,同样会复制给其他 ESXi 主机。

4. ESXi 主机对封装的 VXLAN 流量进行解封装,并将原始报文发送给所在的虚 拟机。 在单播模式下无需配置底层物理网络,在仅仅增加了报文 MTU(最大 1600)的情况 下,大幅减少了对底层物理网络的依赖性,非常适用于小型部署—网段较少,且每个网 段中的 VTEP 较少。但是由于需要在二层子网中多次将 VXLAN 封装报文复制到每一个 VTEP,在复制相同流量的过程中,可能会产生较高的 CPU 利用率。 这也是之前提到 NSX 网络虚拟化环境对底层网络的唯一要求是 MTU 值需要设置为 1600 字节的原因。

4.1.5 NSX 中 VXLAN 的混合复制模式

        混合模式提供了更加简易的操作方式,它无需在物理网络中配置组播,却能同时利用 二层物理交换机中的组播能力。 在混合模式中,定义了一个类似 UTEP 的组播隧道终结点(Multicast Tunnel End Point, MTEP)的角色,用于将接收到的流量复制到本地的其他 VTEP。 在图 4.10 中, 混合模式 下的工作流程如下。

1.虚拟机 1 生成了一个 BUM 原始报文,需要复制到 VXLAN 5001 下属的所有虚拟机。 在这里,组播组 239.1.1.1 需要与 VXLAN 网段进行关联,作为用于本地流量复制的组播封装。

2. ESXi-1 将报文封装为一个组播包,并发送到组播组 239.1.1.1。这时,就会自动在 二层物理网络中激活组播,以确保 VXLAN 数据包可以传递到本地 VTEP Segment 中的所 有 VTEP。在混合模式下,当虚拟机需要接收多目的流量时, ESXi 主机也会发起 IGMP 加 组信息(与组播模式类似)。

3.同时, ESXi-1 通过 NSX Controller 查询了本地 VTEP 表之后,确认了需要将报文复 制到远端网段的 MTEP(本例中是 ESXi-3)。这时候,与单播模式类似,单播副本在 VXLAN 头部增加了一个特殊的比特位作为特征,用来告知 MTEP 这个数据包来自远端的 VTEP 网 段,并需要在 MTEP 所在的本地网段进行复制。

4. MTEP 创建了一个组播包,将其发送到本地网段的所有 ESXi 主机的 VTEP。

5. ESXi 主机对封装的 VXLAN 流量进行解封装,并将原始报文发送给所在的虚拟机。 推荐在生产环境尤其是大规模部署中使用混合复制模式。

4.1.6 NSX Controller 的表项

        讨论了多目的的流量(BUM)的复制方式之后,再来讨论一下 NSX 环境中的二层通 信,这里就非常依赖于 NSX Controller 集群了。因此, 本节先讲解控制平面如何在 NSX Controller 中生成 VTEP 表、 MAC 地址表、 ARP 表。

        先来看看本地 VTEP 表是如何建立的。如图 4.11 所示,当第一台虚拟机连接到 VXLAN 网段时, ESXi 主机就会向 NSX Controller 节点生成一个携带了 VNI/VTEP 映射关系的控制 平面信息。 NSX Controller 集群收到信息后,会生成携带了这些信息的本地的 VTEP 表项, 并告知与其位于同一 VXLAN 网段内的虚拟机所在的 ESXi 主机(在这里,信息没有发送 给 ESXi-3,因为它没有属于 VXLAN 5001 的虚拟机)。之后,这些 ESXi 主机就知晓了其 下属虚拟机在本地 VXLAN 网段中的所有 VTEP 信息,然后就可以进行多目的流量复制了。

        需要ESXi主机通告给NSX Controller的第二种信息,是虚拟机连接到具体VNI的MAC 地址表。如图 4.12 所示, NSX Controller 集群在接收了 ESXi 主机发送来的信息后,建立本 地的 MAC 地址表。但是,本地的 MAC 地址表并不会像 VTEP 表项那样被 NSX Controller 发送到所有的 ESXi 主机,这就是为什么 ESXi 主机只关心本地连接虚拟机的 MAC 地址, 而不会关心其他 ESXi 主机下属的虚拟机的 MAC 地址。

         需要 ESXi 主机通告给 NSX Controller 的最后一种信息是虚拟机的 IP 地址, 它用来建 立本地的 ARP 表,并实现 ARP 抑制功能。它也和下一节将要讨论的单播通信息息相关。 ESXi 主机通过下面两种方式从本地下挂的虚拟机学习 IP 地址。

         当虚拟机通过 DHCP 获取 IP 地址时, ESXi 主机可以通过监听从 DHCP 服务器向 虚拟机发出的 DHCP 回应来收集 IP 地址。

         对于使用固定地址的虚拟机, ESXi 主机通过向虚拟机发出原始 ARP 请求来收集其 IP 地址。

如图 4.13 所示,一旦在 ESXi 主机上学习到了 IP 地址,它就会将 MAC/IP/VNI 的信息发送到 NSX Controller, NSX Controller 随后就会建立本地 ARP 表。

4.1.7 虚拟网络到虚拟网络的二层流量转发

        有了 NSX Controller 中的表项信息, NSX Controller 就可以实现 ARP 抑制的功能, 该 功能允许在虚拟机连接的二层域(VXLAN 网段)中移除可能会泛洪的 ARP 流量。由于在 二层网络中,广播流量主要是 ARP 造成的,因此通过 ARP 抑制功能移除泛洪流量能显著 提高整个网络架构的稳定性、可扩展性。 在逻辑交换机的 VXLAN 网段内,不同虚拟机之间将建立一个单播通信的过程,如图 4.14 和图 4.15 所示。

1.虚拟机 1 发出了一个 ARP 请求(二层广播包),希望与虚拟机 2 的 MAC 和 IP 地址 进行映射。

2. ESXi-1 截获了这个请求,并生成了一个控制平面请求,要求 NSX Controller 提供 MAC 地址和 IP 地址的映射信息。

3. NSX Controller 收到了控制平面请求。

4. NSX Controller 检查了与所需映射信息相关的本地 ARP 表。

5.携带了控制平面报告的映射信息被发送到了 ESXi-1。

6. ESXi-1 收到了控制平面发来的信息,并根据映射信息更新了自己本地的表项,这 样一来,虚拟机 2 的 VTEP 地址就是已知的了(本例中是 10.1.1.11)。

7. ESXi-1 生成了一个支持虚拟机 2 的 ARP 回应,并由虚拟机 2 直接传递虚拟机 1。 需要注意的是,一旦 NSX Controller 中没有映射信息,它就会将这个情况通知给 ESXi-1,使得可以在 VXLAN 5001 网段中进行 ARP 的泛洪,以便 ARP 请求可以抵达虚拟 机 2。泛洪的方式和过程已经在讲解多目的流量复制方式时提到,这里不再赘述。 一旦上述工作完成,虚拟机 1 中就有了 ARP 缓存,它就会将数据流量发送到虚拟机 2, 转发过程如图 4.15 所示。

1.虚拟机 1 生成了一个直接去往虚拟机 2 的数据包。

2. ESXi-1 从 NSX Controller 的 ARP 报告中知晓了虚拟机 2 的位置,就可以将虚拟机 1 发出的原始报文封装成一个 VXLAN 包,送往 ESXi-2(10.1.1.11)的 VTEP。

3. ESXi-2 收到这个包并将其解封装。通过外部 IP 头部的信息,它学习到了虚拟机 1 的位置(通过虚拟机 1 的 MAC 地址和 IP 地址与 ESXi-1 的 VTEP 关联信息)。

4.报文最终被传递给虚拟机 2。 这时候, ESXi-1 和 ESXi-2 就都有了本地的表项,流量可以进行双向传递。

4.1.8 NSX 逻辑交换机的 QoS QoS

(Quality of Service,服务质量)是指一个网络能够利用一些技术,为指定的网络 通信提供更好的服务能力,用来解决网络延迟和阻塞等问题。尤其是针对关键应用和多媒 体应用时,这个技术就非常重要。当网络发生拥塞时, QoS 能确保重要的业务流量不会延 迟或丢弃,同时保证网络的高效运行。 通常, QoS 提供以下三种服务模型:

 Best-Effort Service(尽力而为服务模型);

 Integrated Service(综合服务模型,简称为 Int-Serv);

 Differentiated Service(区分服务模型,简称为 Diff-Serv)。 Best-Effort 服务模型是一个单一的服务模型,也是最简单的服务模型。对于 Best-Effort 服务模型,网络尽最大的可能性来发送报文。但对延迟、可靠性等性能不提供任何保证。 Best-Effort 服务模型是网络的默认服务模型,通过 FIFO(first in first out,先入先出)队列 来实现。它适用于绝大多数网络应用,如 FTP、 E-Mail 等。

        Int-Serv 服务模型是一个综合服务模型,它可以满足多种 QoS 需求。该模型使用资源预留 协议(RSVP), RSVP 运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗 资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的 服务质量区分。但是, Inter-Serv 模型对设备的要求很高,当网络中数据流的数量很大时,设 备的存储和处理能力会遇到很大的压力。另外, Inter-Serv 模型可扩展性较差。

         Diff-Serv 服务模型是一个多服务模型,它可以满足不同的 QoS 需求。与 Int-Serv 不同,它 不需要通知网络为每个业务预留资源。 Diff-Serv 的区分服务实现简单,扩展性较好。 要实现 QoS,需要在网络中使用如下两种方式来处理流量。

         Class of Service(CoS): CoS 是一种二层标签。如图 4.16 所示,在二层帧结构中, 802.1Q 头部包含了 CoS 信息。前 16 个比特一般是 0x8100,这意味着这个头部包含 了 VLAN 标签。 接下来的 3 比特就是 CoS,指定了从 0 到 7 之间的优先级,通常称 之为 CS0 到 CS7,通过这些不同的优先级值可以对网络流量进行区分和优化。

          Differentiated Services Code Point(DSCP): DSCP 是一种三层的标签。如图 4.17 所示,它有 6 个比特,前 3 个比特匹配 CoS。在二层和三层的边界,交换机可以 携带 CoS 和其他元素(如源目地址)去匹配三层的 DSCP。

        在 NSX 网络虚拟化环境中, 可以使用多种方式对源自虚拟机的流量打标签(比如虚拟 机 Hypervisor、 NSX 逻辑交换机、物理交换机)。推荐使用虚拟机 Hypervisor 或 NSX 逻辑 交换机进行打标签操作。虚拟机其流量被 Hypervisor 打上了标签后,在物理网络中传递。 在网络拥塞时,由于设置了 QoS 虚拟机,虚拟机流量可能达到其目的地,也有可能在中途 被丢弃—对于高优先级流量,即使网络拥塞,也会正常到达目的地;但对于低优先级流 量, 在网络拥塞时就会因为 QoS 的设置而被丢弃。

4.2 NSX 二层桥接

        前面介绍了虚拟网络到虚拟网络的流量转发。但是在很多情况下,虚拟网络与物理网 络之间也需要通信。这里的物理网络与之前的“外部物理网络”不同,其网络并不是“外 部” 的,而是与数据中心内部应用息息相关。通过 NSX Edge 路由,可以使用三层路由协 议连接到外部物理网络。但是,有些流量需要在物理网络和逻辑网络之间进行二层通信, 这时就无法使用 NSX Edge 路由。 因此,本节会详细介绍 NSX 的二层桥接功能。这个功能打通了物理网络和物理网络的 二层连接。

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值