基于 BGP 的虚拟服务意味着,VIP 是通过 BGP 通告的。对于所有启用了“通告 VIP”字段的对等体,将通告相应的 VIP。

您可以使用标签选择要通告的 VIP。在配置 VSVIP 时,您可以定义所有具有特定标签的对等体必须通告特定的 VIP。只有在虚拟服务标签与对等体的标签匹配时,前端的每个对等体才会从虚拟服务收到 VIP 路由通告。

考虑一个示例,其中

  • 一个 SE 连接到三个前端路由器:FE-Router-1、FE-Router-2 和 FE-Router-3。

  • FE-Router-1、FE-Router-2 和 FE-Router-3 分别具有 Peer1、Peer2 和 Peer3 标签。

  • 在 Global VRF 中具有三个虚拟服务:VS1、VS2 和 VS3。



  • 为 VS1 (1.1.1.1) 配置了 Peer1 标签。这意味着,将向 Peer1 通告该虚拟服务。

  • 同样,根据标签定义,将向 Peer2 通告 VS2,而向 Peer3 通告 VS 3。

每次为虚拟服务启用 BGP 时,将向所有前端路由器通告 VIP。不过,此处仅向选定的对等体通告 VIP。

为了实现该目的,在 VSVIP 对象配置中引入了标签列表 bgp_peer_labels

VsVip.bgp_peer_labels 是唯一字符串列表(最多 128 个字符串)。

每个字符串的长度最多可以为 128 个字符。标签可以由大小写字母、数字、下划线和连字符组成。

注:
  • 如果 VSVIP 没有任何标签,将向 advertise_vip 设置为 True 的所有 BGP 对等体通告该 VIP。

  • 如果 VSVIP 具有 bgp_peer_labelsadvertise_vip 字段设置为 True 并且标签与 bgp_peer_labels 匹配的对等体将收到 VIP 通告。不过,如果 BGP 对等体配置没有标签或标签不匹配,对等体将不会收到 VIP 通告。

配置 BGP 对等标签

考虑一个示例,其中 VS1 是具有 VSVIP vs1-vsvsip 的 BGP 虚拟服务。

Global VRF 具有一个没有任何标签的对等体。

要启用选择性 VIP 通告,请为该对等体添加 Peer1 标签,并在 VsVip.bgp_peer_labels 中添加 Peer1 标签。

为 VRF 配置 BGP 对等体

以下是从 NSX Advanced Load Balancer UI 中配置 BGP 对等体标签的步骤:

  1. 导航到基础架构 > 云资源 > 路由。单击创建

  2. 选中启用 BGP 对等连接复选框以指定 BGP 相关详细信息,例如:

    1. BGP 自治系统 ID

    2. BGP 对等体类型

    3. 对等体的保持活动状态间隔

    4. 对等体的保持时间

    5. 要用于通告的路由的本地首选项。

    6. 必须考虑本地 AS 的次数。

  3. 选择用于向该对等体通告路由的标签

  4. 选择放置网络

  5. 启用向对等体通告 VIP 选项。

  6. 单击保存

或者,也可以使用 CLI 配置 BGP 对等体,如下所示:

configure vrfcontext global
Updating an existing object. Currently, the object is:
+----------------------------+------------------------------------------+
| Field                      | Value                                                        |
+----------------------------+------------------------------------------+
| uuid                       | vrfcontext-a1c097dd-f58e-45ca-b90a-6de72a4fd19d              |
| name                       | global                                                       |
| bgp_profile                |                                                              |
|   local_as                 | 65000                                                        |
|   ibgp                     | True                                                         |
|   peers[1]                 |                                                              |
|     remote_as              | 65000                                                        |
|     peer_ip                | 10.10.114.19/24                                              |
|     subnet                 | 10.10.114.0/24                                               |
|     bfd                    | True                                                         |
|     network_ref            | vxw-dvs-34-virtualwire-15-sid-1060014-blr-01-vc06-avi-dev010 |
|     advertise_vip          | True                                                         |
|     advertise_snat_ip      | True                                                         |
|     advertisement_interval | 5                                                            |
|     connect_timer          | 10                                                           |
|     ebgp_multihop          | 0                                                            |
|     shutdown               | False                                                        |
|   keepalive_interval       | 60                                                           |
|   hold_time                | 180                                                          |
|   send_community           | True                                                         |
|   shutdown                 | False                                                        |
| system_default             | True                                                         |
| lldp_enable                | True                                                         |
| tenant_ref                 | admin                                                        |
| cloud_ref                  | Default-Cloud                                                |
+----------------------------+------------------------------------------+
[admin:]: vrfcontext> bgp_profile
[admin:]: vrfcontext:bgp_profile> peers index 1
[admin:]: vrfcontext:bgp_profile:peers> label Peer1
[admin:]: vrfcontext:bgp_profile:peers> save
[admin:]: vrfcontext:bgp_profile> save
[admin:]: vrfcontext> save

配置 VSVIP 1

