Cisco经典文档

当前位置: 首页Cisco经典文档BGP: 常见问题


BGP: 常见问题

   

                                                       文档下载:

切换至英文原版


问题

前言
如何配置 BGP?
如何使用环回地址配置 BGP?
当部分或全部属性应用到 BGP 中的一个邻居时,属性的优先级顺序是什么?
show ip bgp 命令输出中的下一跳 0.0.0.0 有什么含义?
有哪些众所周知的社区具有 BGP 社区属性?
可采用哪些格式配置 BGP 社区属性?
在启用自动汇总或禁用自动汇总这两种情况下,BGP 的行为有何不同?
如何验证 BGP 路由器是否宣布其 BGP 网络并将这些网络传播到全局 BGP 网格?
何时以及如何重置 BGP 会话?
有没有在PIX/ASA需要的任何特别配置通过它允许BGP会话?
什么是自治系统 (AS) 编号,如何获得一个自治系统编号?
BGP 路径选择标准是什么?
always-compare-med 与 deterministic-med 之间有何区别?
内部 BGP (iBGP) 会话是否会修改下一跳?
联盟之间的外部 BGP (eBGP) 会话是否会修改下一跳?
在外部 BGP (eBGP) 会话中,哪个 IP 地址会作为下一跳发送?
路由反射器是否会更改反射的前缀的下一跳属性?
在断开与主 ISP 的连接时,如何有条件地只向一个 ISP 宣布前缀?
如何配置 BGP 使其在网络中提供负载共享和冗余?
路由器中应有多大的内存空间才能接收来自 ISP 的完整 BGP 路由表?
配置 BGP 对等组有哪些优点?
什么是同步?它对安装在 IP 路由表中的 BGP 路由有何影响?
如何知道哪个 Cisco IOS 软件版本支持特定的 BGP 功能?
如何在向外部 BGP (eBGP) 邻居发出通知的前缀上设置多出口标识 (MED) 值,以与内部网关协议 (IGP) 的下一跳度量值相匹配?
什么是默认 BGP ConnectRetry 计时器,可以调整 BGP ConnectRetry 计时器吗?
在 show ip bgp 命令输出中,r RIB-Failure 有什么含义?
如何将内部 BGP (iBGP)(已知默认路由 (0.0.0.0/0))路由重分配到 EIGRP/OSPF/IS-IS?
如何过滤向 BGP 邻居发出通告的所有 IP 路由(默认路由 0.0.0.0/0 除外)?
如何排除 Protocol not in this image 错误?
BGP : timer-wheel running slow by 1 ticks”。
是否可以跟踪接口以及更改路由可用性?
IP RIB 更新如何分配内存?
 


 

前言

 

本文档包含有关边界网关协议 (BGP) 的常见问题 (FAQ)。

 

问。 如何配置 BGP?

 

答:有关如何配置 BGP 和 BGP 功能的信息,请参阅下列文档:

 

问。 如何使用环回地址配置 BGP?

 

A. 使用环回接口可确保邻居处于活动状态并且不受发生故障的硬件影响。

默认情况下,如果 BGP 建立了 BGP 对等会话,它会使用在直接连接到 BGP 对等体的物理接口上配置的 IP 地址作为源地址。 发出 neighbor <ip 地址> update-source <接口> 命令以更改此行为,并配置 BGP 以告之路由器使用环回地址作为源地址建立对等会话。

有关详细信息,请参阅使用或不使用环回地址配置 iBGP 和 eBGP 的示例

 

问。 当部分或全部属性应用到 BGP 中的一个邻居时,属性的优先级顺序是什么?

 

A. 根据属性是应用于入站更新还是出站更新,优先级顺序有所不同。

对于入站更新,优先级顺序是:

  1. route-map

  2. filter-list

  3. prefix-list、distribute-list

对于出站更新,优先级顺序是:

  1. prefix-list、distribute-list

  2. filter-list

  3. route-map

注意: 属性 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

不会将此路由通知给任何内部或外部对等体。

当您想要清除与某路由相关的社区时,不要应用社区属性。

互联网

将此路由通知给 Internet 社区及任何属于此社区的路由器。

 

 

有关社区配置的更多信息,请参阅配置 BGP配置 BGP 社区过滤部分。

 

问。 可采用哪些格式配置 BGP 社区属性?

 

A. 在 Cisco IOS® 软件 12.0 版及更高版本中,可以三种不同的格式(即,十进制、十六进制和 AA:NN)配置社区NN. 默认情况下,IOS 使用较旧的十进制格式。 要以 AA:(其中第一部分是 AS 编号,第二部分是 2 字节编号),请发出 ip bgp new-format 全局配置命令。

