Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 即服务

了解 BGP 即服务

BGP 即服务 (BGPaaS) 功能允许来宾虚拟机 (VM) 使用 BGP 将路由放置在自己的虚拟路由和转发 (VRF) 实例中。

Contrail BGPaaS 功能

将 BGPaaS 与 Contrail 网络配合使用需要客户机虚拟机连接到控制节点,并能够将路由播发到 VRF 实例中。

借助 BGPaaS 功能:

  • 虚拟路由器代理能够接受来自虚拟机的 BGP 连接,并将其代理到控制节点。

  • vRouter 代理始终选择一个用作 XMPP 服务器的控制节点。

Contrail 网络为 BGPaaS 会话提供路由导出功能。播发到租户 VM 的所有路由的下一跃点设置为租户 VM 子网的默认网关地址。这使得租户 BGP 实现相对简单,因为不需要支持 BGP 下一跃点的递归解析。

BGPaaS 对象与虚拟机接口相关联,而不仅仅是虚拟机 (VM),这使得租户 VM 能够在需要时在多个虚拟网络中具有 BGP 会话。

Contrail 网络中的 BGPaaS 具有以下功能:

  • 默认情况下,所有 BGPaaS 会话都配置为具有双向路由交换。布尔属性 bgpaas-suppress-route-advertisement 可确保不会将路由播发到租户 VM。

  • 如果要将 inet6 路由播发到租户 VM,则会使用 IPv6 子网的默认网关地址作为 BGP 下一跃点播发这些路由。布尔属性 会导致 bgpaas-ipv4-mapped-ipv6-nexthop将 IPv4 子网的默认网关(采用 IPv4 映射的 IPv6 格式)用作下一跃点。

  • 如果同一虚拟网络中的多个租户虚拟机具有 BGPaaS 会话,并且它们使用 eBGP,则标准 BGP AS 路径环路防护规则可防止将一个租户虚拟机播发的路由播发到其他租户虚拟机。 as-override 当从租户虚拟机获知的路由播发到同一虚拟网络中的另一个租户虚拟机时,添加到 BGPaaS 对象中的现有 BgpSessionAttributes 字段会导致控制节点将租户虚拟机的 AS 编号替换为其自己的 AS 编号。租户 VM 无需实现任何新功能。

Contrail 网络支持高可用性 (HA) 架构,BGPaaS 支持控制节点区域选择,并提供可用于配置 BGPaaS 控制节点区域对等方的选项。

此功能使您能够设置主控制节点区域和辅助控制节点区域,这些区域可以有一个或多个控制节点。其原因是,人们通常依赖 BGPaaS 来提供与 VNF 之间的路由,VNF 由跨不同计算的多个节点组成,而 VNF 通常依赖于两个 BGP 对等方进行 HA。这些控制节点区域功能提高了 Contrail 中 BGPaaS 的稳健性和故障切换功能。

以下是注意事项:

  • BGP 会话必须使用 IPv4 传输。

  • VNF 必须支持 RFC 2545( 使用 BGP-4 多协议扩展进行 IPv6 域间路由),才能通过 IPv4 对等方传输 IPv6 路由。

  • 仅支持 IPv4 (inet) 和 IPv6 (inet6) 地址族。

适用于 BGPaaS 的 Contrail 网络配置支持以下功能:

  • 全局系统配置具有添加、修改或删除控制节点区域的选项

  • 控制节点区域具有添加、修改或删除控制节点的选项

  • 控制节点可以选择添加、修改或删除控制节点区域,并且只能有一个控制节点区域

  • BGPaaS 可以选择添加、修改或删除主控制节点或辅助控制节点区域

  • 如果控制节点区域具有多个控制节点,则在控制节点区域中为 BGP 对等互连选择的控制节点是随机的

  • 在每个区域中仅使用一个控制节点,VNF 可以预测地与该特定控制节点建立 bgp 对等连接。

BGPaaS 用例

