在今年的vForum大会上,我也非常有幸和许多与会的技术专家交流了NSX打造的网络与安全的最后一公里。其中,我谈起传统数据中心解决方案会对网络资源进行强制的划分:比如网络管理员在进行规划的时候,会预先定义若干个C类给专门的网络区域或者应用使用。这种不灵活的网络设计会成为业务上线后管理员沉重的工作负担。而在虚拟化已经成为主流、微服务逐渐兴起的时代,对东西向流量的安全需求,也逐渐成为刚需,甚至是国家法律合规的约束。
现在,我们将目标重新聚焦到NSX构建的软件定义网络之上。有人会质疑,NSX的确可以通过分布式防火墙技术,实现虚拟机颗粒度、容器POD颗粒度的安全防护;但是他似乎无法解决强制的网络资源划分问题,工程师依旧需要创建好逻辑交换机、逻辑路由器,配置路由协议,似乎这一切与传统数据中心网络实现并无太大的区别。
这个问题,我们先暂时放一放,来看看在一个典型项目的实施阶段,NSX数据中心的网络是如何实现的。
1. 各类配置文件就绪,传输区域设置
2. 传输节点就绪,其中包括主机传输节点和边界传输节点
3. 逻辑交换机的配置
4. 逻辑路由器的配置
5. 路由协议实现逻辑网络与物理网络的互通6. 其他有状态服务的配置
所有的这些配置工作,都可以由管理员通过鼠标点击实现。因此在纯手动配置逻辑网络的场景下,管理员当然需要预先规划好网络设计。
我们知道NSX提供非常丰富的标准API接口,通过云管理平台,是完全可以实现自动化交付网络服务的需求的,这其中就包括了逻辑交换机、逻辑路由器和各类有状态的服务。此时管理员不再需要为业务生硬的规划具体的IP地址和网络,只需要声明一个有充分资源的网络地址资源池,就可以实现业务网络的快速交付,解决了传统中心网络运维复杂的难点。
说到云管平台,就不得不提起VMware vRealize Automation(后文称vRA)这个产品。最近和同事都在开荒vRA8,全新的容器化结构需要有一些时间去消化、归纳和总结。在今天的分享中,我将采用NSX-T与vRA7.6进行演示用例。
现在就让我们来看看NSX-T与vRA集成后,如何自动化交付逻辑网络的。
看过前几篇分享的朋友,一定还记得NSX-T在和容器集成、OpenStack集成的时候,管理员都要定义一个边界群集和Tier0级别的逻辑路由器。
上面那张是我的演示环境网络整体拓扑:
我部署了四个Tier0逻辑路由器用以演示NSX DC的四大功能,分别是面向ESXI和KVM的软件定义网络、容器云原生网络、自动化交付和与OpenStack集成;当然有兴趣自建LAB的朋友可以选择只部署一台Tier0逻辑路由器。
在NSX实现的云原生网络中,管理员每创建一个Namespace,就会在NSX-T的环境中,自动创建一个Tier1逻辑路由器,自动分配一个IP地址段,并连接到预先定义的Tier0逻辑路由器,实现云原生网络与外部VLAN网络的互通。类比地来看,在NSX与vRA集成的自动化网络交付场景下,用户通过访问vRA的服务目录,每创建一个请求,就可以在NSX-T的环境中,自动创建一个Tier1逻辑路由器,自动从可用的IP规划中,分配若干个子网,以多个逻辑交换机的方式上联到Tier1逻辑路由器实现内部的东西向互访,该Tier1逻辑路由器再连接到预先定义的Tier0逻辑路由器,实现南北向互访。
因此,我们首先需要来定义一个用于自动化创建的网络上联的Tier0逻辑路由器:
vRA是支持多租户的云管理平台,我使用SE部门的管理员访问vRA门户,在基础架构-预留配置中,声明Tier0逻辑路由器。
包括vCenter、NSX DC Manager(后文称NSXMGR)在内的组件都是以“端点”的形式,与vRA进行交互,为了确保架构管理员可以看到最实时的vCenter、NSXMGR对象,系统会定期更新同步。
当网络管理员访问NSXMGR,添加了一个Tier0逻辑路由器并经过同步后,租户的架构管理员就可以以“预留”的形式,定义将来自动化交付的Tier1逻辑路由器将被允许自动连接到该Tier0逻辑路由器,如我环境中的Dev-Tier0-LR-Tenant3
细心的朋友一定会发现,在声明了Tier0逻辑路由器的选项右侧,还有一个S7-SE-Transit-Tier-NetProf命名的网络配置文件,这是一个什么配置呢?
在vRA租户的基础架构-预留-网络配置文件页面,可以看到面向SE租户的四个网络配置文件,分别是外部网络配置文件和(按需)路由网络配置文件。
在vRA与NSX-V的集成场景中,外部网络配置文件是想当重要的:它将用于Edge Service Gateway与Distributed Logical Routers之间的Transit Tier网络地址的规划。而在vRA与NSX-T的集成场景中,由于Tier0和Tier1逻辑路由器之间的逻辑交换机属于内联逻辑交换机,为自动分配100.64.0.0/16的地址,此时的外部网络配置文件的网络规划并没有太大的意义,只是用来将路由网络配置文件与早些定义的Tier0逻辑路由器进行关联。
比如下图的S7-SE-Web-Tier-NetProf定义的192.168.13.128/25 CIDR,当蓝图需要创建按需路由网络,并且关联了该网络配置文件的时候,vRA会自动从这个CIDR中选择一个29位子网掩码的地址段分配给一个逻辑交换网络使用;同时将这个地址段中第一个可用的IP地址作为该逻辑交换网络的网关,配置在自动创建出来的一个Tier1逻辑路由器上,该逻辑路由器通过关联的“外部网络配置文件”,就会自动连接到对应的Tier0逻辑路由器上。
由于Tier0逻辑路由器与Tier1逻辑路由器之间的路由属于内部路由,自动学习,因此逻辑网络连通性是不需要额外的配置就能建立的;同时由于Tier0逻辑路由器的SR角色会通过静态路由或者BGP动态路由的方式,与上层物理路由器实现路由学习-更新-发布-互通;这样整个数据中心网络的连通性就能顺理成章地自动实现。不再需要管理员手动配置,当用户申请服务的时候,所有的这一些都会在很短的时间内被自动创建,大大缩短了业务上线的时间,也提升了管理员的运维效率。
可以看到,当某一个可用的地址段因为被使用而分配出去的时候,架构管理员可以在vRA租户的页面清楚地看到这些信息。
下图是我的复合蓝图设计示例。
这里面可以看到:
1. 一共有三种不同类型的虚拟机实例,分别是Web虚拟机、App虚拟机和DB虚拟机,vRA会调用vCenter上的虚拟机模板和自定义规范,完成这些虚拟机的置备。
2. 为了减少IT的运维工作量,所有的虚拟机在被创建的时候,会连接到自动创建的逻辑网路中。vRA会根据网络配置文件的定义,自动创建逻辑交换机、Tier1逻辑路由器,并且将Tier1逻辑路由器连接到预先创建和定义的Tier0逻辑路由器上。
3. 所有虚拟机在置备完成后,需要进行优化配置和对应的软件安装和集成。如DB虚拟机需要根据预先定义的脚本,安装MYSQL数据库,系统将根据该虚拟机被分配的IP地址作为数据库的侦听IP,并根据用户自己的定义,完成管理员账号密码的设置。
4. 出于业务高可用性的考量,在完成多台Web虚拟机的创建后,还会自动创建出负载均衡器,提供南北向的负载均衡,满足外部用户接入的需求。
5. 出于安全的考量,管理员预先定义了安全策略,所有创建出来的虚拟机都将被关联这些策略,借助分布式防火墙为业务安全稳定地运行保驾护航。
当所有的这一切都在Day0被定义,用户在Day1申请了这个服务后,我们来看看系统发生了哪些变化。
可以看到,vRA自动化地,在vCenter管理的群集上创建虚拟机,在NSXMGR管理的主机传输节点上创建逻辑交换机、逻辑路由器、负载均衡器等对象;所有的这些工作在短短数分钟内完成。
在vCenter上可以看到用户创建的虚拟机实例正在稳定运行,分配了预先定义的IP地址。
在NSXMGR上,可以看到逻辑交换机被创建,并且连接到Tier1逻辑路由器上,网关地址是vRA根据网络配置文件分配的第一个可用的IP地址;该Tier1逻辑路由器连接到了对应的Tier0逻辑路由器上。
为Web虚拟机自动创建的负载均衡器也在稳定对外提供业务访问。
最终用户看到的,“仅仅”只是一个符合他们需求的应用而已。
套用那句“总有人为你负重前行”,vRA为业务的敏捷交付,为管理员的效率提高而负重前行,而这一切是NSX数据中心与vRealize Automation这样的云管平台集成后,所能带来的巨大收益。
因此,想要发挥软件定义网络或者说NSX数据中心带来的变革,最大化NSX数据中心的收益,是需要自动化交付平台来助力的,也是用户选择NSX,选择vRealize CMP的一个非常重要的原因。
这是晓冬2020年的第一篇更新,也是NSX-T为主题的变形金刚系列的最后一篇。原先计划分享一些vRealize Suite组件的演示和个人理解,但是最近vRA8全新的架构还在持续摸索中,先暂时缓缓吧。我想,在下一篇更新中,来向大家聊一聊初步接触VMware Project Pacific的一些感悟,敬请关注。