10

NSX分布式逻辑路由器介绍

 3 years ago
source link: http://just4coding.com/2020/06/21/NSX/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

NSX分布式逻辑路由器介绍

发表于

2020-06-21 更新于 2020-06-22 分类于 Virtualization

NSX是VMware公司在vSphere平台上的网络虚拟化解决方案。从架构上分为四层, 如图:

1.png
  • 消费平面: 云管平台CMP(Cloud Management Platform)不是NSX的组件,NSX提供了丰富的REST API, 可根据需要集成NSX。
  • 管理平面: NSX Manager是NSX的集中管理器,主要功能包括管理NSX Controller集群,管理EDGE节点,为上层消费平台提供管理和配置接口。NSX Manager自身实现了vSphere vCenter插件,可注册在vCenter中,通过GUI进行管理。
  • 控制平面: 控制平台主要包括NSX Controller集群,Controller负责维护所有ESXi主机、逻辑交换机(Logical Switch)和分布式逻辑路由器(DLR: Distributed Logical Router)的信息。实际上,控制平面还包括DLR的Control VM, 上图中没有体现。上图来自官方6.4版本的文档。后文会再介绍它的作用。
  • 数据平面: 数据平面主要包括NSX Virtual Switch, DLR, 和ESG: Edge Service Gateway。按图中表示,NSX Virtual Switch是基于vSphere的分布式交换机并在内核中实现VXLAN、防火墙过滤、分布式路由等功能的逻辑交换机。我个人更倾向将NSX Virtual Switch理解为VDS+VXLAN实现,将DLR看成独立组件。VDS可以理解为基于VLAN隔离的虚拟交换机,NSX Virtual Switch是基于VXLAN隔离的虚拟交换机。NSX界面上,NSX Virtual Switch叫做逻辑交换机: Logical SwitchDLRESG都是路由器,DLR负责虚拟数据中心中东西向流量路由,ESG负责虚拟数据中心边缘的南北向流量路由。其他数据面组件都在ESXi主机内核中实现,而ESG是独立的虚拟机。 NSX的一个典型逻辑网络架构如下图:2.png

从逻辑架构上看,与OpenStack等其他的虚拟化网络方案没有太大差别。但NSX比较独特的地方在于DLR的实现。DLR的主要作用是完成虚拟数据中心内东西向流量路由。为了避免同一台ESXi主机的两个VM之间的流量需要先出宿主机经过虚拟路由再回到宿主机,如下图所示:

3.png

DLR实现在每台ESXi内核实现一个DLR实例,由它负责本机上VM的流量的路由。这样上述流量就不再出宿主机,直接由本地DLR转发到本地的目的VM,如下图:

4.png

除了ESXi主机上的DLR实例负责数据面,在创建DLR时,还可以创建一个DLR Control VM, 它负责路由信息的生成和管理。如果不创建Control VM, 则DLR只能配置静态路由。创建Control VM之后,则可以通过它和EDGE路由之间运行动态路由协议(如,OSPF、BGP)来学习路由,再将路由信息推送到NSX Controller, NSX Controller再推送到所有DLR实例。

5.png

我的NSX实验环境按上图构建虚拟网络后的实际结构如图:

6.png

其中,DLR Control VM通过transit网络与ESG建立动态路由邻居关系,另一个接口接入DLR_MGMT是由于HA需要,它并没有与NSX Controller网络可达的通路,那么它是如何实现将路由信息推送给NSX Controller呢?事实上,它是通过VMware的VMCI: Virtual Machine Communication Interface通道实现的。

VMCI提供了一种Guest虚拟机与宿主机上的进程通信的通道。整个通信过程如图:

7.png

DLR Controll VM将信息发送给本地ESXi主机上的netcpad进程, 该进程通过ESXi的管理接口将信息再发送给NSX Controller, NSX Controller再推送到所有其他的ESXi主机的netcpad进程,netcpad进程再将路由信息写入DLR实例。

要彻底弄懂NSX需要大量实践。Google上关于NSX的资料非常多,关于NSX部署安装可以参考:

默认情况下,部署完的ESG包含一个内置的防火墙规则,会阻断所有要从ESGuplink口进入的流量。我们需要在防火墙规则中去自定义规则去放开我们想要的流量。但6.4.5的NSX Manager插件GUI在HTML5和Flex版本上的防火墙操作是不一致的,HTML5版本上都需要到防火墙页面中去操作而不是在ESG自身的设置页面来配置。

参考链接:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK