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

第5 章 NSX-V 逻辑路由

        路由,也就是通常所说的三层通信。流量在不同网段中进行通信时,都需要路由来 处理。

        处理路由的设备称为路由器。当然,现在的防火墙和交换机也具备了一些路由功能。路由 器自 20 世纪 80 年代中期发明以来,发展有起有伏。 20 世纪 90 年代中期,传统路由器成为制约 Internet 发展的瓶颈, ATM 交换机取而代之,成为 IP 骨干网的核心,路由器沦为配角。进入 20 世纪 90 年代末期, Internet 规模进一步扩大,流量每半年翻一番, ATM 网又成为瓶颈,路由器 东山再起,人们开始用千兆级别的路由器构建核心的骨干网。但是,随着近几年云计算与虚拟化 技术的迅猛发展,如果需要物理路由器(或物理三层交换机)来处理数据中心内部的三层东西向 流量,可能会带来诸多问题。 于是基于网络虚拟化的路由技术被提出,并得到了发展。而 NSX 网络虚拟化解决方案中的分布式逻辑路由正是应用在下一代数据中心中的路由技术。

        在 Nicira 的 NVP 平台诞生之前,所有安装在虚拟机之上的虚拟交换机只有简单的二层 功能,从这点来看, Nicira 的 NVP 平台是一个革命性的架构—这对逻辑网络中的三层流 量相互通信时,迅速找到下一跳、实现最优路径、 ECMP(Equal Cost Multipath,等价的多 路径)非常重要。 本章会详细介绍 NSX 集中路由和分布式路由,并介绍将物理路由器和 NSX Edge 做为 下一跳的部署模型。

5.1 NSX 逻辑路由详解

        在讨论 NSX 逻辑路由之前,先来回顾三层网络的作用是什么。网络层(Network Layer) 作为 OSI 模型的第三层,需要为网络提供以下功能:

 选择路由的路径;

 知晓邻居网络节点的地址;

 基于三层 QoS 选择流量的优先级;

 将本地消息发送至传输层。 这些功能本应都由路由器来提供, 而现在我们有了 NSX 平台, NSX 的逻辑路由功能 取代了物理路由器,将处于不同逻辑二层子网中的终端连接起来。负责逻辑路由功能的NSX 组件称为 NSX 逻辑路由器,它分为分布式逻辑路由器和 Edge 路由器。 本节将对 NSX 逻辑路由器功能进行详细阐述, 读者也可以与之前章节讲解的 NSX 分 布式逻辑交换机进行对比,看看它们在处理流量转发的过程中,有什么区别。

5.1.1 NSX 逻辑路由概览

        NSX 逻辑路由器可以很容易将本该属于不同独立网络中的设备、终端连接起来,而通 过将越来越多的独立网络连接到一起,网络规模将变得更大(参考运营商网络)。由于 NSX 网络虚拟化平台可以在这种超大规模的网络上实现一套独立的逻辑网络,因此 NSX 平台非 常适合应用在超大规模数据中心或运营商网络中。

        在 NSX Manager 中可以使用简化的 UI 来配置逻辑路由器,这非常便于配置和维护, 在这里可以使用动态路由协议对 NSX 逻辑路由进行发现和宣告的操作, 当然也可以使用静 态路由。控制平面仍然运行在 NSX Controller 集群中,而数据平面交给 ESXi 主机的 Hypervisor 来处理。换言之,在虚拟化平台内部就可以进行各种路由操作,包括路由算法、 邻居发现、路径选择、收敛等,而无需离开虚拟化环境,在物理网络平台中进行处理。有 了 NSX 逻辑路由功能,就可以方便地在逻辑的三层网络中, 为路由选择最佳路径。此外, NSX 逻辑路由还能更好地实现多租户环境,比如在虚拟网络中,不同的 VNI 中就算有相同 的 IP 地址,也可以部署两个不同的分布式路由器实例,一个连接租户 A,一个连接租户 B, 保证网络不会发生任何冲突。

         NSX Manager 首先配置了一个路由服务。在配置过程中, NSX Manager 部署了一个控 制逻辑路由的虚拟机(DLR Control VM)。它是 NSX Controller 的一个组件,支持 OSPF 与 BGP 协议, 负责 NSX-V 控制平面中的路由工作,专门用来处理分布式路由。此外,在之 前章节中为 NSX Manager 为 ESXi 主机配置了一个内核模块,这个模块不仅实现了逻辑交 换功能,还实现了逻辑路由功能。在逻辑路由功能中,它的作用相当于机箱式交换机中有 三层路由功能的线卡,可以从 NSX Controller 集群中得到路由信息、接口信息,并负责转 发平面的所有功能。这意味处理路由所需要的三层网关是通过控制平面分布式呈现在每台 ESXi 主机之上的,流量无需通过复杂的路径寻找网关,因为网关就分布式部署在虚拟机本 地所属的 Hypervisor 之上。 由于 DLR Control VM 只支持支持 OSPF 与 BGP 协议,这意味着 NSX 分布式逻辑路由 器在动态路由层面也只支持支持 OSPF 与 BGP 协议。而 NSX Edge 路由器则支持 OSPF、BGP 与 ISIS 三种动态路由协议。
