目录

简介

先决条件

要求

使用的组件

“BGP General”（BGP 常规）配置

BGP 对等体配置

示例对等体配置

BGP 路由通告策略

BGP 网络

“BGP Aggregate”（BGP 汇聚）配置

IP 路由协议重新分发

将静态路由重新分发到 BGP

“BGP Route Map”（BGP 路由映射）配置

BGP 路由映射规则

BGP 路由选择过程总结

IP 路由过滤器和 BGP

BGP 控制台命令

Show BGP rtcount

Show BGP Routes

Show BGP Peers

Show BGP Networks

Show BGP Stats

Show BGP Timers

Show BGP Mem

Show BGP Config

Show BGP Aggregates

BGP Disable

Reset BGP Peer

BGP 快速入门指南

BGP 调试选项

BGP RFC 参考

相关信息

简介

边界网关协议 (BGP) 是一种外部网关协议，允许自治系统互相交换路由信息。自治系统是一组在单一技术管理下的路由器。

自治系统 (AS) 编号由美洲互联网编号注册机构分配。有关详细信息，请参阅其网站。该网站的“Documentation”（文件）部分提供所有已分配 AS 编号的完整列表。

美洲互联网编号注册机构

如果安装是单宿主的，可以申请一个 AS 号以运行 BGP，不过不建议这么做。但是，对于多宿主站点，由于使用多个 ISP，因此必须申请一个单独的 AS 编号。这是因为单宿主安装可视为 ISP 内部的安装，而多宿主站点则不能。

交换 BGP 信息的路由器称为 BGP 对等体。一台路由器可能在其他 AS 中有外部对等体，并且在其自己的 AS 内有内部对等体。如果对等体的 AS 编号与路由器自己的 AS 编号不同，则会被视为外部对等体。

路由器使用 TCP 协议建立 BGP 会话。当启动新 BGP 会话时，BGP 对等体将交换其完整的路由表，然后仅在路由表发生变化时发送增量更新。

本配置指南介绍在兼容的系统路由器上运行 BGP 可用的配置选项。

先决条件

要求

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

使用的组件

本文档仅限于思科兼容微型系列路由器。

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

“BGP General”（BGP 常规）配置

BGP 协议在 BGP General（BGP 常规）配置部分启用。为路由器全局启用 BGP（而不是为按接口启用），就像 RIP 和 OSPF 一样。默认情况下，BGP 处于 Off 状态。要启用 BGP，必须将 BGPEnabled 参数设置为 On。

[ BGP General ]

BGPEnabled     = Off     Enable or disable the BGP protocol

BGPAS          = ""      Autonomous system number of this router

BGPLocPref     = 100     BGP local preference, default is 100

BGPUseIPRFltrs = False   Use IP Route Filters, default is False

此路由器的自治系统 (AS) 编号在此处设置。必须提供 BGPAS 编号；如果未提供，则不会启用 BGP。

本地优先级属性 BGPLocPref 在同一 AS 中的路由器之间交换，指示退出 AS 时首选哪条路径；优先使用具有更高本地优先级的路径。如果未指定 BGPLocPref，则将使用默认值 100。

BGP 使用 BGP 路由映射来过滤路由和设置属性。有关这些设置的更多信息，请访问本文档的 BGP Peer Config（BGP 对等体配置）和 BGP Route Map（BGP 路由映射）部分。用户可以选择使用“IP Route Filters”（IP 路由过滤器）而不使用“BGP Route Maps”（BGP 路由映射）。对于未定义“BGP Route Maps”（BGP 路由映射）的每个对等体，系统将会检查 BGPUseIPRFltrs 的值，如果结果为 TRUE，则将检查该对等体的“IP Route Filters”（IP 路由过滤器）。请注意，“IP Route Filters”（IP 路由过滤器）对于路由器是全局的，而“BGP Route Maps”（BGP 路由映射）则可以特定于各个对等体。

BGP 对等体配置

BGP Peer List（BGP 对等体列表）包含为此路由器配置的对等体的列表。路由器将不会与不在此列表上的任何路由器建立 BGP 连接。如果没有 BGP Peer List（BGP 对等体列表），则即使在 BGP General（BGP 常规）部分将 BGPEnabled 设置为 On，也不会启用 BGP。

[ BGP Peer List ]

BGPPeer  =  On/Off  IPAddress  ASNumber  PeerConfigID

On|Off参数配置路由器相对于对等设备的启动状态；它决定着路由器是否会在启动时自动尝试与对等体建立 BGP 会话。如果此参数设置为 Off，则在发出 BGP Enable 命令之前，路由器将不会与对等体建立 BGP 会话。请注意，这不会更改启动状态；下次启动路由器时，对等体将处于 Off 状态，直到您启用它。

您可以配置 BGP，以便所有对等体在启动时都处于 Off 状态。如果 BGP General（BGP 常规）部分的设置为 BGPEnabled = On，则您将能够在路由器启动后动态启用所选对等体。

路由器将使用配置列表中给出的 IPaddress（IP 地址）与对等体联系。必须提供对等体的 IPaddress（IP 地址）和 ASNumber（AS 编号）。路由器必须在其路由表中包含所提供 IP 地址的网络，这样才能建立会话。路由器根据对等体的 AS 编号确定对等体是内部对等体还是外部对等体，因为内部对等体与路由器本身具有相同的 AS 编号。

每个 BGP Peer List（BGP 对等体列表）条目可以包含一个可选的 PeerConfigID，用于指定 BGP Peer Config（BGP 对等体配置）部分的编号，您可在此部分设置各种对等体特定的 BGP 配置项目。仅当想得到所有相同的参数时，BGP 对等体配置（BGP 对等体配置）部分才可用于多个对等体。

[ BGP Peer Config "SectionID" ]    Section ID is a character string

