本节详细介绍了支持 NSX Advanced Load Balancer IPAM 配置的云。

以下云支持 IPAM 配置:

  • 容器(Mesos、OpenShift、Docker UCP、Rancher)

  • Linux 服务器云(裸机)

  • VMware

  • 无权访问

配置 IPAM

NSX Advanced Load Balancer 从配置的子网内的 IP 地址池中分配 IP 地址,如下所列:

  1. 导航到基础架构 > 云资源 > 网络

  2. 您可以从选择云下拉菜单中选择云,然后单击创建

  3. 指定网络名称。

  4. IP 地址管理下,选中启用 DHCP启用 IPv6 自动配置复选框。

  5. 添加 IPv4 和 IPv6 网络以分配 IP 地址。

    1. 单击添加

    2. 指定子网前缀

    3. 选中将静态 IP 地址用于 VIP 和 SE 复选框。在 IP 地址范围下指定池范围。

    4. 单击保存

    5. 对于用于 IP 地址分配的每个网络,请重复步骤 1 至 4。

  6. 单击保存

注:
  • 如果静态 IP 地址池为空或已用完,虚拟服务创建将失败。

  • 对于东西向 IPAM,创建另一个具有相应链路本地子网和单独 IPAM/DNS 配置文件的网络。

  • NSX Advanced Load Balancer Kubernetes/OpenShift 云不受支持。

  • NSX Advanced Load Balancer IPAM 上,不支持添加或删除 VIP 或者更改 vip_id(例如当虚拟服务上存在多个 VIP 时)。

同时使用 IPv4 和 IPv6 子网创建 IPAM 网络

以下是同时使用 IPv4 和 IPv6 子网创建 IPAM 网络的示例:

导航到模板 > IPAM/DNS 配置文件,并为 IPAM 创建一个占位符。

如果在虚拟服务配置中未提供特定的网络或子网,您可以将一个或多个创建的网络分配为默认的可用网络。

支持 VRF 的 IPAM

您可以启用在 VRF 中分配 IP 复选框,以使 NSX Advanced Load Balancer 从虚拟服务 VRF 中的网络分配 IP。该选项仅适用于 NSX Advanced Load Balancer IPAM。

选择网络以进行 IP 分配

为分配的给定 IP 请求选择网络基于以下内容:

  1. 如果在创建虚拟服务期间指定了网络和子网,系统将从该特定网络/子网中进行分配。如果该子网没有可用的静态 IP,API 请求将失败。

  2. 如果在创建虚拟服务期间未指定网络/子网(只能通过 CLI 或 API 指定),系统将考虑 IPAM/DNS 配置文件的可用网络中的所有网络,并随机选择一个具有可用 IP 的网络。

    1. 对于 v4 请求,系统先检查具有 v4 子网的网络中的可用 IP,然后再考虑具有 v4 和 v6 子网的网络。

    2. 对于 v6 请求,系统先检查具有 v6 子网的网络中的可用 IP,然后再考虑具有 v4 和 v6 子网的网络。

注:

如果 VIP 的 IPv4 或 IPv6 地址发生任何变化,都会中断虚拟服务。如果更改了虚拟服务的自动分配类型,则可能会发生这种情况。例如,如果虚拟服务的 IPv4 地址是使用具有 v4v6 子网的网络分配的,其 auto_allocate_typev4 更改为 v4_v6 并选择了相应的 v6 子网,系统将尝试为该虚拟服务分配 IPv6 地址。如果分配成功,则会发生虚拟服务中断。

IPAM 对用户首选的 IP 地址的支持

NSX Advanced Load Balancer IPAM 支持使用用户首选的 IP 地址和/或具有自动分配类型的 IPv6 地址以创建虚拟服务。要使用该功能,请执行以下操作:

  • 设置 VsVip 对象的 ip_addressip6_address 字段。

  • auto_allocate_ip 字段设置为 True,并相应地设置 auto_allocate_ip_type 字段。

控制器为虚拟服务分配该特定 IP 地址。如果该 IP 地址不可用,虚拟服务创建将失败。指定的 IP 地址必须在网络或子网上已配置的静态池中存在。

