目录

简介

先决条件

要求

使用的组件

规则

背景信息

使用基本Network语句通告的路由

使用以下步骤进行故障排除

使用带掩码的Network语句通告的路由

使用以下步骤进行故障排除

使用aggregate-address命令通告的路由

使用以下步骤排除此问题

无法宣布 iBGP 获悉的路由

使用以下步骤进行故障排除

使用 Redistribute Static 通告的路由

相关信息

简介

本文档介绍在边界网关协议 (BGP) 路由器未向对等体通告 BGP 路由时如何进行故障排除。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。但是，本文档中显示的输出基于运行Cisco IOS®软件版本12.2(24)a的Cisco 2500系列路由器。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

背景信息

本文档提供系统方法，以帮助排除边界网关协议(BGP)路由器不向对等体通告BGP路由的情况。

有多种方法可以将前缀添加到 BGP 表中并通告给对等体：

- 在路由器BGP下发出basicnetworkcommand。此方法用于从自治系统 (AS) 发起 BGP 路由。有关详细信息，请参阅BGP案例研究1的network命令部分。

- 重新分配内部网关协议 (IGP) 或静态配置。

- 传播从其他内部 BGP (iBGP) 或外部 BGP (eBGP) 对等体获知的 BGP 路由。

注意：仅传播从BGP对等体接收的最佳路径。有关最佳路径选择的详细信息，请参阅 BGP 最佳路径选择算法。

- 发出aggregate-addresscommand。有关详细信息，请参阅了解BGP中的路由聚合。

使用基本Network语句通告的路由

当使用基本network语句通告路由时，etworkcommand的行为取决于是启用还是禁用auto-summary。启用自动汇总后，它将本地发起的BGP网络(networkx.x.x.x)汇总到其有类边界（在BGP中默认启用自动汇总）。如果路由表中存在子网并且满足以下三个条件，则本地路由表中该有类网络的任何子网（组件路由）都会提示 BGP 将有类网络安装到 BGP 表中：

- 已启用自动汇总

- 路由表中存在网络的有类 network 语句

- 该 network 语句中存在有类掩码

当 auto-summary 处于禁用状态时，不会对本地引入 BGP 表中的路由在其有类边界范围内进行汇总。

例如，如果符合以下条件，BGP 会在 BGP 表中引入有类网络 10.0.0.0 掩码 255.0.0.0：

- 路由表中的子网是 10.75.75.0 掩码 255.255.255.0。

- 您在therouter bgp命令下配置网络10.0.0.0。

- 已启用 Auto-summary。

如果这些条件无法全部满足，则除非 IP 路由表中存在完全匹配项，否则 BGP 不会在 BGP 表中安装条目。

使用以下步骤进行故障排除

在R101上启用自动总结后，路由器无法向R102通告有类网络172.16.0.0/16。

路由器无法通告

1. 检查R101是否向R102通告172.16.0.0/16。显示的输出确认R101没有向R102通告172.16.0.0/16。

R101#show ip bgp neighbors 10.10.10.2 advertised-routes

Total number of prefixes 0

R101#

2. 检查配置是否运行。显示的示例说明 R101 是使用有类 network 语句配置的。默认情况下，auto-summary 在用于此方案的 Cisco IOS 软件版本中处于启用状态。

R101#

show running-config | begin bgp

router bgp 1

network 172.16.0.0

neighbor 10.10.10.2 remote-as 2

[...]

3. 检查路由表中是否有network172.16.0.0/16的组件路由（有类路由或子网路由）。

R101#show ip route 172.16.0.0 255.255.0.0 longer-prefixes

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

R101#sh ip route 172.16.0.0 255.255.0.0 longer-prefixes

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

R101#

4. 因为R101 IP路由表中没有组件路由（无类路由或子网路由），所以在BGP表中没有安装网络172.16.0.0。在etworkcommand(etworkcommand)下配置的前缀安装在BGP表中的最低要求是在IP路由表中具有组件路由。因此，请确保R101具有通向网络172.16.0.0/16的组件路由。如果路由通过IGP或静态配置获知，则会完成此操作。在显示的示例中，静态路由配置为 null 0。

R101(config)#ip route 172.16.10.0 255.255.255.0 null0 200

