首先介绍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