配置 BGP

Citrix ADC 设备支持 BGP (RFC 4271)。Citrix ADC 上的 BGP 功能如下:

  • Citrix ADC 将路由通告到 BGP 对等方。
  • Citrix ADC 将主机路由注入到虚拟 IP 地址 (VIP),具体取决于基础虚拟服务器的运行状况。
  • Citrix ADC 生成配置文件,以便在 HA 配置中进行故障转移后在辅助节点上运行 BGP。
  • 此协议支持 IPv6 路由交换。
  • 边界网关协议中的 As-覆盖支持

启用 BGP 后,您需要配置 BGP 路由的播发。为了进行故障排除,您可以限制 BGP 传播。您可以显示 BGP 设置以验证配置。

IPv6 BGP 的必备条件

在开始配置 IPv6 BGP 之前,请执行以下操作:

  • 请确保您了解 IPv6 BGP 协议。
  • 启用 IPv6 功能。

启用和禁用 BGP

要启用或禁用 BGP,您必须使用 CLI 或 GUI。启用 BGP 后,Citrix ADC 设备将启动 BGP 进程。禁用 BGP 时,设备会停止 BGP 进程。

要使用 CLI 启用或禁用 BGP 路由,请执行以下操作:

在命令提示窗口中,键入以下命令之一:

  • enable ns feature BGP

  • disable ns feature BGP

要使用 GUI 启用或禁用 BGP 路由,请执行以下操作:

  1. 导航到“系统”>“设置”,在“模式和功能”组中,单击“更改高级功能”。
  2. 选择或清除 BGP 路由选项。

广告 IPv4 路线

您可以将 Citrix ADC 设备配置为将主机路由通告到 VIP,并将路由通告到下游网络。

若要使用 VTYSH 命令行将 BGP 配置为通告 IPv4 路由,请执行以下操作:

在命令提示符下,按所示顺序键入以下命令:

命令 说明
VTYSH 显示 VTYSH 命令提示符。
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。可能的价:1 至 4 294 967 295。
Neighbor < IPv4 address> remote-as < as-number> 使用指定自治系统中邻居的链接本地 IPv4 地址更新 IPv4 BGP 邻居表。
Address-family ipv4 输入地址系列配置模式。
Neighbor < IPv4 address> activate 使用链接本地地址在对等节点和本地节点之间的 IPv4 路由器系列的 Exchange 前缀。
redistribute kernel 重新分发内核路由。
redistribute static 重新分配静态路由。

示例:


>VTYSH
NS# configure terminal
NS(config)# router BGP 5
NS(config-router)# Neighbor 10.102.29.170 remote-as 100
NS(config-router)# Address-family ipv4
NS(config-router-af)# Neighbor 10.102.29.170 activate
NS(config-router)# redistribute kernel
NS(config-router)# redistribute static

IPv6 BGP 的必备条件

在开始配置 IPv6 BGP 之前,请执行以下操作:

  • 请确保您了解 IPv6 BGP 协议。
  • 启用 IPv6 功能。

广告 IPv6 BGP 路由

边界网关协议 (BGP) 使上游路由器能够在两个独立 Citrix ADC 设备上托管的两个相同虚拟服务器之间进行负载平衡流量。路由广告使上游路由器能够跟踪位于 Citrix ADC 后面的网络实体。

若要使用 VTYSH 命令行将 BGP 配置为通告 IPv6 路由,请执行以下操作:

在命令提示符下,按所示顺序键入以下命令:

命令 说明
VTYSH 显示 VTYSH 命令提示符。
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。可能的价:1 至 4 294 967 295。
Neighbor < IPv6 address> remote-as < as-number> 使用指定自治系统中邻居的链接本地 IPv6 地址更新 IPv6 BGP 邻居表。
Address-family ipv6 输入地址系列配置模式。
Neighbor < IPv6 address> activate 使用链接本地地址在对等节点和本地节点之间的 IPv6 路由器系列的 Exchange 前缀。
redistribute kernel 重新分发内核路由。
redistribute static 重新分配静态路由。

示例:


>VTYSH
NS# configure terminal
NS(config)# router BGP 5
NS(config-router)# Neighbor a1bc::102 remote-as 100
NS(config-router)# Address-family ipv6
NS(config-router-af)# Neighbor a1bc::102 activate
NS(config-router)# redistribute kernel
NS(config-router)# redistribute static