此功能支持所有三种自动分配类型,即 v4、v6 和 v4_v6。在使用 v4_v6 分配创建虚拟服务 IP 地址时,必须同时指定 IPv4 和 IPv6 地址,或者将它们都留空。此外,不允许将现有的自动分配 IP 地址更新为相同类型(v4 或 v6)的不同首选 IP 地址。

以下是允许的操作列表:

  1. 创建具有首选静态 IP 的 VIP(v4、v6 和 v4_v6 都支持)。

  2. 将现有 VIP 的分配类型从 v4 更改为 v6,并指定首选的 IPv6。

  3. 将现有 VIP 的分配类型从 v4 更改为 v4_v6,并指定首选的 IPv6。

    1. 如果 IPAM 网络和子网相同,则必须取消设置 IPv4 地址字段或将其保持不变(在两种情况下,都会保留现有的 IPv4 地址)。

    2. 如果 IPAM 网络或子网不相同,则必须取消设置 IPv4 地址字段。

  4. 将现有 VIP 的分配类型从 v6 更改为 v4,并指定首选的 IPv4。

  5. 将现有 VIP 的分配类型从 v6 更改为 v4_v6,并指定首选的 IPv4。

    1. 如果 IPAM 网络和子网相同,则必须取消设置 IPv6 地址字段或将其保持不变(在两种情况下,都会保留现有的 IPv6 地址)。

    2. 如果 IPAM 网络或子网不相同,则必须取消设置 IPv6 地址字段。

IPv6 地址字段必须保持不变以将 IPAM 网络保持不变,或者将其留空以更改 IPAM 网络。

NSX Advanced Load Balancer 不支持以下操作。

  1. 创建具有 v4_v6 分配并仅设置了 ip_addressip6_address 的 VIP。

    1. 必须设置(首选)或取消设置这两个 IP 地址。

  2. 将现有的自动分配 IP 地址更新为相同类型(v4 或 v6)的不同首选 IP 地址。

    1. 无法将具有 IPv4-A 的现有 VIP 更新为不同的首选 IPv4-B

    2. 如果需要更改 VIP 的分配网络或子网,则 ip_address/ip6_address 字段必须保留空白(控制器将为用户选择 IP 地址)。

    3. 如果需要相同类型的新首选 IP,请删除该 VIP 并重新创建。

使用自动分配 IP 地址配置虚拟服务

登录到 CLI,并使用 configure vsvip <name> 设置自动分配 IP 地址。

[admin:10-79-108-162]: > show network network1
+----------------------------+----------------------------------------------+
| Field                      | Value                                        |
+----------------------------+----------------------------------------------+
| uuid                       | network-eea5aaa2-2225-40bd-b27d-60d7fe046d01 |
| name                       | network1                                     |
| vcenter_dvs                | True                                         |
| dhcp_enabled               | True                                         |
| exclude_discovered_subnets | False                                        |
| configured_subnets[1]      |                                              |
|   prefix                   | 10.10.10.0/24                                |
|   static_ranges[1]         |                                              |
|     begin                  | 10.10.10.100                                 |
|     end                    | 10.10.10.150                                 |
| vrf_context_ref            | global                                       |
| synced_from_se             | False                                        |
| ip6_autocfg_enabled        | True                                         |
| tenant_ref                 | admin                                        |
| cloud_ref                  | Default-Cloud                                |
+----------------------------+----------------------------------------------+
[admin:10-79-108-162]: > configure vsvip vsvip1

[admin:10-79-108-162]: vsvip> vip vip_id 1
New object being created
[admin:10-79-108-162]: vsvip:vip> auto_allocate_ip
[admin:10-79-108-162]: vsvip:vip> ip_address 10.10.10.120
[admin:10-79-108-162]: vsvip:vip> save
[admin:10-79-108-162]: vsvip> save
+-----------------------------+--------------------------------------------+
| Field                       | Value                                      |
+-----------------------------+--------------------------------------------+
| uuid                        | vsvip-54aa9247-d807-458d-b9e3-a8956bcb266a |
| name                        | vsvip1                                     |
| vip[1]                      |                                            |
|   vip_id                    | 1                                          |
|   ip_address                | 10.10.10.120                               |
|   enabled                   | True                                       |
|   discovered_networks[1]    |                                            |
|     network_ref             | network1                                   |
|     subnet[1]               | 10.10.10.0/24                              |
|   auto_allocate_ip          | True                                       |
|   auto_allocate_floating_ip | False                                      |
|   avi_allocated_vip         | False                                      |
|   avi_allocated_fip         | False                                      |
|   ipam_network_subnet       |                                            |
|     network_ref             | network1                                   |
|     subnet                  | 10.10.10.0/24                              |
|   auto_allocate_ip_type     | V4_ONLY                                    |
|   prefix_length             | 32                                         |
| vrf_context_ref             | global                                     |
| east_west_placement         | False                                      |
| tenant_ref                  | admin                                      |
| cloud_ref                   | Default-Cloud                              |
+-----------------------------+--------------------------------------------+