本节提供使用 Contrail 实现 BGPaaS 的示例方案。

租户叠加网络中的动态隧道插入

各种应用程序需要在虚拟网络中插入动态隧道。虚拟网络功能 (VNF) 提供隧道终止功能。隧道终止类型因应用程序类型而异,例如商业 VPN、移动小型站点回传、VPC 等。关键要求是隧道需要在虚拟网络中插入动态的新网络可访问性信息。隧道网络可达性插入的主要方法是使用 BGP。

BGPaaS 允许将棕地 VNF 迁移到 Contrail,从而保留应用程序行为和 BGP 要求,而无需重写应用程序。

图 1 显示了将动态隧道插入虚拟网络的需求。

图1:动态隧道插入 Dynamic Tunnel Insertion

应用程序的动态网络可访问性

域名系统 (DNS) 是一种广泛使用的应用程序,它使用 BGP 作为机制,根据负载、维护、可用性等指标调整其服务的可访问性。当 DNS 服务迁移到使用叠加的环境时,需要一种机制来保留现有的应用程序行为和要求,包括宣布和撤销对可用应用程序的可访问性的能力。

此要求不仅限于 DNS。其他应用程序(如虚拟化演进数据包核心 (vEPC) 等)使用 BGP 作为基于可用性和负载的网络可访问性机制。

用于高可用性的活体检测

网络组件(如 BGP、OSPF、PING、VRRP、BFD 或特定于应用程序的机制)提供了各种租户可访问性的激活机制。借助 vRouter 代理上的 BGP,BGP 可用于在本地计算节点上的租户与特定租户 VM 提供的服务之间提供活动检测机制。

使用 VNC API 配置 BGPaaS