注意: 尽管社区属性可以采用十进制、十六进制或 AA:NN 格式表示,但它仍然是 32 位数字。 例如,以下三个配置命令指定了社区 30:20(AS 30,20 号):

  • set community 30:20

  • set community 0x1E0014

  • set community 1966100

不管您使用哪个命令,在路由器配置文件和 BGP 表中显示的社区都是 30:20。

有关详细信息,请参阅 BGP 案例分析社区属性部分,以及在上游提供程序网络中使用 BGP 社区值控制路由策略

 

问。 在启用自动汇总或禁用自动汇总这两种情况下,BGP 的行为有何不同?

 

答:自动汇总行为在各个 Cisco IOS 软件版本中均已发生变化。 最初,默认为启用自动汇总。 然而,对于 Cisco Bug ID CSCdu81680仅限注册用户),此行为已发生变化。 在最新的 Cisco IOS 中,默认为禁用自动汇总。 启用自动汇总后,它会在 BGP 网络的有类边界范围内汇总在本地创建的 BGP 网络。 在 BGP 中,默认为启用自动汇总。 禁用自动汇总后,在本地引入到 BGP 表中的路由不会在其有类边界范围内进行汇总。 如果路由表中存在子网并且满足以下三个条件,本地路由表中的有类网络的所有子网将提示 BGP 将有类网络安装到 BGP 表中。

  • 路由表中网络的有类网络语句

  • 该网络语句的有类掩码

  • 已启用自动汇总

例如,如果路由表中的子网为 75.75.75.0(掩码 255.255.255.0),您在 router bgp 命令下配置 network 75.0.0.0 ,并且启用自动汇总,则 BGP 会在 BGP 表中引入有类网络 75.0.0.0(掩码 255.0.0.0)。

如果上述三个条件都不符合,除非在本地路由表中有完全匹配项,否则 BGP 不会在 BGP 表中安装任何条目。

注意: 如果执行 BGP 的 AS 不具备完全有类网络,Cisco 建议您在 router bgp 下发出 no auto-summary 命令,以禁用自动汇总。

 

问。 如何验证 BGP 路由器是否宣布其 BGP 网络并将这些网络传播到全局 BGP 网格?

 

A. 请使用这些命令为了检查IP块是否直接地宣布对连接的ISP :

  • show ip bgp neighbors [地址] advertised-routes 命令显示哪些消息正被发送。

  • show ip bgp neighbors [地址] routes 命令显示哪些消息正被接收。

注意: show ip bgp neighbors [地址] advertise-routes 命令不考虑可能已应用的任何出站策略。 在未来的 Cisco IOS 软件版本中,会更改命令输出以反映出站策略。 如果有两个可选路径指向目标,BGP 总是使用最佳路由进行通知。

为了验证 IP 块如何通过直接连接的 ISP 传播到全局 BGP 网格,请登录到 Internet 上的路由服务器,并且在该路由服务器中寻找前缀的 BGP 条目。leavingcisco.com

 

问:何时以及如何重置 BGP 会话?

 

答:在更改 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.0 版及更高版本中,引入了一种新的 BGP 软重置增强功能。 有关详细信息,请参阅 BGP 软重置增强

 

问。 有没有在PIX/ASA需要的任何特别配置通过它允许BGP会话?

 

A. 是,是指ASA/PIX : BGP通过ASA配置示例关于完整的配置详细信息。

 

问。 什么是自治系统 (AS) 编号,如何获得一个自治系统编号?

 

答:AS 编号是全局唯一编号,用于标识 AS,并且使 AS 能够交换相邻 AS 之间的外部路由信息。 AS 是遵守一个明确定义的路由策略的相连 IP 网络组。

可用 AS 编号是有限的。 因此,判断哪些站点需要唯一的 AS 编号而哪些站点不需要唯一的 AS 编号至关重要。 不要求唯一 AS 编号的站点应使用一个或多个留作专用的 AS 编号,范围在 64512 到 65535 之间。 请访问 AS 编号注册服务 网站获取 AS 编号。leavingcisco.com

 

问。 BGP 路径选择标准是什么?

 

答:BGP 路径选择标准记录在 BGP 最佳路径选择算法中。

 

问。 always-compare-med 与 deterministic-med 之间有何区别?

 

A. 这些命令之间区别的完整说明记录在 bgp deterministic-med 命令与 bgp always-compare-med 命令有何区别中。

 

问。 内部 BGP (iBGP) 会话是否会修改下一跳?

 

答: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 下一跳属性

 

问:路由反射器是否会更改反射的前缀的下一跳属性?

 

答:默认情况下,当前缀由路由反射器反射时,不会更改下一跳属性。 然而,您可以发出 neighbor next-hop-self 命令,以更改从 eBGP 对等体反射到任何路由反射器客户端的前缀的下一跳的属性。

 

