这几日与同事聊起NSX,谈起如何用最简单的语言来描述它,无非就是软件定义网络SDN+网络功能虚拟化NFV+安全微分段DFW。NSX DC产品的软件定义网络是借助在Hypervisor内核中的vdl2和vdrb模块实现,vsip模块则用于实现安全微分段功能。那么问题来了,包括网络地址转换NAT、负载均衡器Load Balancer等在内的NFV是由谁在承载的呢?
在NSX-V的架构中,分布式逻辑路由器Distributed Logical Router(后文称DLR)主要实现东西向三层互通,边界服务网关Edge Service Gateway(后文称ESG)主要实现南北向三层互通,也就是我们常说的逻辑网络与物理网络的互通;同时,ESG也承载着包括NAT、LB和VPN等多种网络服务。但到了NSX-T的架构中,上述逻辑路由组件有了非常大的变化:
- ▪逻辑路由器可分为Tier-0和Tier-1两个分级(后文称T0和T1);
- ▪每个逻辑路由器可以分为分布式路由器角色DR和服务路由器角色SR;做个不恰当的比喻,NSX-T架构中的DR相当于NSX-V架构中的DLR,SR相当于ESG。
其中SR角色必须由NSX-T的Edge传输节点来承载;因此,现在我所说的Edge并非指ESG,而是与主机传输节点相类似的Edge传输节点。在NSX-T架构中,Edge传输节点可以是虚拟机,也可以是物理机;在今天的演示中,我将演示如何部署虚拟机版本的Edge传输节点,并组成Edge集群,用以承载T0SR或者T1SR角色。
0x05-01:部署虚拟机版本Edge传输节点
===============
与NSX-V不同,在Management and Edge Cluster中,承载Edge节点的宿主机不需要进行“配置NSX”的主机准备工作,成为主机传输节点;因此不会占用额外的NSX DC授权。
- ▪默认的Edge传输节点虚拟机会有4个vnic,分别承载管理、Overlay、VLAN流量;因此,需要在ESXi服务器上,创建虚拟交换机和端口组,用于承载上述三种流量
- ▪创建标准虚拟机端口组Network-Management,用于承载管理流量
- ▪创建标准虚拟机端口组network-overlay和network-uplink,分别用于承载Overlay和vlan流量
- ▪管理员需要在NSXMGR上,为Edge传输节点创建上联到VLAN网络的逻辑交换机,如Network-Production
- ▪完成ESXI主机和虚拟网络的配置后,进入系统-结构层-Edge传输节点,添加Edge虚拟机
- ▪定义该Edge虚拟机的FQDN和部署规模
注:小型规模的Edge无法实现NAT功能
- ▪定义Edge管理员密码,包括管理员admin和系统root用户
- ▪指定承载Edge虚拟机的ESXi服务器和数据存储
- ▪定义Edge虚拟机管理地址和对应管理接口eth0上联网络
注:该网络是虚拟机所在的ESXi主机的某一个虚拟机端口组,在本演示环境中,即我先前创建的一个标准交换机上的虚拟机端口组
- ▪Edge需要同时访问Overlay网络和VLAN网络,因此一般需要连接到两个传输区域,配置两个N-VDS
注:如果Edge是物理机,只有2个网卡,必须将Overlay和VLAN合并到1个网卡承载
注:这种情况下,在创建VLAN和Overlay传输区域的时候,N-VDS的命名必须相同
- ▪可以看到,由于VLAN传输区域的N-VDS,不需要创建用于Geneve封装的VTEP,因此不需要定义IP分配
- ▪确认Edge虚拟机已经关联了两个传输区域,并且连接到了对应的N-VDS
- ▪等待Edge虚拟机部署完成
- ▪如果访问VC界面,可以看到NSXMGR正在导入OVF,进行Edge虚拟机的部署
- ▪重复上述步骤,完成另一台Edge虚拟机的创建
- ▪访问vCenter,可以看到该Edge虚拟机连接到了三个不同的虚拟网络,其中Network-Management是ESXi的虚拟机端口组,network-overlay和network-uplink是NSXMGR创建的N-VDS上的逻辑交换机
- ▪根据NSXMGR上创建Edge虚拟机时定义的参数,Edge会分别上联到对应的虚拟网络
虚拟机的vnic0,相当于eth0,上联到Network-Management,承载管理流量
虚拟机的vnic1,相当于fp-eth0(eth1),上联到network-overlay,承载Geneve封装的Overlay流量;
注:Edge虚拟机默认4个vnic,在没有定义vnic3的情况下,该vnic3也会上联到network-overlay,但不会承载任何流量,除非在创建Edge虚拟机的时候,设置Overlay传输区域的N-VDS采用双网卡上联的配置文件
虚拟机的vnic2,相当于fp-eth1(eth2),上联到network-uplink,承载VLAN流量
- ▪完成Edge虚拟机创建后,使用admin账户访问,检查配置并更新部分网络设置
- 开启Edge虚拟机的SSH服务,并设置DNS、NTP和默认搜索空间
# set service ssh start-on-boot
# start service ssh
# set cli-timeout 0
注:设置命令行访问永不超时,生产环境慎用
# set ntp-server NTP服务器
# set name-servers DNS服务器
# set search-domains 域名
- ▪等待Edge节点部署完成,并确认配置状态和节点状态均为开启,传输区域关联正确,N-VDS创建正确
注:传输区域与N-VDS数量不一定完全匹配,N-VDS数量一定不大于传输区域的数量
注:Edge虚拟机会完全预留内存,因此必须保证ESXi主机有足够的内存,否则会出现无法开启虚拟机电源状态,无法完成NSX配置并注册到NSXMGR的情况
对于Overlay和VLAN共同一个上联的情况,配置如下:
在ESXI创建一个虚拟机端口组,承载该虚拟机端口组的虚拟交换机MTU至少1600
当然,对于一些比较特殊的情况,比如服务器只有一块双口万兆物理网卡,出于性能和高可用考量,必须配置传输区域Overlay和VLAN共用一个N-VDS。
- ▪实现方法是在创建传输区域的时候,N-VDS命名设置成相同的即可
- ▪可以看到,在这种情况下,虽然有多个传输区域,但是N-VDS只有一个
在上文创建虚拟机版本Edge传输节点的时候,不知道各位是否留意:我一共创建了2台Edge传输节点。实际上,在NSX-T的架构中,会有一个概念叫做Edge集群;同一个逻辑路由器的SR角色会有2个实例,分别运行在Edge集群的2个Edge传输节点中。在我的实验环境中,创建的2台Edge传输节点均会加入到同一个集群中。
0x05-01:部署虚拟机版本Edge传输节点
===============
- ▪在创建Edge集群之前,首先保证至少有2台Edge传输节点已经正常配置
- ▪点击进入系统-结构层-节点-Edge群集,添加新的Edge群集
- ▪定义Edge群集命名为sa-edge-cluster1,包含两个Edge节点,分别是sa-edge-01和sa-edge-02
- ▪等待Edge群集创建完成
- ▪回到Edge传输节点清单界面,可以看到对应的Edge已经显示关联到了Edge群集
NSX-T同样支持物理机版本的Edge,在VMware官网下载ISO镜像后,管理员可以像安装普通的操作系统一样,执行Edge操作系统的安装。物理机版本的Edge传输节点支持以命令行形式向NSXMGR发起注册,在功能上与虚拟机版本Edge传输节点无二,但是性能更佳。
在完成Edge传输节点和Edge集群配置后,NSX-T环境已经具备了部署逻辑路由器实现不同逻辑交换网络和外部物理网络的三层互通条件。在下一篇分享中,我将向各位演示,如何实现跨vSphere和KVM异构平台的环境下的逻辑路由,欢迎届时继续关注。