为 SE 和虚拟 IP 分配不同的 IPAM 范围

您可以指定一组静态 IP 是仅用于 SE vNIC,仅用于 VIP,还是同时用于两者。对于任何给定的子网,仅支持以下配置:

  • VIP 的 IP 范围和/或 SE 的 IP 范围

  • 两者的 IP 范围

如果子网包含两者的 IP 范围以及 VIP 或 SE 的 IP 范围,系统将显示错误消息。

使用 UI

以下是允许为 VIP 和 SE 配置单独 IP 范围的步骤:

  1. NSX Advanced Load Balancer UI 中,导航到基础架构 > 网络

  2. 单击编辑

  3. 编辑网络设置屏幕中,禁用将静态 IP 地址用于 VIP 和 SE 选项。如果选择该选项,IP 范围将同时用于 VIP 和 SE。

  4. 网络概览页面中,单击一个现有网络以显示配置的各种静态 IP 范围。将在子网前缀旁边显示子网中的所有 ip_range_runtimes 的组合可用/总 IP 计数。



使用 CLI

static_ip_ranges 字段中指定一个静态 IP 地址范围以及如何分配 IP 范围。

以下是 static_ip_ranges 配置:

configure network vxw-dvs-34-virtualwire-33-sid-2140032-wdc-02-vc14-avi-dev026
[admin:1234]: network> configured_subnets prefix 100.64.34.0/24
[admin:1234]: network:configured_subnets> static_ip_ranges
New object being created
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.100
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end 100.64.34.110
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_vip
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.140
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.150
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_vip
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.240
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.250
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_se
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.195
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.195
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_se
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges>save
[admin:1234]: network:configured_subnets>save
注:
  • ip_range_runtimes 中,分配的 IP 存储在 allocated_ips 字段(以前命名为 ip_allocated)中。

  • 在分配的 IP 中,mac 字段已重命名为 obj_info,而 se_ref 字段已重命名为 obj_ref

  • 默认情况下,STATIC_IPS_FOR_VIP_AND_SE 选项配置为分配类型。在升级 NSX Advanced Load Balancer 时,所有现有的 static_ipsstatic_ranges 都将转换为 STATIC_IPS_FOR_VIP_AND_SE 类型的 static_ip_ranges

  • static_ipsstatic_ranges 字段已弃用。

  • 引入了 type 字段,以指定如何分配 IP 范围。

static_ip_ranges 配置如下所示:

configure network vxw-dvs-34-virtualwire-33-sid-2140032-wdc-02-vc14-avi-dev026
[admin:1234]: network> configured_subnets prefix 100.64.34.0/24
[admin:1234]: network:configured_subnets> static_ip_ranges
New object being created
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.100
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end 100.64.34.110
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_vip
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.140
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.150
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_vip
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.240
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.250
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_se
[admin:1234]: network:configured_subnets:static_ip_ranges> save
[admin:1234]: network:configured_subnets> static_ip_ranges
[admin:1234]: network:configured_subnets:static_ip_ranges> range begin 100.64.34.195
[admin:1234]: network:configured_subnets:static_ip_ranges:range> end end 100.64.34.195
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges> type static_ips_for_se
[admin:1234]: network:configured_subnets:static_ip_ranges:range> save
[admin:1234]: network:configured_subnets:static_ip_ranges>save
[admin:1234]: network:configured_subnets>save

以下是配置的网络:

+----------------------------+--------------------------------------------------------------+
| Field                      | Value                                                        |
+----------------------------+--------------------------------------------------------------+
| uuid                       | dvportgroup-233-cloud-4b5fd097-0a9a-444f-b328-1f016eb99987   |
| name                       | vxw-dvs-34-virtualwire-33-sid-2140032-wdc-02-vc14-avi-dev026 |
| vcenter_dvs                | True                                                         |
| vimgrnw_ref                | vxw-dvs-34-virtualwire-33-sid-2140032-wdc-02-vc14-avi-dev026 |
| dhcp_enabled               | True                                                         |
| exclude_discovered_subnets | False                                                        |
| configured_subnets[1]      |                                                              |
|   prefix                   | 100.64.34.0/24                                               |
|   static_ip_ranges[1]      |                                                              |
|     range                  |                                                              |
|       begin                | 100.64.34.100                                                |
|       end                  | 100.64.34.110                                                |
|     type                   | STATIC_IPS_FOR_VIP                                           |
|   static_ip_ranges[2]      |                                                              |
|     range                  |                                                              |
|       begin                | 100.64.34.200                                                |
|       end                  | 100.64.34.210                                                |
|     type                   | STATIC_IPS_FOR_VIP                                           |
|   static_ip_ranges[3]      |                                                              |
|     range                  |                                                              |
|       begin                | 100.64.34.140                                                |
|       end                  | 100.64.34.150                                                |
|     type                   | STATIC_IPS_FOR_SE                                            |
|   static_ip_ranges[4]      |                                                              |
|     range                  |                                                              |
|       begin                | 100.64.34.240                                                |
|       end                  | 100.64.34.250                                                |
|     type                   | STATIC_IPS_FOR_SE                                            |
|   static_ip_ranges[5]      |                                                              |
|     range                  |                                                              |
|       begin                | 100.64.34.195                                                |
|       end                  | 100.64.34.195                                                |
|     type                   | STATIC_IPS_FOR_SE                                            |
| vrf_context_ref            | global                                                       |
| synced_from_se             | True                                                         |
| ip6_autocfg_enabled        | False                                                        |
| tenant_ref                 | admin                                                        |
| cloud_ref                  | Default-Cloud                                                |
+----------------------------+--------------------------------------------------------------+
注:

网络运行时下的 subnet_runtime 字段也已修改。IP 分配和 IP 计数信息将存储在 ip_range_runtimes 字段中。subnet_runtime 下的 ip_allocedtotal_ip_countused_ip_countfree_ip_count 字段已弃用。每个 ip_range_runtimes 条目将包含特定类型(SE 和/或 VIP)的所有静态 IP 范围的组合 IP 分配和计数信息。

VIP 标签的内部 IPAM

您可以使用 IPAM 配置文件中的特定网络集进行 VIP 分配。标签将添加到 IPAM 配置文件中的可用网络和 vsvip

注:

目前,仅支持通过 CLI/API 使用该功能。

可用网络和 vsvip 按以下方式进行匹配:

  • 具有标签 X 的 vsvip 只能使用 IPAM 配置文件中具有标签 X 的网络。

  • 没有标签的 vsvip 可以使用 IPAM 配置文件中的任何网络(具有标签或没有标签)。

IPAM 配置文件中的网络的标签是在配置文件的 usable_networks 字段中配置的。vsvip 上的标签是在 ipam_selector 字段中配置的。

登录到控制器并为 VIP 标签配置内部 IPAM,如下所示:

[admin:1234]: > configure vsvip vsvip1
[admin:1234]: vsvip> vip vip_id 1
New object being created
[admin:1234]: vsvip:vip> auto_allocate_ip
[admin:1234]: vsvip:vip> save
[admin:1234]: vsvip> ipam_selector
[admin:1234]: vsvip:ipam_selector> type selector_ipam
[admin:1234]: vsvip:ipam_selector> labels
New object being created
[admin:1234]: vsvip:ipam_selector:labels> key key2
[admin:1234]: vsvip:ipam_selector:labels> value value2
[admin:1234]: vsvip:ipam_selector:labels> save
[admin:1234]: vsvip:ipam_selector> save
[admin:1234]: vsvip> save
注:

internal_profile 下的 usable_networks_refs 字段已弃用。要添加网络,请使用 usable_networks 字段。

允许更改现有可用网络的标签或 vsvip 的标签,这不会影响现有的分配。新标签将适用于新分配。

每个可用网络和每个 vsvip 仅支持一个标签。