InputRouteMap    = ""     Name of input Route Map to be used for this peer

OutputRouteMap   = ""     Name of output Route Map to be used for this peer

NextHopSelf      = False  Next hop is this router

EBGPMultihop     = False  External peer not directly connected

PeerWeight       = 100    Neighbor weight

PeerRetryTime    = 30     Retry time in seconds

PeerHoldTime     = 180    Configured hold time in seconds

BGPUseLoopback   = False  Use router LoopbackAddress with this peer

AdvertiseDefault = False  Advertise default route to this peer

请注意，InputRouteMap 和 OutputRouteMap 应单独指定。输入与输出路由可以设置和检查的参数不一样（有关详细信息，请参阅 BGP Route Map（BGP 路由映射）部分）。

如果 NextHopSelf 设置为 TRUE，则路由器会通告它自己，作为向此对等体通告的路由的下一跳。

除非 EBGPMultihop 设置为 TRUE，否则需要直接连接外部对等体。如果此参数设置为 TRUE，则路由器必须具有通往非直接连接外部对等体的路由，这样才能建立连接。

PeerWeight 参数是由管理员分配给对等体的内部评级；它不会通告给其他路由器。当有多个路由到达同一目的地时，优先选择权重较高的对等体。

利用 BGP Retry Time（BGP 重试时间），管理员可以设置重新尝试与因为某种原因而关闭的已配置对等体建立连接所需间隔的时间。如果对等体关闭，但其状态设置为 On，则路由器将持续尝试每 PeerRetryTime 秒联系一次对等体。接受的最短 PeerRetryTime 为 10 秒。

与对等体协商保持时间，以便让配置的 PeerHoldTime 不一定最终成为对等体使用的实际保持时间。对等体将使用建议的两个保持时间中较短的时间。保持时间必须为零或至少 3 秒。如果协商的保持时间间隔为零，则不会定期发送保持连接消息。

如果未提供 PeerWeight、PeerHoldTime 或 PeerRetryTime，系统将使用默认值。默认 PeerWeight 为 100，默认 PeerHoldTime 为 180 秒，默认 PeerRetryTime 为 30 秒。

如果在 IP Loopback（环回 IP）部分指定了 LoopbackAddress，则 BGPUseLoopback 可设置为 TRUE。在这种情况下，路由器将使用其环回地址作为发送至该对等体的 TCP 数据包中的源 IP，而不是其中一个接口的特定 IP 地址。但是请注意，对等体必须知道如何通过常规 IP 路由程序将数据包发送到该地址。如果该地址不在对等体已知的子网上，则必须通过静态路由添加该地址。环回地址通常仅用于内部对等体，因为外部对等体通常是直接连接的。

除非对等体的参数 AdvertiseDefault 设置为 TRUE，否则路由器的默认路由不会通告给该对等体。

示例对等体配置

这是一个示例对等体配置：

[ BGP Peer List ]

BGPPeer = On   198.41.11.213   100   Peer1

BGPPeer = On   205.14.128.1    110   Peer2

[ BGP Peer Config "Peer1" ]

InputRouteMap            = bgpin1

OutputRouteMap           = bgpout1

PeerHoldTime             = 180

PeerRetryTime            = 65

PeerWeight               = 1000

[ BGP Peer Config "Peer2" ]

InputRouteMap            = bgpin2

OutputRouteMap           = bgpout1

PeerHoldTime             = 180

PeerRetryTime            = 45

PeerWeight               = 2000

在 BGP Peer List（BGP 对等体列表）和 BGP Peer Config（BGP 对等体配置）中，对等体 198.41.11.213 和 206.14.128.2 使用 BGP Peer Config 1（BGP 对等体配置 1），而对等体 205.14.128.1 使用 BGP Peer Config 2（BGP 对等体配置 2）。

BGP 路由通告策略

BGP 的默认配置是不通告路由。这是为了防止无意中在互联网上通告路由。

要通告路由，您必须执行以下配置：“BGP Networks list”（BGP 网络列表 ）、“IP Route Redistribution”（IP 路由重新分发）、“BGP Route Maps”（BGP 路由映射）或“IP Route Filters”（IP 路由过滤器）。

要通告外部路由，请使用“BGP Route Maps”（BGP 路由映射）或“IP Route Filters”（IP 路由过滤器）。要通告内部路由，请使用“BGP list”（BGP 网络列表 ）或“IP Redistribution”（IP 路由重新分发）。

下面将介绍其中每个配置部分。

BGP 网络

BGP Networks（BGP 网络）部分定义管理员希望从 AS 内发起通告的路由列表。这些可能是直连路由、静态路由、RIP 路由或 OSPF 路由。

路由器将 BGP 网络列表中的条目与其 IP 路由表进行比较，并且不会通告可以在网络列表中找到但无法在 IP 路由表中找到的路由。因此，如果要通告不在路由器自己的 IP 路由表中的本地网络，则需要添加静态路由。

请注意，让直连路由通告到 BGP 的唯一方法是将其包含在网络列表中。可以使用 IP RouteRedistribution（IP 路由重新分发）部分将 OSPF 或 RIP 路由通告到 BGP。静态路由可以使用每个已配置的静态路由上的重新分发标志通告到 BGP。

可选掩码参数告诉路由器，要根据 LocalNet 地址匹配 IP 路由表条目的多少位。这不一定是您想要通告的网络的实际掩码。例如，假设路由器的子网为198.41.9.32、198.41.9.64和198.41.9.96，所有子网的掩码均为255.255.255.224。要使BGP通告一个1958.41.9.0/24网络，您的BGP网络将如下所示：

[ BGP Networks ]

LocalNet = IP address [mask]

[ BGP Networks ]

LocalNet = 198.41.9.32 255.255.255.255