NSX Advanced Load Balancer 的 VS VIP 创建屏幕中,根据需要添加 BGP 对等体标签:

configure vsvip vs1-vsvip
Updating an existing object. Currently, the object is:
+-----------------------------+-----------------------------------------+
| Field                       | Value                                      |
+-----------------------------+-----------------------------------------+
| uuid                        | vsvip-0cab1bbb-d474-4365-8ba4-9d6a3f0add34 |
| name                        | vs1-vsvip                                  |
| vip[1]                      |                                            |
|   vip_id                    | 0                                          |
|   ip_address                | 1.1.1.1                                    |
|   enabled                   | True                                       |
|   auto_allocate_ip          | False                                      |
|   auto_allocate_floating_ip | False                                      |
|   avi_allocated_vip         | False                                      |
|   avi_allocated_fip         | False                                      |
|   auto_allocate_ip_type     | V4_ONLY                                    |
|   prefix_length             | 32                                         |
| vrf_context_ref             | global                                     |
| east_west_placement         | False                                      |
| tenant_ref                  | admin                                      |
| cloud_ref                   | Default-Cloud                              |
+-----------------------------+-----------------------------------------+
[admin:]: vsvip> bgp_peer_labels Peer1
[admin:]: vsvip> save

注意事项

  • 该功能仅适用于 BGP 虚拟服务。对于不使用 BGP 的虚拟服务,无法启用 bgp_peer_labels 字段。

  • 在配置了选择性 VIP 通告时,无法启用 use_vip_as_snat 选项。

基于 BGP 标签的虚拟服务放置

NSX Advanced Load Balancer 21.1.4 版本之前,BGP 虚拟服务放置限制为最多 4 个不同的对等网络,并且无法感知标签。如果具有超过 4 个不同的对等网络,控制器将从中随机选择任意 4 个网络。

NSX Advanced Load Balancer 21.1.4 版本开始,虚拟服务放置是基于 BGP 对等体标签配置进行的。

  • 用例 1:带有标签 X 的虚拟服务 VIP 只能放置在与包含标签 X 的对等体建立 BGP 对等连接的 SE 上。

    VRF

    BGP 对等体标签

    VSVIP BGP 对等体标签

    网络 1

    标签 1

    标签 1

    网络 2

    标签 2

    标签 2

    网络 3

    标签 3

    标签 3

    网络 4

    标签 4

    标签 4

    网络 5

    标签 5

    在该用例中,虚拟服务放置在网络 1、网络 2、网络 3 和网络 4 上。

  • 用例 2:没有标签的虚拟服务 VIP 可以放置在与任何子网中的对等体建立 BGP 对等连接的 SE 上。即,如果 BGP 对等体具有标签,但 BGP 虚拟服务 VIP 没有标签,则通告将虚拟服务 VIP 放置在所有对等体网卡(最多 4 个不同的对等网络)上。

    VRF

    BGP 对等体标签

    VSVIP BGP 对等体标签

    网络 1

    标签 1

    网络 2

    标签 2

    网络 3

    标签 3

    网络 4

    标签 4

    网络 5

    标签 5

    在该用例中,虚拟服务随机放置在 4 个网络中的任一网络上。

  • 用例 3:如果稍后更新虚拟服务 VIP 以与一个标签相关联,则 SE 接收虚拟服务 SE_List 更新,从所有其他对等体中撤消该 VIP,并仅将其放置在与具有匹配标签的对等体相关的网卡上(中断性更新)。例如,初始配置如下所示:

    VRF

    BGP 对等体标签

    VSVIP BGP 对等体标签

    网络 1

    标签 1

    标签 1

    网络 2

    标签 2

    标签 2

    网络 3

    标签 3

    标签 3

    网络 4

    标签 4

    网络 5

    标签 5

    注:

    如果在 VS VIP 上进行更新以与这些标签相关联,将导致中断性的虚拟服务更新。

    更新的配置如下所示:

    VRF

    BGP 对等体标签

    VSVIP BGP 对等体标签

    网络 1

    标签 1

    标签 1

    网络 2

    标签 2

    标签 2

    网络 3

    标签 3

    标签 3

    网络 4

    标签 4

    标签 4

    网络 5

    标签 5

  • 用例 4:如果从虚拟服务中移除标签,而虚拟服务 VIP 不再具有标签,虚拟服务 VIP 将放置在所有对等体网卡(最多 4 个不同的对等网络)上。

  • 用例 5:如果在创建虚拟服务 VIP 时使用的标签没有匹配的对等体,则由于配置无效而阻止创建 VS VIP,无论是在创建虚拟服务时,还是以后更新虚拟服务 VIP 标签时。

    VRF

    BGP 对等体标签

    VSVIP BGP 对等体标签

    网络 1

    标签 1

    标签 5

    网络 2

    标签 2

    网络 3

    标签 3

    网络 4

    标签 4

在该用例中,由于没有匹配的 VS VIP BGP 对等体标签,将阻止创建 VS VIP,并出现不存在具有匹配标签的 BGP 对等体错误。