图 5.1 所示为逻辑路由器连接不同的逻辑交换机,并与物理网络交互的典型部署模式。逻辑路由器可以连接相互分离的二层网络中的终端(无论终端属于逻辑网络还是物理网络),也可以将逻辑网络中的终端设备连接到外部物理网络(如 WAN、 Internet、等)中。第一种情形往往发生在数据中心内部,为东西向流量。而第二种情形则为南北向流量。

        现在再回到之前讨论的经典 Web 应用三层模型。在连接不同层级的时候(如 Web 层与 App 层), 就有可能用到逻辑路由,因为 Web 层所在的网络很可能与 App 层分属两套逻辑 子网。另外,在应用需要与电商交互或需要为代理商、合作伙伴提供接口时,往往又会连 接到外部三层网络。在图 5.2 中可以很清晰地看到在这种经典的应用模型中,需要 NSX 逻 辑路由做些什么。 比如, Web 层属于 VXLAN 5001, App 层属于 VXLAN 5002,就算 它们属于同一台 ESXi 主机,也需要在三层网络中进行通信,而有了 NSX 逻辑路由功能,就可以在虚拟化环境内 部进行路由处理,在 NSX 的前身 Nicira NVP 问世之前,这样的功能需要走出虚拟化环境, 借助外部物理三层设备来完成。

5.1.2 NSX 逻辑接口

        NSX 逻辑路由器有自己的逻辑接口, 称之为 LIF(logical interface),功能与物理路由 器上的接口类似。在 LIF 上配置了 IP 地址,并连接到逻辑交换机端口或分布式的端口组后, 最终连接每个子网的 NSX 逻辑路由器也就有了自己的 ARP 表。在 LIF 上,还会引入 virtual MAC(vMAC)的概念,它是 LIF 的 MAC 地址,在物理环境中不可见,只能在虚拟化环 境中被识别。 虚拟机使用 vMAC 作为默认网关的 MAC 地址。对于物理交换机的上连端口, 其 MAC 地址叫做 pMAC,这种 MAC 在物理环境中是可见的。 逻辑接口有下面两种配置模式。

 VXLAN LIF:用于逻辑路由器连接逻辑交换机。

 VLAN LIF:用于逻辑路由器连接分布式的端口组,端口组内可能包含一个或多个 VLAN。

         LIF 连接到 VLAN 时,物理网络可能无法确认不同的主机中,哪一台携带了 VLAN LIF 的 MAC 地址。为了解决这个问题,每台主机都会拥有 VLAN LIF 的 pMAC 地址,但是只 有一台主机会对 VLAN LIF 的 ARP 请求做出回应。这个做出回应的主机称为 DI (Designated Instance),它是 由 NSX Controller 根据算法自动选择的。 DI 同样会发送 ARP 请求到其他所 有主机。对于 VLAN LIF,所有的入向流量都是由 DI 进行接收的;而对于出向流量,则不 需要 DI 进行处理。当 DI 发生故障时, NSX Controller 会将另一个主机选为 DI,并通知其 他所有主机。 LIF 连接到 VXLAN 时, LIF 就有了 vMAC, DI 就不会存在,因为对于物理网络, vMAC 是不可见的。

5.1.3 NSX 集中路由

        NSX 逻辑路由中有两种模式,即集中路由和分布式路由,可以实现两种不同的功能。 首先来看集中路由。集中路由实现的是入栈/出栈功能,它允许逻辑网络和外部的三层 物理网络进行路由通信,也就是用来处理南北向路由的方式。图 5.3 是一个 NSX Edge 路由 器为 NSX 网络虚拟化平台提供传统集中路由功能的示意图。除此之外, NSX Edge 还能提 供 DHCP、 NAT、防火墙、 VPN 和负载均衡服务。 集中路由功能除了可以用于处理南北向流量,同样也可以处理东西向流量。但是, 东西向流量在集中路由部署中不一定是最优化的,这是因为在流量从终端向 NSX Edge 转发时,会产生发夹( Hairpinning)效应,哪怕两台虚拟机同属于一台 ESXi 主机。所 谓“发夹”,就是流量绕过网关设备抵达目的—这可能并不是最优路径, 因为所有流 量都需要穿过 NSX Edge 提供的路由器,在逻辑上来看,就像“发夹弯”一样。如图 5.4 所示,通过集中路由处理东西向流量的工作流程如下。

