此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍边界网关协议(BGP)中的RIB故障以及bgp supress-inactive命令的使用。
Cisco 建议您了解以下主题:
本文档中的信息基于Cisco IOS版本为15.6(2)的Cisco路由器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
当路由器收到包含网络层可达性信息(NLRI)的BGP UPDATE数据包时,即路由;数据包按下一顺序处理:
— 步骤1. BGP根据路由器上配置的任何BGP入站过滤器检查NLRI(已接收前缀)。
— 步骤2.如果NLRI未过滤,则使用show ip bgp命令可在BGP表中看到前缀。
— 步骤3.如果路由表中的前缀/前缀长度条目与show ip route中所示的管理距离(AD)较低,则BGP会标记通过RIB-Failure接收的路由。
注意:有关步骤2的更多详细信息,请参阅BGP最佳路径选择算法文档中的“为什么路由器忽略路径”一节
注意:本文档可互换使用术语NLRI、前缀和路由。
在本示例中,路由1.1.1.1/32和3.3.3.3/32通过BGP接收并安装在路由表中。
输出使用show ip bgp:
路由器 |
---|
Router#show ip bgp BGP table version is 5, local router ID is 10.2.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 1.1.1.1/32 10.1.2.1 0 100 0 i *> 3.3.3.3/32 10.2.3.3 0 0 2 i Router# |
路由表使用命令show ip route显示这两条路由:
路由器 |
---|
Router#show ip route 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 1.0.0.0/32 is subnetted, 1 subnets B 1.1.1.1 [200/0] via 10.1.2.1, 00:04:50 3.0.0.0/32 is subnetted, 1 subnets B 3.3.3.3 [20/0] via 10.2.3.3, 00:04:46 |
对于为相同前缀配置的静态路由,可以看到RIB故障的示例,因为由于AD较低,这些前缀在路由表中优先于BGP。
注意:静态路由的管理距离(AD)为1。iBGP路由的AD为200。eBGP路由的AD为20。如果连接,则通过具有最低AD值的协议获知的路由将被选择并安装在路由表中。
输出显示添加到配置的静态路由以及这些路由如何覆盖路由表中的BGP路由:
路由器 |
---|
Router#show running-config | include ip route ip route 1.1.1.1 255.255.255.255 Null0 ip route 3.3.3.3 255.255.255.255 Null0 Router# Router#show ip route static 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 1.0.0.0/32 is subnetted, 1 subnets S 1.1.1.1 is directly connected, Null0 3.0.0.0/32 is subnetted, 1 subnets S 3.3.3.3 is directly connected, Null0 Router# |
BGP在BGP表中使用r标记其路由,该表显示这些路由处于RIB故障状态。这是因为通过BGP收到的路由不在路由表中。
路由器 |
---|
Router#show ip bgp BGP table version is 5, local router ID is 10.2.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path r>i 1.1.1.1/32 10.1.2.1 0 100 0 i r> 3.3.3.3/32 10.2.3.3 0 0 2 i Router# |
必须指出,BGP仍在运行Cisco IOS的Cisco路由器上通告处于RIB-Failure状态的网络。
注意:EIGRP不通告路由表中未安装的路由。在EIGRP拓扑表中,这些路由标记为零后继路由。
命令bgp suppress-inactive修改此行为,以停止处于RIB-Failure状态的前缀的通告。
注意:使用bgp suppress-inactive命令只抑制RIB-Failure条件中在BGP中具有与路由表中的相同条目不同的下一跳的网络。
在路由器R2上,路由显示在RIB-Failure条件的BGP表中:
R2 |
---|
R2#show ip bgp BGP table version is 14, local router ID is 10.2.3.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path r>i 1.1.1.1/32 10.1.2.1 0 100 0 i r> 3.3.3.3/32 10.2.3.3 0 0 2 i R2# |
原因是配置了静态路由:
R2 |
---|
R2#show running-config | include ip route ip route 1.1.1.1 255.255.255.255 10.1.2.254 ip route 3.3.3.3 255.255.255.255 10.2.3.3 R2# |
- 1.1.1.1/32的静态路由定义到10.1.2.254的下一跳,与通过BGP接收的下一跳(即10.1.2.1)不同
- 3.3.3.3/32的静态路由定义的下一跳与通过BGP接收的下一跳(即10.2.3.3)相等
命令show ip bgp rib-failture可通知BGP RIB-Failure和路由表中路由之间是否匹配的下一跳,如RIB-NH Matches列所示。
R2 |
---|
R2#show ip bgp rib-failure Network Next Hop RIB-failure RIB-NH Matches 1.1.1.1/32 10.1.2.1 Higher admin distance No 3.3.3.3/32 10.2.3.3 Higher admin distance Yes R2# |
在没有bgp suppress-inactive时,即使在RIB-Failure状态,R2也会通过BGP继续将两个网络通告给路由器R4,因为这是默认行为。
在路由器R4中,您可以看到通过BGP收到了两条路由:
R4 |
---|
R4#show ip bgp BGP table version is 3, local router ID is 10.2.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 1.1.1.1/32 10.2.4.2 0 1 i *> 3.3.3.3/32 10.2.4.2 0 1 2 i R4# |
在将bgp suppress-inactive添加到路由器R2的BGP配置中时,处于RIB-Failure状态且RIB-NH Matches设置为No的路由将不再被通告:
R2 |
---|
R2#show running-config partition router bgp 1 ! router bgp 1 bgp suppress-inactive . . . |
下一个输出显示,路由器R4不通过BGP接收路由1.1.1.1/32,因为路由器R2不再通告它。
R4 |
---|
R4#show ip bgp |
已证明,默认情况下,BGP继续在RIB-Failure条件下通告路由。这些是通过BGP接收的路由,且未安装在路由表中。
bgp suppress-inactive命令可用于修改此行为。