此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍当边界网关协议(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语句通告路由时,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。
路由器无法通告
检查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#
检查配置是否运行。显示的示例说明 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 [...]
检查路由表中是否有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#
因为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
只要 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#
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#
确认 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。
位于主网边界上的网络(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
查看 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
查看路由是否存在于 BGP 路由表中。
R101#show ip bgp | include 172.16.10.0 R101#
网络 172.16.10.0/24 不存在于 BGP 表中。
查看 IP 路由表中是否存在确切的路由。显示的输出确认路由表中没有确切的路由。
R101#show ip route 172.16.10.0 255.255.255.0 % Network not in table R101#
确定您希望发起的路由,然后修复IGP或配置静态路由。
R101(config)#ip route 172.16.10.0 255.255.255.0 null0 200
检查 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
验证路由存在于 BGP 表中。
R101#show ip bgp | include 172.16.10.0 *> 172.16.10.0/24 0.0.0.0 0 32768 i
要使更改在BGP中生效并开始将网络172.16.10.0/24通告给R102,您必须清除BGP邻居,或者对对等体执行软重置。此示例对对等体 10.10.10.2 使用出站软重置。
R101#clear ip bgp 10.10.10.2 soft out
确认路由已通告给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
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
确认 R101 未向 R102 通告 192.168.32.0/22。
R101#show ip bgp neighbors 10.10.10.2 advertised-routes | include 192.168.32.0 R101#
检查配置是否运行。
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 表中。
在本示例中,使用etworkcommand将组件路由192.168.33.0安装到BGP表中。
R101(config)#router bgp 1 R101(config-router)# network 192.168.33.0
查看组件路由是否存在于 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表示由于仅汇总参数而抑制了组件路由。
确认已向 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
如果启用了同步的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。
首先检查 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 路径选择标准为什么没有选择此网络作为最佳路由。
检查 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秒,然后再执行下一个验证步骤。
验证是否已安装路由。
显示的输出确认前缀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
如果路由器与两条链路连接,并且通过 BGP 和浮动静态路由获知路由,则会将浮动静态路由安装到路由表中。如果在 BGP 路由出现故障的情况下重新分配静态路由,则会出现这种情况。如果 BGP 路由重新回到联机状态,则路由表中的浮动静态路由不会更改以反映 BGP 路由。
在 BGP 进程下删除 redistribute static 命令可以解决此问题,避免浮动静态路由的优先级高于 BGP 路由。
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
07-Aug-2023 |
更新的SEO、法律免责声明、备用文本和格式。 |
1.0 |
13-Feb-2002 |
初始版本 |