首先介绍NSX-T的基本概念。
参与构建NSX-T网络的节点叫做传输节点(Transport Node), 包括ESXi主机、KVM主机和EDGE节点。传输节点上需要配置构建NSX-T网络所需的NSX虚拟交换机,可以新建N-VDS类型的交换机,也可以复用vCenter上所创建的VDS, 如图:
逻辑交换机(logical switch)也叫分段(segment)为虚拟机提供网络接入点,它需要附着于NSX虚拟交换机之上。有些场景下,逻辑交换机并不需要在所有传输节点上都存在,NSX-T使用传输区域来表示传输节点的范围。NSX虚拟交换机在创建时,需要配置所关联的传输区域。
下图中,传输节点: ESXi-TN1上创建的NSX虚拟交换机关联了传输区域: tz1,传输节点: ESXi-TN2上创建的NSX虚拟交换机关联了传输区域: tz1和tz2, 传输节点: ESXi-TN3关联了传输区域: tz2。这样,传输区域: tz1就由TN1和TN2上的NSX虚拟交换机构成,而传输区域: tz2就由TN2和TN3上的NSX虚拟交换机构成。
逻辑交换机/分段在创建时需要指定所附着的传输区域, 从而限定在传输节点上的分布:
传输区域分为VLAN类型和Overlay类型, 表示不同传输节点之间的通信实现方式。VLAN类型的传输区域不同传输节点上NSX虚拟交换机之间的通信是基于VLAN实现不同的逻辑网络隔离。而Overlay类型的传输区域的不同传输节点上的NSX虚拟交换机之间则会建立两两相连的GENEVE隧道,基于GENEVE的VNI(Virtual Network Identifier)来实现不同的逻辑网络隔离。这和OpenStack的网络实现类似, 可以参考之前的文章:
- <<RDO安装all-in-one模式OpenStack虚拟网络架构分析>>
- <<VXLAN原理介绍与实例分析>>,
- <<动态维护FDB表项实现VXLAN通信>>
- <<基于BGP EVPN的VXLAN通信实践>>
上行链路(uplink)表示NSX虚拟交换机到物理网络的接入点,可以理解为物理网卡的映射。在创建NSX虚拟交换机时,需要指定不同的uplink接口所映射的实际物理网卡, 如图:
而如果NSX虚拟交换机以vCenter上创建的VDS为载体,则映射为VDS的uplink, 如图:
上行链路配置文件(uplink profile)定义了NSX虚拟交换机使用uplink的策略,这叫做绑定策略(Teaming Policies)。默认的策略为负载均衡源(Load Balance Source), 表示根据虚拟机ID均衡分散到不同的uplink,也可以修改为故障切换顺序(Failover Order)实现主备模式, 或者是负载均衡源MAC(Load Balance Source MAC),表示基于虚拟机网卡的MAC地址进行负载均衡。
这种场景下,一个NSX虚拟交换机所承载的逻辑交换机/分段的绑定策略都是NSX虚拟交换机创建时所设置的默认绑定策略。但有些场景下,不同的逻辑交换机/分段需要配置不同的绑定策略。比如,一个NSX虚拟交换机有4个uplink,业务网络使用前两个uplink构成的负载均衡源模式, 而vMotion/vSAN等管理流量使用另外两个uplink构成的故障切换顺序模式。
这个需求在VDS上配置比较简单,可以针对不同的端口组配置不同的绑定和故障切换设置:
在NSX-T的逻辑交换机/分段上实现该需求步骤则略为复杂一些。
uplink profile的绑定策略支持配置多个,第一条为默认策略,其他策略则需要指定策略名称,这个机制叫做 命名绑定策略(Named Teaming Polices), 该特性在NSX-T 2.3中引入,从2.4版本开始,一个NSX虚拟交换机可以配置多个命名绑定策略, 如图:
创建传输区域时可以关联多个命名绑定策略, 如图:
接下来,基于传输区域创建逻辑交换机时就可以选择所关联的命名绑定策略了,如图:
将一台虚拟机接入上述所创建逻辑交换机: ls-uplink-1。登录虚拟机所在ESXi主机,执行:
1 | esxtop -d2 |
然后按n展示network界面, 可以看到虚拟机t1的网卡绑定的物理网卡为vmnic0:
接着执行命令关闭vmnic0:
1 | esxcli network nic down -n vmnic0 |
再次查看绑定的物理网卡, 发现已经变更为vmnic1:
可以确定逻辑交换机的上行链路绑定策略的确已经生效。
参考:
- https://wesleygeelhoed.nl/2019/12/16/named-teaming-policy-in-nsx-t-2-5-load-balancing-deep-dive/
- https://virtualrove.com/2020/05/28/nsx-t-3-0-series-part4-create-transport-zones-uplink-profiles/
- https://greatwhitetec.com/2016/11/01/esxtop-not-displaying-properly/
- https://esxsi.com/2016/07/10/esxtop/
- https://tomaskalabis.com/wordpress/vmware-esxi-how-shutdown-vmnic-interface/
- https://vxplanet.com/2019/09/25/achieving-deterministic-peering-using-nsx-t-named-teaming-policies/
- http://www.cloudxtreme.info/nsx-t-uplink-profile/
- https://www.lab2prod.com.au/2022/05/nsx-t-deterministic-traffic-on-vlan-backed-segments.html