本节介绍了 NSX Advanced Load Balancer 控制器 接口和路由管理。
NSX Advanced Load Balancer 控制器 具有一个用于各种控制平面相关任务的接口,例如:
操作员通过 CLI、UI 和 API 访问控制器。
控制器和服务引擎之间的通信。
控制器和第三方实体之间的通信,用于实现自动化、可观察性,等等。
控制器和第三方硬件安全模块 (Hardware Security Module, HSM) 之间的通信。
在控制器上提供了一个新接口,可以隔离上述某些实体的通信。
此外,要添加到控制器接口的任何静态路由现在必须利用集群配置,而不是 /etc/network/interfaces 子系统。将在控制器重新引导和升级后保留这些配置。
仅在 vCenter 中部署的控制器上支持该功能,并仅允许将新接口用于 HSM。
使用标签进行分类
可以使用以下标签进行分类:
- MGMT:
-
它表示用于控制器访问的常规管理通信以及控制器启动的通信,例如,日志记录、第三方 API 调用,等等。
- SE_SECURE_CHANNEL:
-
该标签用于对服务引擎和控制器之间的安全通信进行分类。
- HSM:
-
它用于对控制器和 HSM 设备之间的通信进行分类。
通过进行该分类,可以将流量从默认主接口移动到新接口(如果已配置)。
MGMT 和
SE_SECURE_CHANNEL
只能由主 (eth0) 接口执行。可以将 HSM 移动到新接口。
运行模式
最初,在 vCenter 中部署控制器(安装期间)时,为控制器置备了一个接口。
以下是添加新接口的步骤:
关闭控制器虚拟机,并通过 vCenter UI 添加接口。
在打开控制器虚拟机电源时,NSX Advanced Load Balancer 将识别新接口,并且可以通过 NSX Advanced Load Balancer CLI 执行新配置。
不支持热插拔接口(在不关闭虚拟机电源的情况下添加到虚拟机)。
要在 NSX Advanced Load Balancer 控制器 软件中识别接口并通过标签进行进一步的分类,必须使用 NSX Advanced Load Balancer 集群配置模式。
配置单节点控制器
要配置新接口,请执行以下操作:
关闭控制器,并通过 vCenter 添加新接口。
打开控制器电源。新接口将显示为
eth1
,而主接口在集群配置中始终显示为eth0
:
[admin:controller]: > show cluster +-----------------+----------------------------------------------+ | Field | Value | +-----------------+----------------------------------------------+ | uuid | cluster-83e1ebf5-2c63-4690-9aaf-b66e7a7b5f08 | | name | cluster-0-1 | | nodes[1] | | | name | 10.102.64.201 | | ip | 10.102.64.201 | | vm_uuid | 00505681cb45 | | vm_mor | vm-16431 | | vm_hostname | node1.controller.local | | interfaces[1] | | | if_name | eth0 | | mac_address | 00:50:56:81:cb:45 | | mode | STATIC | | ip | 10.102.64.201/22 | | gateway | 10.102.67.254 | | labels[1] | MGMT | | labels[2] | SE_SECURE_CHANNEL | | labels[3] | HSM | | interfaces[2] | | | if_name | eth1 | | mac_address | 00:50:56:81:c0:89 | +-----------------+----------------------------------------------+
在上面,找到了第二个接口 (eth1)。
在新接口上配置模式和 IP 详细信息:
[admin:controller]: > configure cluster [admin:controller]: cluster> nodes index 1 [admin:controller]: cluster:nodes> interfaces index 2 [admin:controller]: cluster:nodes:interfaces> mode static [admin:controller]: cluster:nodes:interfaces> ip 100.64.218.90/24 [admin:controller]: cluster:nodes:interfaces> labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> interfaces index 1 [admin:controller]: cluster:nodes:interfaces> no labels HSM [admin:controller]: cluster:nodes:interfaces> save
在上面显示的 CLI 配置中:
对于第二个接口 (index 2),添加了 IP 和标签。
从主接口 (index 1) 中移除了 HSM 标签。
可以将已配置额外接口和路由的节点添加到集群中。
取消配置单节点控制器的新接口
以下是将配置恢复为使用主接口的步骤:
从第二个接口 (eth1) 中移除配置(模式、IP、标签)。
将 HSM 标签添加到主接口 (eth0) 中。
[admin:controller]: > configure cluster [admin:controller]: cluster> nodes index 1 [admin:controller]: cluster:nodes> interfaces index 2 [admin:controller]: cluster:nodes:interfaces> no mode [admin:controller]: cluster:nodes:interfaces> no ip [admin:controller]: cluster:nodes:interfaces> no labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> interfaces index 1 [admin:controller]: cluster:nodes:interfaces> labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> save [admin:controller]: cluster> save
配置静态路由
可以通过集群配置为主接口和辅助接口配置静态路由。
不要编辑 /etc/network/interfaces
文件。
必须通过集群配置完成所有配置(IP、静态路由),如下所示:
[admin:controller]: > configure cluster [admin:controller]: cluster> nodes index 1 [admin:controller]: cluster:nodes> static_routes New object being created [admin:controller]: cluster:nodes:static_routes> prefix 1.1.1.0/24 [admin:controller]: cluster:nodes:static_routes> next_hop 100.64.218.20 [admin:controller]: cluster:nodes:static_routes> route_id 1 [admin:controller]: cluster:nodes:static_routes> if_name eth1 [admin:controller]: cluster:nodes:static_routes> save [admin:controller]: cluster:nodes> save [admin:controller]: cluster> where Tenant: admin Cloud: Default-Cloud +--------------------+----------------------------------------------+ | Field | Value | +--------------------+----------------------------------------------+ | uuid | cluster-83e1ebf5-2c63-4690-9aaf-b66e7a7b5f08 | | name | cluster-0-1 | | nodes[1] | | | name | 10.102.64.201 | | ip | 10.102.64.201 | | vm_uuid | 00505681cb45 | | vm_mor | vm-16431 | | vm_hostname | node1.controller.local | | interfaces[1] | | | if_name | eth0 | | mac_address | 00:50:56:81:cb:45 | | mode | STATIC | | ip | 10.102.64.201/22 | | gateway | 10.102.67.254 | | labels[1] | MGMT | | labels[2] | SE_SECURE_CHANNEL | | interfaces[2] | | | if_name | eth1 | | mac_address | 00:50:56:81:c0:89 | | mode | STATIC | | ip | 100.64.218.90/24 | | labels[1] | HSM | | static_routes[1] | | | prefix | 1.1.1.0/24 | | next_hop | 100.64.218.20 | | if_name | eth1 | | route_id | 1 | +--------------------+----------------------------------------------+ [admin:controller]: cluster> save
配置 3 节点集群
对于 3 节点集群,需要执行以下步骤:
要找到辅助接口,控制器节点需要是单独节点,而不是集群的一部分。这是 NSX Advanced Load Balancer 查找新接口的一次性操作。
在找到辅助接口后,可以使用主节点组成集群,如《VMware NSX Advanced Load Balancer 安装指南》中的部署 NSX Advanced Load Balancer 控制器 集群主题中详述。
在完全组成集群后,可以为所有节点配置辅助接口。
[admin:controller]: cluster> nodes index 1 [admin:controller]: cluster:nodes> interfaces index 2 [admin:controller]: cluster:nodes:interfaces> mode static [admin:controller]: cluster:nodes:interfaces> ip 100.64.218.90/24 [admin:controller]: cluster:nodes:interfaces> labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> interfaces index 1 [admin:controller]: cluster:nodes:interfaces> no labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> save [admin:controller]: cluster> nodes index 2 [admin:controller]: cluster:nodes> interfaces index 2 [admin:controller]: cluster:nodes:interfaces> mode static [admin:controller]: cluster:nodes:interfaces> ip 100.64.218.100/24 [admin:controller]: cluster:nodes:interfaces> labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> interfaces index 1 [admin:controller]: cluster:nodes:interfaces> no labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> save [admin:controller]: cluster> nodes index 3 [admin:controller]: cluster:nodes> interfaces index 2 [admin:controller]: cluster:nodes:interfaces> mode static [admin:controller]: cluster:nodes:interfaces> ip 100.64.218.110/24 [admin:controller]: cluster:nodes:interfaces> labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> interfaces index 1 admin:controller]: cluster:nodes:interfaces> no labels HSM [admin:controller]: cluster:nodes:interfaces> save [admin:controller]: cluster:nodes> save [admin:controller]: cluster> save
无需登录到节点即可成功找到接口。唯一的要求是,接口在虚拟机中处于已连接状态并且已打开控制器电源。
组成集群和配置辅助接口必须作为单独的步骤执行。
配置辅助接口的 IPv6 地址
在 NSX Advanced Load Balancer 中,您可以为 IPv6 接口添加 mode6、ip6 和 gateway6,而不是 mode、IP 和 gateway。在 22.1.3 中,接口配置不支持双栈模式。因此,接口可以具有 V4 IP 或 V6 IP,但不能同时具有两者。
可以将 SE_SECURE_CHANNEL 标签移动到辅助接口,以启用到服务引擎的通信。该辅助接口可以是 IPv4 或 IPv6。这会帮助用户将不同的接口用于管理和服务引擎通信。
附加了 SE_SECURE_CHANNEL 标签的 IPv6 接口的示例配置如下所示:
+-----------------+----------------------------------------------+ | Field | Value | +-----------------+----------------------------------------------+ | uuid | cluster-f29ed7c8-0da5-4fb6-87f7-e792584643b3 | | name | cluster-0-1 | | nodes[1] | | | name | 100.65.9.203 | | ip | 100.65.9.203 | | vm_uuid | 000000675c79 | | vm_mor | vm-22988 | | vm_hostname | node1.controller.local | | interfaces[1] | | | if_name | eth0 | | mac_address | 00:00:00:67:5c:79 | | mode | STATIC | | ip | 100.65.9.203/20 | | gateway | 100.65.15.254 | | labels[1] | MGMT | | labels[2] | HSM | | interfaces[2] | | | if_name | eth1 | | mac_address | 00:00:00:1a:ab:e8 | | mode | STATIC | | ip | 100.65.14.66/20 | | interfaces[3] | | | if_name | eth2 | | mac_address | 00:00:00:3e:8b:ef | | labels[1] | SE_SECURE_CHANNEL | | mode6 | STATIC | | ip6 | 2402:740:0:40e::20:3/128 | +-----------------+----------------------------------------------+
在更改控制器 IP 地址后更新配置
每个控制器节点的管理 IP 地址必须是静态的。这适用于单节点部署和 3 节点部署。
集群配置和运行时配置包含集群的 IP 信息。如果主节点或从属节点的 IP 地址发生变化(例如,由于 DHCP),则必须运行该脚本以更新 IP 信息。在更新集群配置后,集群才能正常工作。
如果由于任何原因(例如 DHCP)更改了控制器节点的 IP 地址,则必须使用以下脚本更新集群配置。这适用于单节点部署和集群部署。
要在控制器节点的 IP 地址发生变化后修复集群配置,请运行 change_ip.py
脚本。
该脚本位于 /opt/avi/python/bin/cluster_mgr/change_ip.py 目录中。
更改 IP 脚本仅更改 NSX Advanced Load Balancer 集群配置。它不会更改正在运行控制器服务的主机或虚拟机的 IP 地址。例如,它不会在 VMware 托管的控制器中更新 /etc/network/interfaces 文件。您必须在 VMware 上的 vApp 属性中更改虚拟机的 IP 地址。
在裸机配置中更改控制器的 IP 地址时,需要注意一些特殊事项。
脚本选项
在运行脚本之前,请检查以确保新 IP 在所有节点上正常工作,并且可以在节点之间访问该 IP。如果无法访问一个或多个 IP,脚本将尽可能地进行更新,但在恢复连接时,不能保证集群恢复同步。
可以在更改了管理 IP 地址的控制器节点上运行脚本,也可以在同一集群中的另一个控制器节点上运行脚本。
必须在集群中的一个节点上运行脚本。如果没有在集群中的节点上运行脚本,脚本将会失败。
-i ipaddr
:指定在其中运行脚本的节点的新 IP 地址。
-o ipaddr
:指定集群中的另一个节点的 IP 地址。
-m subnet-mask
:如果还更改了子网,请使用该选项指定新的子网。使用 255.255.255.0. 格式指定掩码。
-g gateway-ipaddr
:如果还更改了默认网关,请使用该选项指定新的网关。
-m
和 -g
选项适用于集群中的所有 IP 地址。
更新单节点部署的 IP 信息
要更新单节点部署的控制器 IP 信息,请使用如下命令字符串:
*change_ip.py -i **ipaddr*
该命令在节点 10.10.25.81 上运行。由于未指定其他节点,因此,假设这是一个单节点集群(仅该控制器)。
username@avi:~$ | change_ip.py -i 10.10.25.81
在以下示例中,节点的默认网关也发生变化。
username@avi:~$ | change_ip.py -i 10.10.25.81 -g 10.10.10.1
更新控制器集群的 IP 信息
在执行 change_ip.py
之前,请确保可以通过 SSH 端口(通常为 22,容器为 5098)相互访问所有新的 IP。
要更新集群的控制器 IP 信息,请使用如下命令字符串:
change_ip.py -i **ipaddr **-o ipaddr -o ipaddr
示例:
username@avi:~$ | change_ip.py -i 10.10.25.81 -o 10.10.25.82 -o 10.10.25.83
该命令在节点 10.10.25.81 上运行,该节点是还包含节点 10.10.25.82 和 10.10.25.83 的三节点集群的成员。
可以在集群中的任何节点上运行该脚本。以下示例在节点 10.10.25.82 上运行:
username@avi:~$ | change_ip.py -i 10.10.25.82 -o 10.10.25.81 -o 10.10.25.83
在执行 change_ip.py 后,如果发生故障,请使用 recover.py 将节点转换为单个节点,然后再次创建三节点集群。有关更多信息,请参见《VMware NSX Advanced Load Balancer 管理指南》中的“恢复未正常运行的控制器集群”。
要验证系统是否正常运行,请转到控制器节点页面,并确保所有节点为 CLUSTER_ACTIVE
。
更改 Nutanix 集群上的控制器 IP 的步骤
以下是更改 Nutanix 集群上的控制器 IP 的步骤:
手动编辑主机上的网络脚本并更改接口配置,以将集群中每个控制器节点的 IP 地址更改为新 IP。
例如,必须按如下方式修改控制器虚拟机上的
/etc/network/interfaces/
文件(如果使用静态 IP):auto lo iface lo inet loopback auto eth0 iface eth0 inet static address <ipv4 address> netmask 24 gateway <ipv4 gw>
确保可以在网络中从其他控制器节点访问新控制器 IP 地址。
在控制器上运行
/opt/avi/python/bin/cluster_mgr/change_ip.py
脚本以反映上述 IP 地址更改。重新引导控制器。
对于 3 节点集群部署,您需要更改所有控制器上的 IP,然后从任意控制器节点中运行如下所示的命令以更新集群的控制器 IP 信息。
username@avi:~$ change_ip.py -i **ipaddr **-o ipaddr -o ipaddr
其中,
-i ipaddr
:指定在其中运行脚本的节点的新 IP 地址。-o ipaddr
:指定集群中的另一个节点的 IP 地址。-m subnet-mask
:如果还更改了子网,请使用该选项指定新的子网。使用以下格式指定掩码:255.255.255.0-g gateway-ipaddr
:如果还更改了默认网关,请使用该选项指定新的网关。注:控制器集群必须使用新的 IP 恢复启动。
注意事项
请注意以下事项:
接口名称(eth0、eth1 等)以及找到的 MAC 地址是静态的,无法进行修改。
除了标签以外,无法修改主 (eth0) 接口。
无法为新接口配置默认网关。
各个标签需要是某个接口的一部分,而不能在多个接口中重复使用某个标签。
对于新接口,仅支持静态 IP 模式。不支持 DHCP。
访问控制仅应用于主接口。请继续使用外部防火墙设置限制访问,例如新接口的入站 SSH。
不要编辑 /etc/network/interfaces 文件。必须通过集群配置完成所有配置(例如 IP、静态路由)。
辅助接口必须在虚拟机中保持已连接状态。如果重新引导了虚拟机,断开连接辅助接口可能导致移除这些接口。