验证 BGP 配置

您可以使用 VTYSH 显示 BGP 设置。

使用 VTYSH 命令行查看 BGP 设置

在命令提示窗口中,键入:

VTYSH
You are now in the VTYSH command prompt. An output similar to the following appears:
NS170#
At the VTYSH command prompt, type:
NS170# sh ip BGP
NS170# sh BGP
NS170# sh ip BGP neighbors
NS170# sh ip BGP summary
NS170# sh ip BGP route-map <map-tag>

边界网关协议中的 As-覆盖支持

作为 BGP 循环防护功能的一部分,如果路由器在自治系统 (AS) 路径中收到包含路由器的自治系统号 (ASN) 的 BGP 数据包,则路由器会丢弃该数据包。假设数据包源自路由器,并且已经到达了它起源的地方。

如果企业具有多个具有相同 ASN 的站点,则 BGP 循环防护会导致具有相同 ASN 的站点无法通过另一个 ASN 链接。路由更新(BGP 数据包)在另一个站点接收它们时被丢弃。

为了解决此问题,在 Citrix ADC 的 Zebos BGP 路由模块中添加了 BGP 作为覆盖功能。

如果对等设备启用了 AS-覆盖,当 Citrix ADC 设备收到用于转发到对等方的 BGP 数据包并且数据包的 ASN 与对等方的 ASN 匹配时,设备会在转发数据包之前将 BGP 数据包的 ASN 替换为自己的 ASN 号。

您可以使用 VTYSH 命令行为特定邻居或邻居组(对等组)启用 AS-覆盖。

使用 VTYSH 命令行为 IPv4 邻居配置 BGP 作为覆盖:

命令 说明
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。
Neighbor < IPv4 address> remote-as < as-number> 使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 邻居表。
Neighbor <IPv4 address> as-override 为指定邻居启用 BGP 作为覆盖。
    > VTYSH NS# configure terminal
    NS(config)# router BGP 200
    NS(config-router)# Neighbor 192.0.2.100 remote-as 100
    NS(config-router)# Neighbor 10.102.29.100 as-override

使用 VTYSH 命令行为 IPv4 BGP 对等组配置 BGP 作为覆盖:

命令 说明
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。
Neighbor <peer group name> peer-group 创建 BGP 对等组。
Neighbot <IPv4 address> peer-group <peer group name> 将邻居关联到指定的对等组。
Neighbor <peer group name> remote-as < as-number> 使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 邻居表。
Neighbor <peer group name> as-override 为与指定对等组关联的所有邻居启用 BGP 作为覆盖。
    > VTYSH NS# configure terminal
    NS(config)# router BGP 200
    NS(config-router)# neighbor external-peers-1 peer-group
    NS(config-router)# neighbor 192.0.2.101 peer-group external-peers-1
    NS(config-router)# neighbor 192.0.2.102 peer-group external-peers-1
    NS(config-router)# neighbor 192.0.2.103 peer-group external-peers-1
    NS(config-router)# Neighbor external-peers-1 remote-as 100
    NS(config-router)# Neighbor external-peers-1 as-override

使用 VTYSH 命令行为 IPv6 邻居配置 BGP 作为覆盖:

命令 说明
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。
Neighbor < IPv6 address> remote-as < as-number> 使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 邻居表。
Neighbor <IPv6 address> as-override 为指定邻居启用 BGP 作为覆盖。
地址系列 IPv6 输入地址系列配置模式。
Neighbor < IPv6 address> activate 通过使用链路本地地址,指定邻居和 Citrix ADC 之间的 IPv6 路由器系列的交换前缀。
Neighbor <IPv6 address> as-override 为指定邻居启用 BGP 作为覆盖。
    > VTYSH NS# configure terminal
    NS(config)# router BGP 200
    NS(config-router)# Neighbor a1bc::102 remote-as 100
    NS(config-router)# Neighbor a1bc::102 as-override
    NS(config-router)# Address-family ipv6
    NS(config-router-af)# Neighbor a1bc::102 activate
    NS(config-router)# Neighbor a1bc::102 as-override

使用 VTYSH 命令行为 IPv6 对等组配置 BGP 作为覆盖:

命令 说明
configure terminal 进入全局配置模式。
router BGP < ASnumber> BGP 自治系统。< ASnumber> 是必需参数。
Neighbor <peer group name> peer-group 创建 BGP 对等组。
邻居 <peer group name> <IPv6 address> 同行群 将邻居与指定的对等组关联。
Neighbor <peer group name> remote-as < as-number> 使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 邻居表。
Neighbor <peer group name> as-override 为与指定对等组关联的所有邻居启用 BGP 作为覆盖。
地址系列 IPv6 输入地址系列配置模式。
Neighbor <peer group name> activate 使用链接本地地址在指定对等组和 Citrix ADC 的邻居之间交换 IPv6 路由器系列的前缀。
Neighbor <peer group name> as-override 为与指定对等组关联的所有邻居启用 BGP 作为覆盖。
    > VTYSH NS# configure terminal
    NS(config)# router BGP 200
    NS(config-router)# neighbor external-peers-2 peer-group
    NS(config-router)# neighbor 2001::1 peer-group external-peers-2
    NS(config-router)# neighbor 2001::2 peer-group external-peers-2
    NS(config-router)# Neighbor external-peers-2 remote-as 100
    NS(config-router)# Neighbor external-peers-2 as-override
    NS(config-router)# Address-family ipv6
    NS(config-router-af)# Neighbor external-peers-2 activate
    NS(config-router)# Neighbor external-peers-2 as-override

正常重新启动

在配置路由协议的非 INC 高可用性 (HA) 设置中,故障转移后,路由协议会融合,并了解新主节点和相邻邻路由器之间的路由。路线学习需要一些时间才能完成。在此期间,数据包的转发会延迟,网络性能可能会中断,数据包可能会丢弃。

正常重新启动启用故障转移期间的 HA 设置,以指示其相邻路由器不从其路由数据库中删除旧主节点的学习路由。使用旧主节点的路由信息,新主节点和相邻路由器立即开始转发数据包,而不会中断网络性能。

为 BGP 配置正常重新启动

要使用 VTYSH 命令行配置 BGP 的正常重新启动,请在命令提示符下键入以下命令,按所示顺序:

命令 示例 命令描述
VTYSH VTYSH 输入 VTYSH 命令提示符。
configure terminal NS# configure terminal 进入全局配置模式。
<ID>路由器编号 NS(config)# router-id 1.1.1.1 Citrix ADC 设备的路由器标识符。此标识符为所有动态路由协议设置。必须在高可用性设置中的另一个节点上指定相同的标识符,才能正常重新启动正常工作。
router bgp <AS-number> NS(config)# router bgp 5 进入 BGP 配置模式。
bgp graceful-restart NS(config)# bgp graceful-restart 在 BGP 路由过程中启用正常重新启动。
bgp graceful-restart restart-time <1-1800> NS(config-router)# bgp graceful-restart restart-time 170 指定帮助程序路由器在故障转移后等待新主节点的 TCP 连接的宽限期(以秒为单位)。在这段时间内,帮助程序路由器会保留路由。
bgp graceful-restart stalepath-time <1-1800> NS(config-router)# bgp graceful-restart stalepath-time 180 指定处于帮助程序模式的 Citrix ADC 设备保留重新启动邻居路由器的过时路由的时间(以秒为单位)。默认值为 360 秒。
neighbor <IPv4 address of the peer router> remote-as <AS-number> NS(config-router)# neighbor 192.0.2.30 remote-as 2 建立与指定邻居路由器设备的 BGP 对等。
neighbor <IPv4 address of the peer router> capability graceful-restart NS(config-router)# neighbor 192.0.2.30 capability graceful-restart 使用指定邻居启用正常重新启动。
redistribute kernel NS(config-router)# redistribute kernel 重新分配内核路由。

配置 IPv6 BGP 的正常重新启动

在配置路由协议的非 INC 高可用性 (HA) 设置中,故障转移后,路由协议会融合,并了解新主节点和相邻邻路由器之间的路由。路线学习需要一些时间才能完成。在此期间,数据包的转发会延迟,网络性能可能会中断,数据包可能会丢弃。

正常重新启动启用故障转移期间的 HA 设置,以指示其相邻路由器不从其路由数据库中删除旧主节点的学习路由。使用旧主节点的路由信息,新主节点和相邻路由器立即开始转发数据包,而不会中断网络性能。

要使用 VTYSH 命令行配置 IPv6 BGP 的正常重新启动,请在命令提示符下键入以下命令,按所示顺序:

命令 示例 命令描述
VTYSH VTYSH 输入 VTYSH 命令提示符。
configure terminal NS# configure terminal 进入全局配置模式。
router-id <id> NS(config)# router-id 1.1.1.1 设置 Citrix ADC 设备的路由器标识符。此标识符为所有动态路由协议设置。必须在高可用性设置中的其他节点中指定相同的 ID,才能正常重新启动才能正常工作。
router bgp <AS-number> NS(config)# router bgp 5 进入 BGP 协议的配置模式。
bgp graceful-restart NS(config)# bgp graceful-restart 在 BGP 路由过程中启用正常重新启动。
bgp graceful-restart restart-time <1-1800> NS(config-router)# bgp graceful-restart restart-time 170 指定帮助程序路由器在故障转移后等待新主节点的 TCP 连接的宽限期(以秒为单位)。在这段时间内,帮助程序路由器会保留路由。默认值为 360 秒。
bgp graceful-restart stalepath-time <1-1800> NS(config-router)# bgp graceful-restart stalepath-time 180 指定处于帮助程序模式的 Citrix ADC 设备保留重新启动邻居路由器的过时路由的时间(以秒为单位)。默认值为 360 秒。
neighbor <IPv6 address> remote-as <AS-number> NS(config-router)# neighbor 2001:db8::10 remote-as 2 建立与指定邻居路由器设备的 BGP 对等。
address-family ipv6 NS(config-router)#address-family ipv6 进入地址系列配置模式。
neighbor <IPv6 address of the neighbor> activate NS(config-router-af)#neighbor 2001:db8::10 activate 启用与指定邻居路由器设备交换地址系列路由。
neighbor <IPv6 address of the peer router> capability graceful-restart NS(config-router-af)#neighbor 2001:db8::10 capability graceful-restart 使用指定的邻居路由器设备启用正常重新启动。
redistribute kernel NS(config-router-af)#redistribute kernel 重新分配内核路由。
导出地址家庭 NS(config-router-af)#exit-address-family 退出地址系列配置模式。

为 IPv4 BGP 配置 MD5 身份验证

Citrix ADC 设备支持边界网关协议 (BGP) 的 MD5 身份验证。启用身份验证后,只有在身份验证成功时,才会验证并接受 Citrix ADC 设备与其对等设备之间交换的属于 BGP 的任何 TCP 段。要使身份验证成功,必须使用相同的 MD5 密码配置两个对等方。如果身份验证失败,则不会建立 BGP 邻居关系。Citrix ADC 设备中对 BGP 的 MD5 身份验证支持符合 RFC 2385 的要求。

开始之前的准备工作

在开始配置 BGP MD5 身份验证之前,请考虑以下几点:

  • 请确保您了解 RFC 2385 中描述的 BGP MD5 身份验证的不同组件。
  • Citrix ADC 管理分区不支持 BGP MD5 身份验证。
  • IPv6 BGP 配置不支持 BGP MD5 身份验证。
  • Citrix ADC 群集配置以及高可用性配置均支持 BGP MD5 身份验证。
  • 由于 FreeBSD 中出现以下问题,Citrix 建议在第 2 层高可用性配置中为 BGP 会话设置低保持实时值和保持时间值(例如 5 和 15),并配置正常重新启动。否则,启用 MD5 身份验证后,BGP 可能需要更长时间才能在故障转移后重新建立与邻居的连接。

为 IPv4 BGP 配置 MD5 身份验证

要使用 VTYSH 命令行配置 IPv4 BGP 的 MD5 身份验证,请在命令提示符下键入以下命令,按所示顺序:

命令 说明
vtysh 显示 VTYSH 命令提示符。
configure terminal 进入全局配置模式。
router bgp <AS-number> 进入 BGP 协议的配置模式。<AS-number> 是 BGP 自治系统编号,是必需的参数。
neighbor <neighbour IPv4 address> remote-as < AS-number > 使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 表。
neighbor < neighbour IPv4 address > password < password in double quotes> 使用指定 MD5 密码为指定邻居配置 MD5 身份验证。要使 MD5 身份验证成功,必须在 Citrix ADC 设备和邻居设备上配置相同的 MD5 密码。
> vtysh

ns# configure terminal

ns(config)#router bgp 5

ns(config-router)#neighbor 20.20.20.138 remote-as 1

ns(config-router)#neighbor 20.20.20.138 password “secret”

ns(config-router)#redistribute kernel

ns(config-router)#exit