要使用 VNC API 配置 BGPaaS,请执行以下操作:

  1. 访问默认项目。

    default_project = self._vnc_lib.project_read(fq_name=[u'default-domain', ‘bgpaas-tenant’])

  2. 创建 BGPaaS 对象。

    bgpaas_obj = BgpAsAService(name=‘bgpaas_1’, parent_obj=default_project)

  3. 将 BGP 对象附加到预先创建的虚拟机接口。

    bgpaas_obj.add_virtual_machine_interface(vmi)

  4. 设置 ASN。它必须是 eBGP 会话。

    bgpaas_obj.set_autonomous_system('65000')

    如果未设置 ASN,则将选择主实例 IP。

    bgpaas_obj.set_bgpaas_ip_address(u’10.1.1.5’)

  5. 设置会话属性。

    bgp_addr_fams = AddressFamilies(['inet’, ‘inet6’]) bgp_sess_attrs = BgpSessionAttributes(address_families=bgp_addr_fams,hold_time=60) bgpaas_obj.set_bgpaas_session_attributes(bgp_sess_attrs) self._vnc_lib.bgp_as_a_service_create(bgpaas_obj)

要删除 BGPaaS 对象,请按照给定的代码操作:

fq_name=[u'default-domain', ‘bgpaas-tenant’, ‘bgpaas_1’] bgpaas_obj = self._vnc_lib.bgp_as_a_service_read(fq_name=fq_name) bgpaas_obj.del_virtual_machine_interface(vmi) self._vnc_lib.bgp_as_a_service_update(bgpaas_obj) self._vnc_lib.bgp_as_a_service_delete(id=bgpaas_obj.get_uuid())

从 Contrail Web UI 配置 BGPaaS

要在租户中配置 BGPaaS,请执行以下操作:

  1. 从 Contrail Web 用户界面 (UI) 中选择 > BGP 即服务配置>服务 ”。将显示“BGP 即服务”页面。
  2. 单击 BGPaaS 页面上的 + 按钮。将显示创建 BGP 即服务页面。参见图 2
    图 2:创建 BGP 即服务 Create BGP as a Service
  3. 创建 BGPaaS 页面中,使用以下值填充字段以创建服务。

    领域

    描述

    名字

    输入 BGP 服务的名称 名称可以是不超过 15 个字符的唯一字符串,其中包含字母数字字符和连字符 (-)。

    IP 地址

    输入 BGPaaS 虚拟机上的 IPv4 或 IPv6 源地址。

    虚拟机接口

    输入虚拟机接口的 IP 地址。

    地址族

    根据您的要求从地址族列表中选择 inet 或 inet6。

    自治系统

    输入 1- 65,534 范围内的 AS 编号。

    Advanced Options

     

    等待时间

    输入未收到激活时 BGP 会话保持活动状态的最长时间。

    管理状态

    选择“ 管理 状态”框以将状态启用为 UP,并取消选中该框以将状态禁用为 DOWN。

  4. 单击 保存 以创建 BGP 对象。

通过 Contrail 命令配置 BGPaaS

要在租户中配置 BGPaaS,请执行以下操作:

  1. 从 Contrail 命令用户界面 (UI) 中选择“ 服务> BGPaaS”。 进入BGPaaS页面。
  2. 单击 BGPaaS 页面上的创建按钮。此时将显示“创建 BGPaaS”页面。参见图 3
    图 3:创建 BGPaaS Create BGPaaS
  3. “创建 BGPaaS ”页中,使用以下值填充字段以创建 BGP 对象。

    领域

    描述

    名字

    输入 BGP 服务的名称。名称可以是不超过 15 个字符的唯一字符串,其中包含字母数字字符和连字符 (-)。

    虚拟机接口

    输入虚拟机接口的 IP 地址。

    地址族

    根据您的要求从地址族列表中选择 inet 或 inet6。

    自治系统

    输入自治系统 (AS) 编号,范围为 1-65,535。

    如果在“全局配置”中启用 4 字节 ASN,则可以输入 1-4,294,967,295 范围内的 4 字节 AS 编号。

    Advanced Options

     

    IP 地址

    输入 BGPaaS 虚拟机上的 IPv4 或 IPv6 源地址。

    共享

    选中此复选框可将所有 VMI 与通用 bgp 路由器对象链接。如果未选中此框,则每个虚拟机接口将单独链接到其自己的 bgp 路由器对象。

    路线起点

    • 如果路由源自 BGP 路由器,请从列表中选择 BGP。

    • 如果路由源自外部网关协议 (EGP) 会话,请从列表中选择 EGP。

    • 如果网络层可达性信息 (NLRI) 是通过将路由重新分发到 BGP 中等方法而不是通过 BGP 获知的,请从列表中选择不完整。

    路由起点覆盖

    选中此复选框可将播发路径源的源属性覆盖为“不完整”。

    服务运行状况检查

    根据您的要求,从列表中选择任何服务运行状况检查对象。

    等待时间

    输入未收到激活时 BGP 会话保持活动状态的最长时间。

    循环计数

    输入在路由更新中可以看到同一 ASN 的次数。当超过环路计数时,路由将被丢弃。

    本地 ASN

    输入自治系统 (AS) 编号,范围为 1-65,535。

    如果在“全局配置”中启用 4 字节 ASN,则可以输入 1-4,294,967,295 范围内的 4 字节 AS 编号。

    AS 覆盖

    选中此复选框可将控制节点的 AS 编号替换为租户虚拟机的 AS 编号。

    使用 IPv4 映射的 IPv6 下一跃点

    选中此复选框可将 IPv4 映射的 IPv6 格式用作下一跃点,而不是 IPv4 子网的默认网关。

    抑制路由通告

    选中此复选框可防止将路由播发到租户 VM。

    主控制节点区域

    您可以选择 BGPaaS 虚拟机可用来执行 BGP 会话的控制节点。

    辅助控制节点区域

    您可以选择 BGPaaS 虚拟机可用来执行 BGP 会话的控制节点。

  4. 单击“创建”按钮以 创建 BGP 对象。