由于您随 LocalNet 一起提供掩码，所以路由器将仅与 198.41.9.32 条目匹配。它会将网络通告为198.41.9.0/24，因为它会自动截断比C类更具体的子网掩码。但是，如果您提供的掩码为255.255.255.0，则最终会三次通告198.41.9.0/24网络，因为您的三个子网都会匹配LocalNet条目。此截断与汇聚不同，仅适用于内部网络，且仅适用于比 C 类更具体的掩码。要获取路由汇聚，请使用 BGP 汇聚部分。

“BGP Aggregate”（BGP 汇聚）配置

BGP Aggregates（BGP 汇聚）部分包含要在通告给外部对等体之前汇聚的网络。路由器的 IP 路由表必须包含属于汇聚子集的网络，这样才能通告汇聚；系统仅将汇聚（而不是单个路由）通告给外部对等体。内部对等体将接收从 AS 之外发起的单个路由；内部对等体不通过 BGP 交换内部路由。

C 类网络的内部子网不需要有汇聚列表（请参阅上面的“BGP Networks”（BGP 网络）部分）。 但是，如果有几个可以与单个掩码组合成超网的 C 类（或更高版本）网络，则可以使用汇聚。

[ BGP Aggregates ]

AddrAndMask = [IPAddr] [IPMask]

IP Routing Table Entries

198.41.8.0     255.255.255.0

198.41.9.0     255.255.255.0

198.41.10.0    255.255.255.0

198.41.11.0    255.255.255.0

[ BGP Networks ]

LocalNet = 198.41.8.0 255.255.252.0

[ BGP Aggregates ]

AddrAndMask = 198.41.8.0 255.255.252.0

单一路由 198.41.8.0/22 将通告给 BGP 外部对等体。如果没有 BGP Aggregates（BGP 汇聚）条目，系统将单独通告四个网络。所有四个网络都将与 BGP Networks（BGP 网络）部分提供的掩码匹配，但它们不会自动汇聚。

IP 路由协议重新分发

另一种指定要导入到 BGP 的 RIP 和 OSPF 路由的方法是使用路由重新分发。默认设置为禁用所有路由重新分发。

可以将 BGP 路由重新分发到 RIP 和 OSPF 中，但除非只接受少量的 BGP 路由，否则不建议这样做。执行某些操作（例如将 BGP 路由导入 OSPF，然后将 OSPF 路由导出到 BGP）时，必须小心使用适当的过滤器。

注意：支持的路由数也取决于路由器的内存量。

[ IP Route Redistribution ]

BGPtoOSPF                  Redistribute BGP routes to OSPF

Syntax: [True|False] [Metric]

BGPtoRIP                   Redistribute BGP routes to RIP

Syntax: [True|False] [Metric]

RIPtoBGP                   Redistribute RIP routes into BGP

OSPFtoBGP                  Redistribute OSPF routes into BGP

将静态路由重新分发到 BGP

在 IP Static（静态 IP）部分配置路由时，可以使用重新分布标志将静态路由重新分发到 BGP：

[ IP Static ]

198.41.16.0 255.255.255.0 198.41.9.65 1 Redist=BGP

“BGP Route Map”（BGP 路由映射）配置

BGP 路由映射与 IP 路由过滤器非常相似，不同之处在于：

- BGP 路由映射特定于 BGP

- 可以按对等体指定 BGP 路由映射

- 除了过滤路由外，BGP 路由映射还允许在传入和传出路由上设置 BGP 属性

路由映射仅供 BGP 协议使用，并且不与特定接口关联。BGP Peer Config（BGP 对等体配置）部分指定要应用于对等体的路由映射（如果有）。输入路由映射和输出路由映射应分开进行指定。

除非路由映射或路由过滤器拒绝，否则将通告路由器已知的 BGP 路由。除非在“BGP Networks”（BGP 网络）部分或通过路由重新分发来指定，否则不会通告静态、IGP 和直连路由。

除非已定义 BGP 路由映射或 IP 路由过滤器，否则路由器将不会接受任何输入路由。如果您确实想要使用所有路由，则可以使用“permit 0.0.0.0”。路由器首先检查 BGP 路由映射，如果路由被拒绝，则即使 BGPUseIPRFltrs 为 True，也不会检查 IP 路由过滤器。

[ BGP Peer Config 2 ]

InputRouteMap            = bgpin2

OutputRouteMap           = bgpout2

IP Route Filters（IP 路由过滤器）可与 BGP 配合使用以代替 BGP Route Maps（BGP 路由映射）。其匹配条件更加有限，并且使用 IP Route Filters（IP 路由过滤器）无法设置很多参数，例如社区、本地优先级和权重。

BGP Route Map name（BGP 路由映射名称）是配置的特殊部分，没有要记录的关键字。每个部分都包含一个完整的过滤器集，通过该部分名称的 Name（名称）部分来唯一标识。可能存在多个部分，每个部分都有唯一的名称。名称必须为 15 个字符或更少字符。

BGP 路由映射规则

本部分详细介绍与 BGP 路由映射规则相关的参数和修饰符。

action route [direction] [out | in modifiers]

permit | deny IP Address out | in

action、route 和 direction 是必需的参数。In 和 out 修饰符是可选的。

Action - Permit 或 Deny

此参数用于指定当路由满足规则条件时要执行的操作。

Route - 网络的 IP 地址

IP 地址的指定方式与所描述的 IP 路由过滤器方式相同；即，采用普通的点分十进制表示法、作为分解地址、十六进制数字或使用可选的 /bits 字段。有关详细信息，请参阅 IP 路由过滤器手册页面。

[Direction]

必须提供 in 或 out 参数，以指定应用规则的方向。

如果方向为 in，则以下修饰符适用：