5. 只要 IP 路由表中包含 172.16.0.0/16 的组件路由，BGP 便会在 BGP 表中安装有类网络。

R101#show ip route 172.16.0.0 255.255.0.0 longer-prefixes

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

172.16.0.0/24 is subnetted, 1 subnets

S     172.16.10.0 is directly connected, Null0

要使更改在BGP中生效并开始将网络172.16.0.0/16通告给R102，您必须清除BGP邻居或对对等体执行软重置。此示例显示了如何对对等体 10.10.10.2 执行出站软重置以使更改生效。

R101#clear ip bgp 10.10.10.2 soft out

R101#

6. show ip bgp 命令确认有类网络 172.16.0.0/16 已引入 BGP。

R101#show ip bgp | include 172.16.0.0

*> 172.16.0.0                0.0.0.0            0         32768 i

R101#

7. 确认 R101 向 R102 通告路由。

R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 172.16.0.0

*> 172.16.0.0          0.0.0.0                  0         32768 i

注意：在禁用自动总结的情况下，BGP会在路由表中与路由完全匹配时安装网络172.16.0.0/16。如果有子网路由，但路由表中没有与路由(172.16.0.0/16)完全匹配的路由，则BGP不会在BGP表中安装网络172.16.0.0/16。

使用带掩码的Network语句通告的路由

位于主网边界上的网络（255.0.0.0、255.255.0.0 或 255.255.255.0）不需要包括掩码。例如，network 172.16.0.0命令足以将前缀172.16.0.0/16发送到BGP表中。但是，不属于主网边界的网络需要使用带掩码的network语句，例如network 172.16.10.0 mask 255.255.255.0。

要使用带掩码的 network 语句将路由安装到 BGP 表中，路由表中必须存在确切的路由。

使用以下步骤进行故障排除

R101 无法向 R102 通告网络 172.16.10.0/24。

无法向R102通告网络172.16.10.0/24

1. 查看 R101 是否向 R102 通告 172.16.10.0/24 前缀。

R101#show ip bgp neighbors 10.10.10.2 advertised-routes

R101#

或者

此命令可用于检查是否通告了路由：

R101#show ip bgp 172.16.10.0/24

R101# BGP routing table entry for 172.16.10.0/24, version 24480684

Bestpath Modifiers: deterministic-med

