简介
本文档介绍有关边界网关协议(BGP)的常见问题(FAQ)。
问:如何配置BGP?
A. 有关如何配置 BGP 和 BGP 功能的信息,请参阅下列文档:
问:如何使用环回地址配置BGP?
A. 使用环回接口可确保邻居保持正常运行并且不受硬件故障的影响。
默认情况下,如果 BGP 建立了 BGP 对等会话,它会使用在直接连接到 BGP 对等体的物理接口上配置的 IP 地址作为源地址。发出 neighbor <ip 地址> update-source <接口> 命令以更改此行为,并配置 BGP 以告之路由器使用环回地址作为源地址建立对等会话。
有关详细信息,请参阅使用或不使用环回地址配置 iBGP 和 eBGP 的示例。
问:当部分或全部属性应用于BGP中的一个邻居时,属性的优先顺序是什么?
A. 根据属性是应用于入站更新还是出站更新,优先级顺序有所不同。
对于入站更新,优先级顺序是:
-
route-map
-
filter-list
-
prefix-list、distribute-list
对于出站更新,优先级顺序是:
-
filter-list
-
route-map | unsuppress-map
-
advertise-map(条件通告)
-
prefix-list|distribute-list
-
ORF prefix-list(邻居发送给我们的前缀列表)
注意:属性 prefix-list 和 distribute-list 互相排斥,只有一个命令(neighbor prefix-list 或 neighbor distribute-list)可应用于特定邻居的每个入站方向或出站方向。
show ip bgp 命令输出中下一跳为0.0.0.0 有什么含义?
A. BGP 表中下一跳地址为 0.0.0.0 的网络表示该网络是通过将内部网关协议 (IGP) 重分配到 BGP 而在本地创建的,或是通过 BGP 配置中的 network 或 aggregate 命令创建的。
问: BGP社区属性的已知社区有哪些?
A. 社区属性是一种可传递的可选属性,旨在对某些社区中的目标进行分组并应用某些策略(例如接受、设置优先级、重分配)。 此表显示了众所周知的BGP社区。
| 社区 |
描述 |
| Local-AS |
在联盟场景中使用可避免将数据包发送到本地自治系统(AS)外部。 |
| no-export |
不会向外部 BGP (eBGP) 对等体发出通知。将此路由保留在 AS 内部。 |
| no-advertise |
不会将此路由通知给任何内部或外部对等体。 |
| none |
当您想要清除与某路由相关的社区时,不要应用社区属性。 |
| 互联网 |
将此路由通知给 Internet 社区及任何属于此社区的路由器。 |
有关社区配置的详细信息,请参阅配置BGP的配置BGP社区过滤部分。
问:我可以使用什么格式来配置BGP社区属性?
A. 在Cisco IOS®软件版本12.0及更高版本中,可以三种不同的格式(称为十进制、十六进制和AA:NN)配置社区。默认情况下,Cisco IOS使用较旧的十进制格式。要在AA:NN中配置和显示,其中第一部分为AS编号,第二部分为2字节编号,请发出ip bgp-community new-format全局配置命令。
注意:BGP社区属性是可以分配给特定前缀并通告给其他邻居的数值(任意)。虽然社区属性可以用十进制、十六进制或AA:NN表示,但它仍然是32位数字。例如,以下三个配置命令指定了社区 30:20(AS 30,20 号):
-set community 30:20
- set community 0x1E0014
-set community 1966100
不管您使用哪个命令,在路由器配置文件和 BGP 表中显示的社区都是 30:20。
有关详细信息,请参阅BGP案例研究的“社区属性”部分,以及使用BGP社区值配置和控制上游提供商网络。
问:在启用或禁用自动总结的情况下,BGP的行为有何不同?
A. 自动汇总行为在各个 Cisco IOS 软件版本中均已发生变化。最初,默认为启用自动汇总。但是,使用Cisco Bug ID CSCdu81680,此行为已更改。在最新的 Cisco IOS 中,默认为禁用自动汇总。启用自动汇总后,它会在 BGP 网络的有类边界范围内汇总在本地创建的 BGP 网络。在旧版本中,默认情况下才会启用自动总结。禁用自动汇总后,在本地引入到 BGP 表中的路由不会在其有类边界范围内进行汇总。当路由表中存在子网并且满足这三个条件时,本地路由表中该有类网络的任何子网都可以提示BGP将有类网络安装到BGP表中。
-
路由表中网络的有类网络语句
-
该网络语句的有类掩码
-
已启用自动汇总
例如,如果路由表中的子网是10.75.75.0掩码255.255.255.0,并且您在router bgp命令下配置网络10.0.0.0,并且启用了auto-summary,则BGP会在BGP表中引入有类网络10.0.0.0掩码255.0.0.0。
注意:只有注册的思科用户才能访问内部思科工具和信息。
如果上述三个条件都不符合,除非在本地路由表中有完全匹配项,否则 BGP 不会在 BGP 表中安装任何条目。
注意:如果执行 BGP 的 AS 不具备完全有类网络,Cisco 建议您在 router bgp 下发出 no auto-summary 命令,以禁用自动汇总。
问:如何验证BGP路由器是否通告其BGP网络并将其传播到全局BGP网格?
A. 使用以下命令检查是否向直连ISP通告了IP地址块:
注意:show ip bgp neighbors <address> advertise-routes命令不会考虑您应用的任何出站策略。在将来的Cisco IOS软件版本中,可以更改命令输出以反映出站策略。如果有两个可选路径指向目标,BGP 总是使用最佳路由进行通知。
为了验证IP块如何通过直接连接的ISP传播到全局BGP网格,请连接到Internet上的公共路由服务器,并在路由服务器中查找前缀的BGP条目。
问:何时以及如何重置BGP会话?
A. 在更改 BGP 会话的入站/出站策略时清除该会话。发出 clear ip bgp x.x.x.x soft out 命令可清除 BGP 会话,以使出站策略更改生效。发出clear ip bgp x.x.x.x命令以清除BGP会话并使入站策略更改生效。如果邻居具有软重新配置功能,您可以发出 clear ip bgp x.x.x.x soft in 命令。如果设置优化边缘路由(OER),则可以自动清除BGP会话。OER 自动清除入站方向和出站方向的 BGP 会话。有关 OER 的详细信息,请参阅设置 OER 网络组件。
注意:在 Cisco IOS 软件 12 版及更高版本中,引入了一种新的 BGP 软重置增强功能。
问:在PIX/ASA上是否需要任何特殊配置来允许BGP会话通过它?
A. 是,请参阅ASA/PIX:BGP至ASA配置示例,了解完整配置详细信息。
问:自治系统(AS)编号是什么?如何获得编号?
A. AS编号是全局唯一编号,用于标识AS,使AS能够在相邻AS之间交换外部路由信息。AS 是遵守一个明确定义的路由策略的相连 IP 网络组。
可用 AS 编号是有限的。因此,判断哪些站点需要唯一的 AS 编号而哪些站点不需要唯一的 AS 编号至关重要。不要求唯一AS编号的站点使用为专用保留的一个或多个AS编号,这些编号在64512到65535的范围内。请访问AS编号注册服务网站以获取AS编号。
问:BGP路径选择标准是什么?
A. BGP 路径选择标准记录在 BGP 最佳路径选择算法中。
always-compare-med和deterministic-med有何区别?
A. 这些命令之间区别的完整说明记录在 bgp deterministic-med 命令与 bgp always-compare-med 命令有何区别中。
问:内部BGP(iBGP)会话是否修改下一跳?
A. iBGP 会话保存从 eBGP 对等体中获知的下一跳属性。这就是存在指向下一跳的内部路由重要性的原因。否则,将无法到达 BGP 路由。为了确保可以到达 eBGP 下一跳,请将下一跳所属的网络包含到 IGP 中,或者发出 next-hop-self neighbor 命令,以强制路由器通告自己(而不是外部对等体)作为下一跳。有关更多详细说明,请参阅 BGP 案例分析的 BGP 下一跳属性部分。
问:联盟之间的外部BGP(eBGP)会话是否修改下一跳?
A. 不,联盟子 AS 之间的 eBGP 会话不会修改下一跳属性。所有 iBGP 规则仍然适用,从而使整个 AS 作为一个实体运行。度量值和本地首选项值在联盟 eBGP 对等体中仍保持不变。有关联盟的更多信息,请参阅 BGP 案例分析的 BGP 联盟部分。
问:在外部BGP(eBGP)会话中,哪个IP地址作为下一跳发送?
A. 在 eBGP 对等互联中,下一跳是宣布路由的邻居的 IP 地址。然而,当在多路访问介质(例如,以太网或帧中继)上宣布路由时,下一跳通常是连接到该介质的路由器接口的 IP 地址,也是路由的源发地。有关更多详细说明,请参阅 BGP 案例分析的 BGP 下一跳属性。
问:路由反射器是否更改了反射前缀的下一跳属性?
A. 默认情况下,当前缀由路由反射器反射时,不会更改下一跳属性。然而,您可以发出 neighbor next-hop-self 命令,以更改从 eBGP 对等体反射到任何路由反射器客户端的前缀的下一跳的属性。
问:我如何才能仅在失去与主要ISP的连接时才有条件地向一个ISP通告前缀?
A. 默认情况下,BGP 会向外部对等体宣布其 BGP 表中的路由。BGP条件通告功能提供额外的路由通告控制,其取决于BGP表中是否存在其他前缀。通常,会传播路由,而不管是否存在不同的路径。BGP 条件宣布功能使用 non-exist-map 和 advertise-map configuration 命令通过路由前缀跟踪路由。如果 non-exist-map 命令中不存在路由前缀,则宣布 advertise-map 命令指定的路由。有关详细信息,请参阅配置BGP的配置BGP条件通告部分。
问:从我的ISP接收完整的BGP路由表时,我的路由器中有多少内存?
A. 存储 BGP 路由所需的内存量取决于诸多因素,例如路由器、可用的可选路径的数量、路由衰减、社区、配置的最大路径数量、BGP 属性以及 VPN 配置。不了解这些参数,计算存储一定数量的 BGP 路由所需的内存量是很困难的。Cisco 通常建议路由器的 RAM 最小为 512 MB,以存储一个 BGP 对等体的完整全局 BGP 路由表。然而,了解减少内存消耗的方法以及在无需接收完整的 Internet 路由表情况下实现最佳路由的方法至关重要。有关详细信息,请参阅配置BGP路由器以获得最佳性能和减少的内存消耗。
问:配置BGP对等组有什么好处?
A. BGP对等组的主要优点是它减少了更新生成中使用的系统资源(CPU和内存)量。还简化了 BGP 配置,因为它只允许路由表被检查一次,并将更新复制到所有其他同步对等体组成员中。这样可以显著降低负载,具体取决于对等组成员的数量、表中前缀的数量、通告的前缀的数量。Cisco 建议您将对等体与相同的出站宣布策略组合到一起。有关更多详细信息,请参阅 BGP 对等组。
问:什么是同步?它如何影响安装在IP路由表中的BGP路由?
A. 如果您的AS将流量从另一个AS传递到第三个AS,则BGP无法在AS中的所有路由器通过IGP获知路由之前通告路由。BGP 在 IGP 在 AS 内部传播路由之前将一直处于等待状态,之后将该路由通告给外部对等体。如果已启用同步的 BGP 路由器无法验证其 IGP 中存在哪些路由,则该路由器无法将 iBGP 学到的路由安装到其路由表中。在 router bgp 下发出 no synchronization 命令可禁用同步。这可防止BGP在IGP中对iBGP路由进行身份验证。有关更多详细说明,请参阅 BGP 案例分析:同步。
问:如何设置通告给外部BGP(eBGP)邻居的前缀上的Multi Exit Discriminator(MED)值,以匹配内部网关协议(IGP)下一跳度量?
A. set metric-type internal route-map 配置命令使 BGP 通告与 IGP 度量值(与路由的下一跳相关联)相对应的 MED。此命令在 Cisco IOS 软件 10.3 版及更高版本中可用。
问:什么是默认BGP ConnectRetry计时器,是否可以调整BGP ConnectRetry计时器?
A. 默认 BGP ConnectRetry 计时器是 120 秒。仅在此时间后,BGP 进程才进行检查,以判断是否建立被动的 TCP 会话。如果没有建立被动TCP会话,BGP进程就会启动新的激活TCP,尝试连接到远程BGP扬声器。在 ConnectRetry 计时器此空闲的 120 秒时间内,远程 BGP 对等体可以与其建立 BGP 会话。现在,不能改变 Cisco IOS ConnectRetry 计时器的默认值 120 秒。
问:show ip bgp命令输出中的r RIB-Failure是什么意思?
R1> show ip bgp
BGP table version is 5, local router ID is 10.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
r> 10.6.6.0/24 10.10.13.3 0 130 0 30 i
*> 10.7.7.0/24 10.10.13.3 0 125 0 30 i当BGP尝试将bestpath前缀安装到路由信息库(RIB)(例如,IP路由表)中时,RIB可以拒绝以下任何原因的BGP路由:
在这种情况下,由于这些原因而被拒绝的前缀通过show ip bgp命令输出中的r RIB Failure进行识别并通告给对等体。此功能最先在 Cisco IOS 软件版本 12.2(08.05)T 中可用。
问:如何能够将获取的内部BGP(iBGP)默认路由(0.0.0.0/0)路由重分发到EIGRP/OSPF/IS-IS?
A. 将 iBGP 路由重分配到内部网关协议 (IGP)(增强型内部网关路由协议/开放最短路径优先/中间系统对中间系统 (EIGRP/OSPF/IS-IS)),可能会导致自治系统中的路由循环,不建议这样做。默认情况下,禁用将 iBGP 重分配到 IGP。发出 bgp redistribute-internal 命令可启用将 iBGP 路由重分配到 IGP。
注意:必须采取预防措施,将具有路由映射的特定路由重分配到IGP中。
此输出中显示了一个将iBGP获知的默认路由0.0.0.0/0重分发到EIGRP的示例配置。配置 OSPF/IS-IS 的过程与下面的输出类似。
router bgp 65345
[...]
bgp redistribute-internal
!
router eigrp 10
[...]
redistribute bgp 65345 route-map check-def
!
ip prefix-list def-route seq 5 permit 0.0.0.0/0
!
route-map check-def permit 10
match ip address prefix-list def-route
注意:配置bgp redistribute internal命令后,请确保输入clear ip bgp命令以清除本地路由表中的所有路由。
问:如何过滤通告给BGP邻居的所有IP路由(默认路由0.0.0.0/0除外)?
A. 如果对同一个 bgp 邻居同时使用 Inbound filter-list、distribute-list、prefix-list 和 route-map,则可以过滤特定路由。下面是执行顺序:
-
filter-list
-
route-map
-
distribute-list(或)prefix-list
问:如何解决此映像中没有协议的错误?
A. 此映像中不显示protocol not in this image是因为路由器上运行的Cisco IOS版本不支持BGP功能。要解决此错误,请将Cisco IOS升级到支持BGP的较新Cisco IOS版本。
问: BGP:timer-wheel运行速度减慢1个滴答出现在调试输出中。
A. 仅当对路由器启用 BGP 调试后,此消息才会显示。它仅仅是信息性消息,而不是错误信息。此信息性消息与 BGP 内部计时器相关。undebug all命令可以忽略此消息。
问:是否可以跟踪接口并更改路由可用性?
A. 是,可以通过增强的对象跟踪功能来跟踪接口和路由可用性的状态变化。
问: IP RIB更新如何分配内存?
A. IP RIB更新分配前缀,属性保存在内存块中。无法释放整个块区,除非先释放块区中的各个元素。如果知道了更多的路由,则使用区块中的那些自由元素。
问:用于查看IPv6 BGP邻居的命令是什么?
A.show bgp ipv6 unicast summary命令用于查看IPv6 BGP邻居
问:关于删除静态路由“ip route 10.150.0.0 255.255.0.0 Null0”,BGP中没有自动总结导致通告10.150.0.0的所有子网吗?
A. 例如:
network 10.150.0.0 mask 255.255.0.0
no auto-summary
ip route 10.150.0.0 255.255.0.0 Null0
路由器停止通告该路由,但仍会发送其他最具体的路由。
问:为什么使用debug bfd events和debug bfd packets命令时没有统计结果?
A. 这是正常行为,因为bfd hello在极短秒内发送,如果您为此运行调试,路由器将无法处理。因此,只有在发生抖动时,才会在调试中看到bfd消息。以下是此命令的用debug bfd途:
debug bfd events
此命令启用所有当前配置的BFD会话的BFD事件记录。它捕获会话状态更改、本地CLI或远程终端触发的会话配置更改等BFD事件。
debug bfd packets
此命令启用所有当前配置的BFD会话的BFD数据包的日志记录。它只捕获在发生bfd配置更改(例如会话状态更改)时交换的BFD hello数据包。此命令不会捕获正常BFD数据包。
问:在配置新的BGP邻居最大前缀后,是否必须重新启动路由器?
A. 如果新的最大前缀数大于当前最大值,则无需软/硬清除BGP会话,也不需要重新加载。
问:是否有命令可以检查通告的路由以及AS路径的前缀?
A. 当设置AS路径预置时,要预置的AS编号将附加到AS路径,并且当更新离开AS到eBGP对等体时,本地AS编号将预置到完整的AS路径。
但是,您可以轻松检查AS路径发布是否使用以下选项之一完成:
-
检查对等设备上的BGP AS PATH属性。这是检查路由器是否执行AS PATH预置的最简单方法之一。
-
对BGP更新运行调试(出站方向),然后检查预置。在调试BGP更新时使用访问列表。
Example:
Router#debug ip bgp updates 1 out
BGP: TX IPv4 Unicast Mem global 3 1 10.1.1.2 Refresh has to wait for net
prepend.
BGP: TX IPv4 Unicast Top global Start net prepend.
BGP: TX IPv4 Unicast Top global Done net prepend (1 attrs).
The router has prepended the prefix.
BGP: TX IPv4 Unicast Grp global 3 Starting refresh after prepend completion.
-
另一种方法是在送出接口捕获数据包,并查看线路上发送的更新。
问: neighbor soft-reconfiguration inbound命令如何工作?
A. neighbor soft-reconfiguration inbound命令使路由器存储所有收到的(入站)路由策略更新,而不进行修改,例如,每个对等体的内存中存储了重复表。
注意:此命令占用大量内存,除非绝对必要,否则不建议使用此命令。请参阅BGP软重置增强功能,以便在不使用额外内存的情况下实现软重置。
问:%BGP-3-NOTIFICATION:发送到邻居*A.B.C.D passive 6/0(stop)0字节错误消息表示什么?
A. 当已建立另一个BGP会话时,会出现此消息。接收停止消息的路由器尝试将BGP OPEN消息发送到另一个IP上的同一对等设备。此消息是修饰性的,是由配置错误造成的。
问:%IPRT-3-ROUTEINSERTERROR:插入路由条目时出错,错误消息是什么?
A.此错误消息表示没有足够的内存来容纳从邻居学习的BGP前缀。
问:采用Cisco IOS XR的GSR是否支持VPLS-BGP自动发现功能作为路由反射器?
答:是,带Cisco IOS XR的GSR支持VPLS-BGP自动发现的路由反射器功能。
问:如何调试Cisco IOS XR环境中特定vrf的路由?
A. 使用debug bgp keepalive [vrf [vrf-name |all]] vpnv4 unicast命令以调试思科IOS XR环境中给定vrf的路由。以下是输出示例:
*Mar 1 00:16:06.735: BGP: ses TWO 10.2.2.3 (0x69A1C8F4:1) Keep alive timerfired.
*Mar 1 00:16:06.735: BGP: 10.2.2.3 KEEPALIVE requested (bgp_keepalive_timer_expired)
*Mar 1 00:16:06.743: BGP: ses TWO 10.2.2.3 (0x69A1C8F4:1) service keepalive IO request.
*Mar 1 00:16:06.747: BGP: 10.2.2.3 KEEPALIVE write request serviced in BGP_IO
*Mar 1 00:16:07.759: BGP: ses ONE 10.1.1.1 (0x6900D344:1) Keep alive timer fired.
*Mar 1 00:16:07.759: BGP: 10.1.1.1 KEEPALIVE requested (bgp_keepalive_timer_expired)
*Mar 1 00:16:07.759: BGP: ses ONE 10.1.1.1 (0x6900D344:1) service keepalive IO request.
*Mar 1 00:16:07.763: BGP: 10.1.1.1 KEEPALIVE write request serviced in BGP_IO
问:通过redistribute命令或network命令在BGP中注入路由有何区别?
A. 当您使用IGP重分发到BGP来通告路由时,不需要单独为所有子网指定network语句。此外,当通过重分发从任何其他路由协议获取到BGP表中的路由时,Origin属性为Incomplete(?),当您指定network命令时,该属性为Internal/IGP(i)。 在路由选择过程中,首选最低源代码(IGP<EGP<Incomplete)。
问:如何验证第4层转发摘要信息?
A.要查看第4层转发的摘要信息,请使用show mls cef summary命令。例如:
Router#show mls cef summary
Total routes: 532462
IPv4 unicast routes: 502841
IPv4 Multicast routes: 6
MPLS routes: 19794
IPv6 unicast routes: 9821
IPv6 multicast routes: 3
EoM routes: 0
Router#show mls cef maximum-routes
FIB TCAM maximum routes :
=======================
Current :-
-------
IPv4 + MPLS - 512k (default)
IPv6 + IP Multicast - 256k相关信息