- ipaddr - 对等体的 IP 地址

- srcas - 路由拥有这个源 AS 编号

- hasas - AS 路径中包含这个 AS 编号

- nhop - 路由拥有这个下一跳

- comm - 属性列表中包含此社区

- setpref - 将优先级设置为此值

- setwt - 将权重设置为此值

ipaddr | hasas | srcas |通信 | nhop修饰符将输入规则限制为源自指定IP地址、AS编号、社区或下一跳的路由。此处这五个参数只能使用一个。hasas 表示在 AS 路径中的任意位置包含指定的 AS 编号时，将应用规则；srcas 表示仅当路由源自指定 AS 时，才会应用规则。

setpref 修饰符允许对传入路由设置优先级。如果提供了 ipaddr、hasas、srcas、comm 或 nhop，系统将仅为匹配该条件的路由设置优先级。

setwt 修饰符允许对传入路由设置权重。如果提供了 ipaddr、hasas、srcas、comm 或 nhop，系统将仅为匹配该条件的路由设置权重。

如果方向为 out，则以下修饰符适用：

- ipaddr - 对等体的 IP 地址

- toas - 对等体的 AS 编号

- srcas - 路由的源 AS 编号

- origin - 路由的来源协议

- setnhop - 设置下一跳属性

- setmed - 设置多出口鉴别器属性

- setasp - 将 AS 路径添加到当前路径前面

- setcomm - 设置新社区列表，丢弃旧列表

- addcomm - 将社区列表添加到现有列表前面

ipaddr |作为修饰符，将输出规则限制为通往指定IP地址或AS编号的路由。此处只应有一个参数。如果路由器在给定 AS 中仅有一个对等体，则 ipaddr 或 toas 将实现相同的结果。如果路由器在相邻 AS 内有多个对等体，请使用对等体的 IP 地址将该规则限制为仅用于该对等体，或使用 AS 编号将该规则应用于 AS 中的每个对等体。

Srcas 修饰符将输出规则限制为源自指定 AS 编号的路由。

origin 协议修饰符将输出规则限制为源自指定协议的路由。BGP 可以从其自己的 IP 路由表向对等体通告直连、静态、RIP、OSPF 或其他 BGP 路由。

setnhop 修饰符允许对传出路由设置下一跳。

setmed 修饰符允许对传出路由设置多出口鉴别器。

setasp 修饰符允许将指定的 AS 列表添加在传出 AS 路径属性前面。最多可以输入 6 个 AS 编号。

setcomm 修饰符允许对传出路由设置社区列表。参数可以是最多 6 个社区编号，也可以是以下其中一个特殊社区：“noexport”、“noadv”或“noexpsub”。 这些是 RFC 1997 中定义的三个“公认”社区，即 BGP 社区属性：NO_EXPORT、NO_ADVERTISE 和 NO_EXPORT_SUBCONFED。

addcomm 修饰符允许在传出路由前面添加社区列表。参数最多可以有 6 个社区编号。

Examples

在BGP路由映射mymapin中，如果社区属性包含社区200，则允许路由192.61.5.0，并且首选项将设置为100。在第二行中，来自社区200的所有其他路由也将被接受，但首选项将设置为300。不包含的路由社区200将被拒绝。

在BGP路由映射mymapout中，BGP网络部分中指定的所有直接路由将允许输出到AS编号200,MED将设置为10。在第二行中，所有路由将允许输出到AS编号300，但社区值将设置为noadv(NO_ADVERTISE)。

[ BGP Route Map "mymapin" ]

permit 192.61.5.0 in comm 200 setpref 100

permit 0.0.0.0 in comm 200 setpref 300

[ BGP Route Map "mymapout" ]

permit 0.0.0.0 out toas 200 origin direct setmed 10

permit 0.0.0.0 out toas 300 setcomm noadv

BGP 路由选择过程总结

因为 BGP 使用权重、优先级和 MED 以及其他属性，所以路由映射可以帮助管理员影响路由选择过程。BGP 使用以下条件按照提出的顺序为目的地选择最佳路由：

- 最优选的路径是权重最大的路径。

- 如果权重相同，则选择具有最高本地优先级的路径。

- 如果优先级相同，则选择具有最短 AS 路径长度的路径。

- 如果所有路径都具有相同的 AS 路径长度，请选择具有最低 MED 的路径。

- 如果路径具有相同的 MED，请从 BGP 对等体中选择具有最低路由器 ID 的路径。

IP 路由过滤器和 BGP

用户可以选择将 IP Route Filters（IP 路由过滤器）与 BGP 一起使用，以代替 BGP Route Maps（BGP 路由映射）；但是，IP Route Filters（IP 路由过滤器）不能按照 BGP Route Map（BGP 路由映射）部分所述设置 BGP 属性。如果为对等体定义了 InputRouteMap，则即使已在 BGP General（BGP 常规）部分将 BGPUSEIPRFLTRS 参数设置为 TRUE，也将为输入路由忽略 IP 路由过滤器。同样，如果已为对等体定义 OutputRouteMap，则将为输出路由忽略 IP 路由过滤器。

对于 BGP，已向 IP 路由过滤添加了一个额外的参数，这是基于 AS 路径的过滤。BGP 路由包含有关其已遍历的每个自治系统 (AS) 的信息。源自 AS 500 的路由 199.41.13.0 将有两条 AS 路径到达 R1：[200,300,500] 和 [400,600,500]。

在以下示例中，IP路由过滤器bgpin应用于路由器R1。将过滤掉源自AS 300的所有路由，并允许所有源自AS 400的路由。

IP路由过滤器bgpout允许将192.62.16.0通告给R2，将192.62.17.0通告给R4。R2和R4的IP地址可以代替bgpout中的AS编号。