1. ESXi-1 主机的虚拟机 1 希望与同一台主机内的另外一台虚拟机通信,但是两个虚 拟机处于不同网段。 2.处于 VXLAN 5001 的虚拟机向分布式交换机发出原始报文,由于另外一台虚拟机 处于 VXLAN 5002,因此 ESXi 主机将报文转发到了默认网关。 3.安装了 NSX Edge 网关的 ESXi 主机收到了这个报文。 4.数据包被传递到了 NSX Edge 网关,进行路由处理。 5. NSX Edge 网关做出了路由的选择,并将数据包其发送回 ESXi-1 主机。 6. ESXi-1 主机收到了数据包,准备将其发送到相应的虚拟机 2(处于 VXLAN 5002 中的那台需要通信的虚拟机)。 7.数据包最终成功发送到了虚拟机 2。 如果这台虚拟机需要回应数据包,则执行上述 过程的逆过程。 5.1.4 NSX 分布式路由 为了优化路由,就需要通过部署分布式路由,用来处理虚拟机到虚拟机之间的三层流 量。分布式逻辑路由器通常简称为 DLR(Distributed Logic Router),有时逻辑路由器也特 指分布式逻辑路由器,而不是 Edge 路由器。如图 5.5 所示, NSX 分布式路由提供基于 Hypervisor 层面的路由功能。 Hypervisor 收到了来自 NSX Controller 的指令后,就可以建立 一条直连的路径,即使终端属于不同的逻辑交换机(或 IP 子网)。这样可以有效防范“发 夹效应”。

 

        在 NSX 网络虚拟化平台中,分布式路由的控制平面是由 NSX Controller 和 DLR Control VM 一起提供的,其中 DLR Control VM 以虚拟机的形式安装在 vSphere 环境中,并成为 NSX Controller 的一个组件,作为真正的分布式路由的控制单元。

        对于 DLR Control VM,建议为其配置两台虚拟机,一台为 Active(主用),另外一台 为 Standby(备用),实现主备模式,达到高可用性。当主用虚拟机失效,备用虚拟机会在 15 秒时间后接管其工作。在这 15 秒的接管过程中,不会影响数据平面,这也是控制平面 和数据平面分离的好处之一。如果不配置成主备模式, DLR Control VM 失效后, Hypervisor 在 15 秒之后可能会丢失之前建立好的路由邻居关系。

         DLR Control VM 与管理平面、控制平面的信息交互过程为 NSX Manager 向这个虚拟 机和 NSX Controller 发送 LIF 信息,这个虚拟机再向 NSX Controller 发送更新的路由信息。 而这些信息都会被发布到安装了内核模块的 ESXi 主机,最终由 ESXi 主机的 Hypervisor 层 面处理数据平面的路由转发工作。 值得注意的是,在 NSX Manager 中,并没有专门用于分布式路由的配置界面。需要借 助 NSX Edge 配置界面,通过创立一个 NSX Edge 路由,并选择“分布式路由”选项来配置 分布式路由器。这看似不可理解,但读者无需担心,它并不意味着分布式路由是 NSX Edge 的功能,它仍然是在 Hypervisor 层之上实现分布式路由,只是借用了 NSX Edge 的配置界 面而已。

        接下来看一下 OSPF 或 BGP 协议在 NSX 分布式路由中是如何工作的。为了支持 OSPF, DLR Control VM 需要连接到分布式路由器的 LIF,而 OSPF 配置需要如下的 IP 地址信息。  分布式路由器上连 LIF 的 IP 地址,这是用于数据平面通信的。  一个专门用于 DLR Control VM 会话控制的 IP 地址。 DLR Control VM 使用这个 IP 地址向 OSPF、 BGP 的路由邻居进行信息交互、更新路由表。 下面讲解 NSX 分布式路由各个组件之间是如何交互的(见图 5.6)。

1.在 NSX Manager 中配置了动态路由协议(如 OSPF 或 BGP)。
2. NSX Controller 将新的路由配置推送到 ESXi 主机,其中包含了 LIF 的信息。
3.假设下一跳设备(如 NSX Edge)也启用了路由协议,那么, OSPF 和 BGP 邻居关系在 NSX Edge、 DLR Control VM 中就会建立,它们就会进行路由信息交互。
4.数据平面将学习到的路由信息通告给 NSX Controller 集群。
5. NSX Controller 将更新的路由信息发送至所有 ESXi 主机。
6.安装了内核模块的 ESXi 主机开始数据平面的路由转发工作。以上步骤是 NSX 网络虚拟化平台中处理分布式路由的综述。下面讨论细分的场景。如图 5.7 所示,对于在相同 ESXi 主机内连接不同网段的两台虚拟机,相互之间需要通过分布式路由进行通信,其工作流程如下所述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BinaryStarXin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值