问。 在断开与主 ISP 的连接时,如何有条件地只向一个 ISP 宣布前缀?

 

答:默认情况下,BGP 会向外部对等体宣布其 BGP 表中的路由。 BGP 条件宣布功能提供对路由宣布的其他控制,具体取决于 BGP 表中是否存在其他前缀。 通常,会传播路由,而不管是否存在不同的路径。 BGP 条件宣布功能使用 non-exist-map 和 advertise-map configuration 命令通过路由前缀跟踪路由。 如果 non-exist-map 命令中不存在路由前缀,则宣布 advertise-map 命令指定的路由。 有关更多信息,请参阅配置 BGP配置 BGP 有条件通告部分。

 

问。 如何配置 BGP 使其在网络中提供负载共享和冗余?

 

A. 请从这些文档中获取详细的配置信息:

 

问:路由器中有多大的内存空间才能从 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,则在您的 AS 中的所有路由器均通过 IGP 了解该路由之前,BGP 不应通告路由。 BGP 在 IGP 在 AS 内部传播路由之前将一直处于等待状态,之后将该路由通告给外部对等体。 如果已启用同步的 BGP 路由器无法验证其 IGP 中存在哪些路由,则该路由器无法将 iBGP 学到的路由安装到其路由表中。 在 router bgp 下发出 no synchronization 命令可禁用同步。 这可防止 BGP 验证 IGP 中的 iBGP 路由。 有关更多详细说明,请参阅 BGP 案例分析: 同步

 

问。 如何知道哪个 Cisco IOS 软件版本支持特定的 BGP 功能?

 

A. 请使用 Cisco IOS Software Advisor仅限注册用户)快速查看哪个 Cisco IOS 软件版本支持您的功能。

 

问。 如何在向外部 BGP (eBGP) 邻居发出通知的前缀上设置多出口标识 (MED) 值,以与内部网关协议 (IGP) 的下一跳度量值相匹配?

 

A. set metric-type internal route-map 配置命令使 BGP 通告与 IGP 度量值(与路由的下一跳相关联)相对应的 MED。 此命令在 Cisco IOS 软件 10.3 版及更高版本中可用。 有关详细信息,请参阅 BGP 命令

 

问。 什么是默认 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 200.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> 6.6.6.0/24       10.10.13.3               0    130      0 30 i
*> 7.7.7.0/24       10.10.13.3               0    125      0 30 i

A. 当 BGP 尝试将 bestpath 前缀安装到路由信息库 (RIB)(例如,IP 路由表)中时,RIB 可能会因下列任一原因而拒绝 BGP 路由:

  • 有较好管理距离的路由已存在于 IGP 中。 例如,如果静态路由已经存在于 IP 路由表中。

  • 内存故障。

  • VPN 路由/转发 (VRF) 中路由的数量超出在 VRF 实例下配置的路由限额。

在这些情况下,由于上述原因被拒绝的前缀会通过 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。 必须首先采取预防措施,然后才能使用 route-maps 将特定路由重分配到 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 邻居发出通告的所有 IP 路由(默认路由 0.0.0.0/0 除外)?

 

A. 如果对同一个 bgp 邻居同时使用 Inbound filter-list、distribute-list、prefix-list 和 route-map,则可以过滤特定路由。 下面是执行顺序:

  1. Filter-list

  2. Router-map

  3. Distribute-list(或)prefix-list

 

问。 如何排除 Protocol not in this image 错误?

 

A. 获得错误消息 protocol not in this image 的原因是路由器上运行的 IOS 版本不支持 BGP 功能。 若要排除此错误,请将 IOS 升级到支持 BGP 的较新的 IOS 版本。

 

问:调试输出中显示“BGP: timer-wheel running slow by 1 ticks”。

 

A. 仅当对路由器启用 BGP 调试后,此消息才会显示。 它仅仅是信息性消息,而不是错误信息。 此信息性消息与 BGP 内部计时器相关。 可以通过发出 undebug all 命令来忽略此消息。

 

问。 是否可以跟踪接口以及更改路由可用性?

 

A. 是,可以通过增强的对象跟踪功能来跟踪接口和路由可用性的状态变化。 有关更多信息,请参阅增强的对象跟踪

 

问。 IP RIB 更新如何分配内存?

 

答:IP RIB 更新分配前缀,并且以区块的形式保存属性。 无法释放整个块区,除非先释放块区中的各个元素。 如果知道了更多的路由,则使用区块中的那些自由元素。


 

 

注:本人能力有限,如遇不足之处,还请指正!

China-CCIE  QQ交流群:106155045   点击与作者QQ交谈