IP Route Filter bgp600说明了contains关键字的使用。此过滤器将拒绝在其 AS 路径中任何位置包含 AS 600 的任何传入路由。

请注意路由过滤器中的最后一行，以防止意外过滤掉 RIP 和 OSPF 路由：

[ IP Route Filter "bgpin" ]

deny 0.0.0.0 in via bgp from 300

permit 0.0.0.0 in via bgp from 400

permit 0.0.0.0 in via rip ospf

[ IP Route Filter "bgpout" ]

permit 192.62.16.0 out via bgp to 200

permit 192.62.17.0 out via bgp to 400

permit 0.0.0.0 out via rip ospf

[ IP Route Filter "bgp600" ]

deny 0.0.0.0 in via bgp contains 600

permit 0.0.0.0 in via rip ospf

---------           ---------          ---------

192.62.16.0  | R1    |___________| R2    |__________| R3    |

192.62.17.0  | AS100 |           | AS200 |          | AS300 |

---------           ---------          ---------

|                                       |

|                                       |

---------          ---------          ---------

| R4    |__________| R6    |__________| R5    | 199.41.13.0

| AS400 |          | AS600 |          | AS500 |

---------          ---------          ---------

但是，因为 AS 过滤器应用于路由来源，所以您不能使用 AS 过滤执行以下操作。假设路由器R1正在从其对等体R2和R4接收有关路由199.41.13.0的通告，并且该路由源自AS 500。因此，来自R2的路由的AS路径为[200,300,500]，而该路径的AS路径相同从R4的路由是[400,600,500]。

[ IP Route Filter "does not work as intended" ]

deny 199.41.13.0 in via bgp from 200

permit 199.41.13.0 in via bgp from 400

虽然语法正确，但是上述过滤器只会导致路由被拒绝；它与第2行中的过滤器不匹配，因为其源AS编号是500，而不是400。为了实现上述目的，您可以使用对等体R2和R4的IP地址：

[ IP Route Filter "bgpin" ]

deny 199.41.13.0 in via BGP from "R2's IP address"

permit 199.41.13.0 in via BGP from "R4's IP address"

BGP 控制台命令

有几个 show 命令可用于 BGP，还有一些命令可用于启用/禁用 BGP 或重置 BGP 连接：

show bgp rtcount     BGP Routing Entry Counts

show bgp routes      Display BGP Routing Entries

show bgp peers       Display the list of BGP Peers and current status

show bgp timers      BGP Peer timer information

show bgp mem         BGP Database Memory Allocation

show bgp config      BGP configuration information

show bgp stats       BGP peer uptime and packet exchange statistics

show bgp networks    Display list of internal networks to be advertised

show bgp aggregates  Display BGP routes to be aggregated

bgp disable          Disable BGP connection to all peers or 1 specified peer

Usage: { ALL | IP Address }

bgp enable           Enable BGP connection to all peers or 1 specified peer

Usage: { ALL | IP Address }

bgp reset peer       Reset BGP connection to all peers or 1 specified peer

Usage: { ALL | IP Address }

Show BGP rtcount

此命令显示 BGP 路由数据库中的路由总数。使用 BGP 时，如果有大量路由，并且您想知道有多少个路由，但不将它们全部显示出来，则此功能非常有用。

BGP Test> sho bgp rt

BGP Routing Database Entries       In Use    Added     Removed

In IP routing table:               51548     78694     27146

BGP route heads:                   51548     78702     27154

IP Routing Table Entries: 51561

Show BGP Routes

show bgp routes 命令（不带参数）显示 BGP 路由数据库中适合每个目的地的最佳路由。下面显示了一个示例片段。

BGP 路由数据库可能包含不在路由器的 IP 路由表中的路由；如果路由器没有某个 BGP 路由的下一跳条目，则 IP 路由表中将不会显示该路由。

bgptest>sho bgp ro

BGP Best Routes List

Network/Mask Bits   Pref  Weight  Next Hop         AS Path

1  128.128.0.0    /16  100   100     199.45.133.101   3404 1 1

2  129.129.0.0    /16  100   100     199.45.133.101   3404 1 1239 1673 1133 559

3  130.130.0.0    /16  100   100     199.45.133.101   3404 1 1 5727 7474 7570

4  131.131.0.0    /16  100   100     199.45.133.101   3404 1 1 1236

5  134.134.0.0    /16  100   100     199.45.133.101   3404 1 1239 1760 4983

6  135.135.0.0    /16  100   100     199.45.133.101   3404 3561 3561 4293

7  139.139.0.0    /16  100   100     199.45.133.101   3404 1 1239 568 1913 1569

8  140.140.0.0    /16  100   100     199.45.133.101   3404 1 1239 7170 374

9  141.141.0.0    /16  100   100     199.45.133.101   3404 1 1239 3739 3739 3739

10  142.142.0.0    /16  100   100     199.45.133.101   3404 3561 3561 577 549 808

11  147.147.0.0    /16  100   100     199.45.133.101   3404 3561 3561 5400 2856

12  149.149.0.0    /16  100   100     199.45.133.101   3404 1 1 3749

13  150.150.0.0    /16  100   100     199.45.133.101   3404 3561 3561 3786 6068

14  151.151.0.0    /16  100   100     199.45.133.101   3404 1 1239 174

15  152.152.0.0    /16  100   100     199.45.133.101   3404 1 1 286 1891

16  155.155.0.0    /16  100   100     199.45.133.101   3404 1 701 702 8413 1913 1564

17  158.158.0.0    /16  100   100     199.45.133.101   3404 3561 3561

18  161.161.0.0    /16  100   100     199.45.133.101   3404 1 1239 174

19  164.164.0.0    /16  100   100     199.45.133.101   3404 1 701 7633

20  165.165.0.0    /16  100   100     199.45.133.101   3404 1 701 5713