Paths: (4 available, best #3)

Not advertised to any peer

此输出确认R101不会向R102通告192.168.32.0/22。

2.检查配置是否运行。

R101#show run | begin bgp

router bgp 1

network 172.16.10.0

注：您需要发起网络172.16.10.0/24。该网络不位于 B 类网络的边界 (255.255.0.0) 上。需要配置带掩码 255.255.255.0 的 network 语句才能使该网络正常工作。

3.配置带有掩码的network语句后， show run命令将显示类似如下所示的输出：

R101#show run | begin bgp

router bgp 1

network 172.16.10.0 mask 255.255.255.0

1. 查看路由是否存在于 BGP 路由表中。

R101#show ip bgp | include 172.16.10.0

R101#

网络 172.16.10.0/24 不存在于 BGP 表中。

2. 查看 IP 路由表中是否存在确切的路由。显示的输出确认路由表中没有确切的路由。

R101#show ip route 172.16.10.0 255.255.255.0

% Network not in table

R101#

3. 确定您希望发起的路由，然后修复IGP或配置静态路由。

R101(config)#ip route 172.16.10.0 255.255.255.0 null0 200

4. 检查 IP 路由表。

R101#show ip route 172.16.10.0 255.255.255.0 longer-prefixes

[..]

172.16.0.0/24 is subnetted, 1 subnets

S       172.16.10.0 is directly connected, Null0

5. 验证路由存在于 BGP 表中。

R101#show ip bgp | include 172.16.10.0

*> 172.16.10.0/24   0.0.0.0                  0         32768 i

6. 要使更改在BGP中生效并开始将网络172.16.10.0/24通告给R102，您必须清除BGP邻居，或者对对等体执行软重置。此示例对对等体 10.10.10.2 使用出站软重置。

R101#clear ip bgp 10.10.10.2 soft out

7. 确认路由已通告给R102。

R101#show ip bgp  neighbors 10.10.10.2 advertised-routes | include 172.16.10.0

*> 172.16.10.0/24   0.0.0.0                  0         32768 i

使用aggregate-address命令通告的路由

BGP允许使用aggregate-address address maskcommand将特定路由聚合到一个路由。聚合适用于 BGP 路由表中的路由。这与etworkcommand相反，etworkcommand应用于IP路由表中存在的路由。如果聚合地址的至少一个或多个特定路由存在于 BGP 路由表中，则可以执行聚合。有关BGP聚合和相关属性的详细信息，请参阅了解BGP中的路由聚合。

使用以下步骤排除此问题

使用aggregate-address命令通告的路由

在此网络图中，R101 无法向 R102 通告聚合地址 192.168.32.0/22。网络 192.168.32.0/22 聚合了以下三个 C 类地址空间：

- 192.168.33.0/24

- 192.168.35.0/24

- 192.168.35.0/24

1. 确认 R101 未向 R102 通告 192.168.32.0/22。

R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 192.168.32.0

R101#

2. 检查配置是否运行。

router bgp 1

[..]

aggregate-address 192.168.32.0 255.255.252.0 summary-only

neighbor 10.10.10.2 remote-as 2

R101配置为仅向R102通告具有仅摘要属性的聚合地址。

3.检查IP路由表。

R101#show ip route 192.168.32.0 255.255.252.0 longer-prefixes

[..]

S    192.168.33.0/24 is directly connected, Null0

IP路由表包含聚合192.168.32.0/22的组件路由；但是，要向对等体通告聚合地址，BGP路由表中必须存在组件路由，而不是IP路由表中。IP路由表包含聚合192.168.32.0/22的组件路由；但是，要向对等体通告聚合地址，BGP路由表中必须存在组件路由，而不是IP路由表中。

4.检查BGP路由表中是否存在组件路由。

R101#show ip bgp 192.168.32.0 255.255.252.0 longer

R101#

输出确认 BGP 表中没有组件路由，因此下一个逻辑步骤是确保组件路由存在于 BGP 表中。

1. 在本示例中，使用etworkcommand将组件路由192.168.33.0安装到BGP表中。

R101(config)#router bgp 1

R101(config-router)# network 192.168.33.0

2. 查看组件路由是否存在于 BGP 表中。

R101#show ip bgp 192.168.32.0 255.255.252.0 longer-prefixes

BGP table version is 8, local router ID is 10.10.20.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*> 192.168.32.0/22  0.0.0.0                            32768 i

s> 192.168.33.0     0.0.0.0                  0         32768 i

R101#

s表示由于仅汇总参数而抑制了组件路由。

3. 确认已向 R102 通告聚合。

R101#show ip bgp n 10.10.10.2 advertised-routes | include 192.168.32.0/22

*> 192.168.32.0/22  0.0.0.0

无法宣布 iBGP 获悉的路由

如果启用了同步的BGP路由器无法验证其IGP中的路由，则不会向其他eBGP对等体通告iBGP获知的路由。IGP具有到iBGP获知的路由的路由，路由器会向eBGP对等体通告iBGP路由。否则，路由器会将该路由视为未与IGP同步，因此不会通告该路由。 要防止BGP从IGP中的iBGP路由验证，请在路由器BGP下使用 no synchronization命令禁用同步。有关详细信息，请参阅 BGP 案例分析的同步部分。

使用以下步骤进行故障排除

在显示的图中，R101通过iBGP从R103获取前缀10.130.130.0/24，因此无法将其通告给eBGP对等体R102。

R101无法通告给eBGP对等体R102。

1. 首先检查 R101。

R101#show ip bgp neighbors 10.10.20.2 advertised-routes | include 10.130.130.0

R101#

此输出确认R101没有向R102通告前缀10.254.255.255/24。

查看 R101 上的 BGP 表：

R101#show ip bgp 10.130.130.0 255.255.255.0 longer

BGP table version is 4, local router ID is 10.10.20.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

* i10.130.130.0/24 10.10.20.3               0    100      0 i

R101#

网络 10.130.130.0/24 存在于 BGP 表中。但是，网络10.130.130.0/24没有最佳路由的状态代码(>)。这意味着 BGP 最佳路径选择算法没有选择此前缀作为最佳路径。由于仅向BGP对等体通告最佳路径，因此网络10.130.130.0/24不会通告给R102。接下来，您需要弄清楚 BGP 路径选择标准为什么没有选择此网络作为最佳路由。

1. 检查 show ip bgp 前缀 命令的输出，以便更清楚地了解该前缀既未被选作最佳路由也未被安装到 IP 路由表中的原因。

R101#show ip bgp 10.130.130.0

BGP routing table entry for 10.130.130.0/24, version 4

Paths: (1 available, no best path)

Not advertised to any peer

Local

10.10.20.3 from 10.10.20.3 (10.130.130.3)

Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

输出显示前缀 10.130.130.0/24 未同步。

注：在识别Cisco Bug ID CSCdr90728（BGP路径未标记为未同步）之前，show ip bgp prefix命令未显示标记为未同步的路径。此问题已在 Cisco IOS 软件版本 12.1(4) 和更高版本中更正。

2.检查BGP配置是否运行。

此输出显示BGP同步已启用。默认情况下，BGP 同步在 Cisco IOS 软件中处于启用状态。

R101#show ip protocols

Routing Protocol is "bgp 1"

Outgoing update filter list for all interfaces is not set

Incoming update filter list for all interfaces is not set

IGP synchronization is enabled

Automatic route summarization is disabled

Neighbor(s):

Address          FiltIn FiltOut DistIn DistOut Weight RouteMap

10.10.10.2

10.10.20.3

Maximum path: 1

Routing for Networks:

Routing Information Sources:

Gateway         Distance      Last Update

10.10.20.3           200      01:48:24

Distance: external 20 internal 200 local 200

3.配置BGP以禁用同步。在路由器BGP下发出no同步命令。

R101(config)#router bgp 1

R101(config-router)# no synchronization

R101# show ip protocols

Routing Protocol is "bgp 1"

Outgoing update filter list for all interfaces is not set

Incoming update filter list for all interfaces is not set

IGP synchronization is disabled

Automatic route summarization is disabled

Neighbor(s):

Address          FiltIn FiltOut DistIn DistOut Weight RouteMap

10.10.10.2

10.10.20.3

Maximum path: 1

Routing for Networks:

Routing Information Sources:

Gateway         Distance      Last Update

10.10.20.3           200      01:49:24

Distance: external 20 internal 200 local 200

BGP扫描程序每60秒扫描一次BGP表，并根据BGP路径选择标准做出决策。在下一次运行BGP扫描程序期间，将安装网络10.130.130.0（因为同步已禁用）。这意味着要安装的路由的最长时间为60秒，但根据何时配置了no synchronization命令以及何时发生下一个BGP扫描程序实例，可以缩短该时间。因此，最好等待60秒，然后再执行下一个验证步骤。

1. 验证是否已安装路由。

显示的输出确认前缀10.130.130.0/24是最佳路由；因此，它安装到IP路由表中并传播到对等体10.10.10.2。

R101#show ip bgp 10.130.130.0

BGP routing table entry for 10.254.255.255/24, version 5

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to non peer-group peers:

10.10.10.2

Local

10.10.20.3 from 10.10.20.3 (10.130.130.3)

Origin IGP, metric 0, localpref 100, valid, internal, best

R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 10.130.130.0/24

*>i10.130.130.0/24          10.10.20.3             0    100      0 i

使用 Redistribute Static 通告的路由

如果路由器与两条链路连接，并且通过 BGP 和浮动静态路由获知路由，则会将浮动静态路由安装到路由表中。如果在 BGP 路由出现故障的情况下重新分配静态路由，则会出现这种情况。如果 BGP 路由重新回到联机状态，则路由表中的浮动静态路由不会更改以反映 BGP 路由。

在 BGP 进程下删除 redistribute static 命令可以解决此问题，避免浮动静态路由的优先级高于 BGP 路由。

相关信息

- BGP 邻居为什么在空闲、连接及活动状态之间切换？

- “#%BGP-3-INSUFCHUNKS: Insufficient chunk pools for aspath”错误消息意味着什么？

- BGP：常见问题

- BGP 故障排除

- Routing-BGP Support页

- 支持和下载