本节介绍了 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 设备之间的通信进行分类。

通过进行该分类,可以将流量从默认主接口移动到新接口(如果已配置)。

注:
  • MGMTSE_SECURE_CHANNEL 只能由主 (eth0) 接口执行。

  • 可以将 HSM 移动到新接口。

运行模式

最初,在 vCenter 中部署控制器(安装期间)时,为控制器置备了一个接口。

以下是添加新接口的步骤:

  1. 关闭控制器虚拟机,并通过 vCenter UI 添加接口。

  2. 在打开控制器虚拟机电源时,NSX Advanced Load Balancer 将识别新接口,并且可以通过 NSX Advanced Load Balancer CLI 执行新配置。

注:

不支持热插拔接口(在不关闭虚拟机电源的情况下添加到虚拟机)。

要在 NSX Advanced Load Balancer 控制器 软件中识别接口并通过标签进行进一步的分类,必须使用 NSX Advanced Load Balancer 集群配置模式。

配置单节点控制器

要配置新接口,请执行以下操作:

  1. 关闭控制器,并通过 vCenter 添加新接口。

  2. 打开控制器电源。新接口将显示为 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 标签。

注:

可以将已配置额外接口和路由的节点添加到集群中。

取消配置单节点控制器的新接口

以下是将配置恢复为使用主接口的步骤:

  1. 从第二个接口 (eth1) 中移除配置(模式、IP、标签)。

  2. 将 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 的步骤:

  1. 手动编辑主机上的网络脚本并更改接口配置,以将集群中每个控制器节点的 IP 地址更改为新 IP。

  2. 例如,必须按如下方式修改控制器虚拟机上的 /etc/network/interfaces/ 文件(如果使用静态 IP):

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
     address <ipv4 address>
     netmask 24
     gateway <ipv4 gw>
  3. 确保可以在网络中从其他控制器节点访问新控制器 IP 地址。

  4. 在控制器上运行 /opt/avi/python/bin/cluster_mgr/change_ip.py 脚本以反映上述 IP 地址更改。

  5. 重新引导控制器。

对于 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、静态路由)。

  • 辅助接口必须在虚拟机中保持已连接状态。如果重新引导了虚拟机,断开连接辅助接口可能导致移除这些接口。