也可以对特定路由调用此 show 命令，在这种情况下，它将显示该路由的所有路径。

BGP 2600>sho bgp ro 129.129.0.0

BGP routing table entry for 129.129.0.0/16

Paths: (in order of preference, best first)

AS path 11129 3404 1239 1673 1133 559

Next hop 198.41.11.1 from peer 198.41.11.17 (RtrID 198.41.11.17)

Origin IGP, localpref 100, weight 100

AS path 12345 11129 3404 1239 1673 1133 559

Next hop 198.41.11.1 from peer 198.41.11.201 (RtrID 198.41.11.201)

Origin IGP, localpref 100, weight 100

如果只输入一个 IP 地址，系统将显示最具体的路由。要使用相同 IP 地址显示不太具体的路由，还请输入掩码。

使用以下 CIDR 表示法显示 BGP 路由：网络/掩码位，而不是路由/掩码。

可以使用 BGP Route Maps（BGP 路由映射）设置优先级和权重。如果未设置，系统将使用默认的本地优先级和权重值。

显示完整 AS 路径，源 AS 是最右边的一个。每个传递路由的 AS 都会将自己的 AS 添加在 AS 路径属性的前面。

下面显示了对 BGP 路由执行 show ip routing 命令的 IP 路由表片段。对于 BGP，指标是路径长度，就像 RIP 一样。大多数 BGP 路由都是 IGP，这意味着它们源自内部网关协议。另一种可能性是 EGP（外部网关协议）或不完整（通常指静态路由）。

bgptest> sho ip ro dynamic bgp

Dynamic Routes:

Destination      Mask     Gateway     Metric   Uses  Type  Src/TTL Interface

3.0.0.0          FF000000 198.41.11.1      5      0   BGP    INC     Ether0

6.0.0.0          FF000000 198.41.11.1      6      0   BGP    INC     Ether0

9.2.0.0          FFFF0000 198.41.11.1      6      0   BGP    IGP     Ether0

9.20.0.0         FFFF8000 198.41.11.1      6      0   BGP    INC     Ether0

12.0.0.0         FF000000 198.41.11.1      5      0   BGP    IGP     Ether0

12.2.97.0        FFFFFF00 198.41.11.1      6      0   BGP    IGP     Ether0

12.2.183.0       FFFFFF00 198.41.11.1      4      0   BGP    IGP     Ether0

12.4.164.0       FFFFFF00 198.41.11.1      5      0   BGP    IGP     Ether0

12.5.164.0       FFFFFF00 198.41.11.1      5      0   BGP    IGP     Ether0

12.5.252.0       FFFFFE00 198.41.11.1      6      0   BGP    IGP     Ether0

12.6.42.0        FFFFFE00 198.41.11.1      6      0   BGP    IGP     Ether0

12.7.214.0       FFFFFE00 198.41.11.1     11      0   BGP    IGP     Ether0

12.8.188.0       FFFFFC00 198.41.11.1      5      0   BGP    IGP     Ether0

12.8.188.0       FFFFFF00 198.41.11.1      5      0   BGP    INC     Ether0

12.8.189.0       FFFFFF00 198.41.11.1      5      0   BGP    INC     Ether0

12.8.191.0       FFFFFF00 198.41.11.1      5      0   BGP    INC     Ether0

12.10.14.0       FFFFFE00 198.41.11.1      5      0   BGP    INC     Ether0

12.10.152.0      FFFFF800 198.41.11.1      5      0   BGP    IGP     Ether0

12.10.231.0      FFFFFF00 198.41.11.1      6      0   BGP    IGP     Ether0

12.11.134.0      FFFFFE00 198.41.11.1      5      0   BGP    IGP     Ether0

Show BGP Peers

show bgp peers 命令用于显示此路由器已配置的 BGP 对等体，其中包含有关对等体 AS 编号、路由器 ID、IP 地址、TCP 套接字编号、启用状态和 BGP 连接状态的信息。

bgptest>sho bgp peers

==========================================================================

BGP PEER STATUS

--------------------------------------------------------------------------

Int  AS      Router           IP               TCP     Enable  BGP

Ext  Number  ID               Address          Socket  Status  State

--------------------------------------------------------------------------

Ext  23456   0.0.0.0          198.14.13.18     0       Off     IDLE

Ext  34567   198.41.11.6      198.14.12.6      82      On      ESTABLISHED

Int  11129   0.0.0.0          198.41.11.17     0       Off     IDLE

Int  11129   0.0.0.0          198.41.11.2      0       On      ACTIVE

==========================================================================

Int/Ext 指示这是内部对等体还是外部对等体。（内部对等体具有与路由器本身相同的 AS 编号。） 对等体的 AS 编号在 BGP 对等体列表中配置。

在对等体与路由器联系之前，路由器ID不是已知的，因此如果连接状态为IDLE、ACTIVE或CONNECT，则此参数可能为0。路由器ID通常是对等体接口之一的IP地址，并且可能与IP地址相同，也可能不相同。

Enable Status（启用状态）指示路由器当前是否接受来自此对等体的连接请求。可以通过在 BGP 对等体列表中将对等体设置为 On 来启用它。此外，对等体可以通过 BGP Peer Enable 和 BGP Peer Disable命令动态启用或禁用。当启用状态为 Off 时，BGP 状态始终为 IDLE。

BGP 连接状态为：IDLE、ACTIVE、CONNECT、OPENSENT、OPENCONFIRM 和 ESTABLISHED。连接状态由对等体之间的主动协商来确立。在 IDLE 状态下，路由器将不会接受来自对等体的连接。连接超时后会短暂进入此状态，以防止对等体过快地来回转换。在 ACTIVE 状态下，路由器在其服务器端口上侦听来自对等体的连接请求。在 CONNECT 状态下，路由器已向对等体发出活动的 TCP 连接请求。在 OPENSENT 和 OPENCONFIRM 状态下，两个对等体交换初步数据包，以便建立其 BGP 会话。如果交换成功，对等体将进入 ESTABLISHED 状态。除非协商的保持时间为 0，否则对等体必须继续定期交换 KEEPALIVE 数据包，以便保持处于已建立状态。

BGP 通过 TCP 与其对等体通信。因此，可以使用“show os tcp”命令获取有关 BGP 会话的详细信息。TCP 状态与 BGP 状态不一样，而是标准的 TCP 状态（LISTEN、SYNSENT、SYNRCVD、ESTABLISHED、FINWAIT1、FINWAIT2、CLOSEWAIT、LASTACK、CLOSING、TIMEWAIT）。BGP 使用端口 179 来侦听 BGP 连接尝试。

bgptest>sho os tcp

==========================================================================

TCP SESSION INFORMATION

--------------------------------------------------------------------------

Local   Remote  Remote

Num  Session Type      State       Socket  Port    Port    IP Address

--------------------------------------------------------------------------

1  SERVER (TELNET)   LISTEN      80      23      0       0.0.0.0

2  SERVER (BGP)      LISTEN      81      179     0       0.0.0.0

3  ACTIVE (BGP)      ESTABLISH   82      20001   179     198.41.9.2

--------------------------------------------------------------------------

13 free TCBs out of 16.

==========================================================================

Show BGP Networks

Show bgp networks 命令用于显示要通告给外部 BGP 对等体的内部网络的列表。

bgptest>sho bgp networks

BGP NETWORKS:  2

Address              Mask

198.41.11.0          255.255.255.0

209.14.128.0         255.255.255.0

Show BGP Stats

Show bgp stats 命令用于显示有关从 BGP 对等体接收和发送到 BGP 对等体的数据包类型的统计信息以及对等体的当前正常运行时间。

BGP Test>sho bgp stats

Received    Sent

Open messages:                         8         58

Keepalive messages:                 4069       4124

Notify messages:                       0          0

BGP External Peer 198.41.11.6 state ESTABLISHED

6 peer sessions, current uptime 2 days 16 hours 40 minutes 19 secs

0 updates received

78791 updates sent, last at 6 secs

BGP Internal Peer 198.41.9.2 state ESTABLISHED

1 peer sessions, current uptime 2 days 20 hours 42 minutes 28 secs

88791 updates received, last at 7 secs

0 updates sent

Show BGP Timers

Show bgp timer 命令用于显示与各个对等体关联的每个计时器的当前时间（以秒为单位）。如果对等体处于“ESTABLISHED”状态，则这将是 KEEPALIVE 计时器和 HOLD 计时器。如果对等体处于 ACTIVE 状态，则这将是 CONNECT 计时器。如果对等体处于 IDLE 状态但已启用，则这将是 AUTO ENABLE 计时器。如果对等体处于 IDLE 状态且已禁用，则在发出 bgp peer enable 命令之前，不会有任何计时器处于活动状态。

BGP Test>sho bgp timers

======================================================================

BGP TIMERS

----------------------------------------------------------------------

Peer Address     Status    State        Timers

----------------------------------------------------------------------

198.41.9.2       Enabled   ESTABLISHED  Send KEEPALIVE pkt:   2   secs

HOLD timer expires:   121 secs

198.14.13.2      Enabled   ACTIVE       Next CONNECT attempt: 16  secs

199.13.12.3      Enabled   IDLE         AUTO ENABLE:          112 secs

198.41.9.3       Disabled  IDLE         No timers active

======================================================================

当对等体处于 ESTABLISHED 状态时，Keepalive 计时器指示路由器再次将一个 KEEPALIVE 数据包发送到对等体之前等待的秒数。Hold 计时器指示对等体的 Hold 计时器在多少秒之后到期。每次路由器从对等体收到 UPDATE 或 KEEPALIVE 数据包时，都会设置 Hold 计时器。如果 Hold 计时器过期，路由器将声明对等体关闭，将对等体转换为 IDLE 状态，并设置 Auto Enable 计时器。

Connect 和 Auto Enable 计时器均会指示直到路由器再次尝试联系对等体之前剩余的秒数。当对等体处于 ACTIVE 状态时，系统将使用 Connect 计时器；在此状态下，路由器将在连接时间到期之前接受来自对等体的传入连接请求。当对等体处于 IDLE 状态时，使用 Auto Enable 计时器；在此状态下，路由器不会接受对等体的连接请求，直到 Auto Enable 时间已到期。当 Auto Enable 时间到期时，对等体将转换回 ACTIVE 状态。

Auto Enable 计时器的用途是防止对等体会话以太快的速度启动和关闭。当对等体会话因某种原因而中断之后，对等体将保持关闭一小段时间，然后才允许建立新的会话。

Show BGP Mem

Show bgp mem 命令用于显示 BGP 的详细动态内存使用信息。

BGP Test>sho bgp mem

ROUTING DATABASE DYNAMIC MEMORY USAGE

------------------------------------------------------------

Memory Block        Allocs      Deallocs        Size (bytes)

------------------------------------------------------------

ip radix nodes                                  1976180

ip routing entries                              4332132

bgp ip routes       78709       27149

bgp routes          78717       27157           2062400

bgp int change      0           0               0

bgp aggregates      0           0               0

bgp agg paths       0           0               0

bgp timers          12          0               384

-------------------------------------------------------

Peer 198.41.9.2

bgp path entries    78728       27168           1443680

bgp transmit queues 0           0               0

bgp PA strings      28151       21181           1784320

bgp PA hdr entries  28151       21181           529720

bgp rejected routes 0           0               0

bgp rej entries     0           0               0

bgp history entries 0           0               0

------------------------------------------------------------

Total Size                                      12128816

------------------------------------------------------------

Show BGP Config

此命令用于显示路由器的 Router ID（路由器 ID）、BGP General（BGP 常规）部分设置的参数、路由重新分发状态和对等体配置参数。请注意，BGP 路由器的Router ID（路由器 ID）与 OSPF 的相同，即路由器的 IP 接口的最大 IP 地址。

bgptest>sho bgp config

BGPEnabled             Yes

Router ID              205.14.128.2

BGP AS Number          100

BGP Local Preference   100

Use IP Route Filters   Yes

Route Relector Server  No

Redistribute RIP routes into BGP is disabled

Redistribute OSPF routes into BGP is disabled

Redistribute BGP routes into OSPF is disabled

Redistribute BGP routes into RIP is disabled

BGP Peer 205.14.128.1

Configuration ID   1

Startup State      Inactive

AS Number          110

Peer Weight        2000

Next Hop Self      No

Cfg Hold Time      180

Retry Time         45

Use Loopback       No

Advertise Default  Yes

Input Route Map    rmapin

Output Route Map   rmapout

BGP Peer 198.41.11.213

Configuration ID   2

Startup State      Active

AS Number          100

Peer Weight        1000

Next Hop Self      No

Cfg Hold Time      180

Retry Time         65

Use Loopback       No

Advertise Default  No

Input Route Map    None

Output Route Map   None

对等体 Startup State（启动状态）指示路由器是否会在通电时尝试与对等体建立会话。如果此选项设置为 Inactive 状态，则可使用 BGP Enable 命令启用对等体。但是，在下一次路由器重新启动时，对等体将再次处于非活动状态。

请注意，第一个对等体定义了 BGP Route Maps（BGP 路由映射），而第二个对等体没有定义。由于 Use IP Route Filters 已设置为 Yes，因此它们将用于第二个对等体，而不是第一个对等体。

Show BGP Aggregates

show bgp aggregates 命令用于显示已被管理员配置为汇聚到外部对等体的路由。只有当 IP 路由表中出现路由实例时，才会发生汇聚。

bgptest>sho bgp agg

BGP AGGREGATES:

195.41.0.0/16

BGP Disable

此命令用于中止与所选对等体或所有对等体的 BGP 会话。

BGP disable all

OR

BGP disable 205.14.128.1

Reset BGP Peer

此命令用于重置与所选 BGP 对等体或所有对等体的会话。

Reset BGP Peer all

OR

Reset BGP Peer 205.14.128.1

BGP 快速入门指南

下面是一个非常简单的配置，用于让 BGP 正常运行。在这里假设您只有一个来自 AS 的出口点，因此会为您的传出数据包使用静态默认路由。

1. 启用 BGP 并在“BGP General”（BGP 常规）部分指定 AS 编号。

[ BGP General ]

BGPEnabled = On

BGPAS = your AS number

2. 指定 BGP 对等体（在本例中是 ISP 的 BGP 路由器）的 IP 地址和 AS 编号。

[ BGP Peer List ]

BGPPeer = On peer IP address peer AS number

3. 指定要在 AS 之外通告的内部网络的网络列表。

[ BGP Networks ]

LocalNet = first IP address mask

LocalNet = second IP address mask

BGP 调试选项

对于提供调试的代码版本，有五个 BGP 调试命令：BGPPKT、BGPDB、BGPCON、BGPKEEP 和 BGPTXQ。BGPPKT 用于提供有关 BGP 更新数据包交换的信息。BGPFDB 用于提供数据库更新信息。BGPCON 用于提供有关与对等体的 BGP 会话状态的信息。BGPKEEP 用于提供有关何时发送或接收 KEEPALIVE 数据包的信息。BGPTXQ 用于提供有关在 ESTABLISHED 状态下将更新数据包发送到对等体的信息。

sys debug flags BGPPKT

sys debug flags BGPCON

sys debug flags BGPFDB

sys debug flags BGPKEEP

sys debug flags BGPTXQ

BGP RFC 参考

rfc2283 -- Multiprotocol Extensions for BGP-4.

T. Bates, R. Chandra, D. Katz, Y. Rekhter.

February 1998. (Status: PROPOSED STANDARD)

rfc2042 -- Registering New BGP Attribute Types.

B. Manning.

January 1997. (Status: INFORMATIONAL)

rfc1998 -- An Application of the BGP Community Attribute in

Multi-home Routing.

E. Chen & T. Bates.

August 1996. (Status: INFORMATIONAL)

rfc1997 -- BGP Communities Attribute.

R. Chandra, P. Traina & T. Li.

August 1996. (Status: PROPOSED STANDARD)

rfc1965 -- Autonomous System Confederations for BGP.

P. Traina.

June 1996. (Status: EXPERIMENTAL)

rfc1863 -- A BGP/IDRP Route Server alternative to a full mesh routing.

D. Haskin.

October 1995.   (Status: EXPERIMENTAL)

rfc1774 -- BGP-4 Protocol Analysis.

P. Traina, Editor.

March 1995.   (Status: INFORMATIONAL)

rfc1773 -- Experience with the BGP-4 protocol.

P. Traina.

March 1995.   (Status: INFORMATIONAL)

rfc1771 -- A Border Gateway Protocol 4 (BGP-4).

Y. Rekhter & T. Li.

March 1995. (Status: DRAFT STANDARD)

rfc1745 -- BGP4/IDRP for IP---OSPF Interaction.

K. Varadhan, S. Hares, Y. Rekhter.

December 1994. (Status: PROPOSED STANDARD)

相关信息

- 技术支持和文档 - Cisco Systems

- Compatible Systems Corporationc 传统技术支持文档