边界网关协议 (BGP) 是一种外部网关协议,允许自治系统互相交换路由信息。自治系统是一组在单一技术管理下的路由器。
自治系统 (AS) 编号由美洲互联网编号注册机构分配。有关详细信息,请参阅其网站。该网站的“Documentation”(文件)部分提供所有已分配 AS 编号的完整列表。
如果安装是单宿主的,可以申请一个 AS 号以运行 BGP,不过不建议这么做。但是,对于多宿主站点,由于使用多个 ISP,因此必须申请一个单独的 AS 编号。这是因为单宿主安装可视为 ISP 内部的安装,而多宿主站点则不能。
交换 BGP 信息的路由器称为 BGP 对等体。一台路由器可能在其他 AS 中有外部对等体,并且在其自己的 AS 内有内部对等体。如果对等体的 AS 编号与路由器自己的 AS 编号不同,则会被视为外部对等体。
路由器使用 TCP 协议建立 BGP 会话。当启动新 BGP 会话时,BGP 对等体将交换其完整的路由表,然后仅在路由表发生变化时发送增量更新。
本配置指南介绍在兼容的系统路由器上运行 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 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 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 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 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 网络)部分提供的掩码匹配,但它们不会自动汇聚。
另一种指定要导入到 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
在 IP Static(静态 IP)部分配置路由时,可以使用重新分布标志将静态路由重新分发到 BGP:
[ IP Static ] 198.41.16.0 255.255.255.0 198.41.9.65 1 Redist=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 路由映射规则相关的参数和修饰符。
action route [direction] [out | in modifiers] permit | deny IP Address out | in
action、route 和 direction 是必需的参数。In 和 out 修饰符是可选的。
此参数用于指定当路由满足规则条件时要执行的操作。
IP 地址的指定方式与所描述的 IP 路由过滤器方式相同;即,采用普通的点分十进制表示法、作为分解地址、十六进制数字或使用可选的 /bits 字段。有关详细信息,请参阅 IP 路由过滤器手册页面。
必须提供 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 个社区编号。
在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 使用权重、优先级和 MED 以及其他属性,所以路由映射可以帮助管理员影响路由选择过程。BGP 使用以下条件按照提出的顺序为目的地选择最佳路由:
最优选的路径是权重最大的路径。
如果权重相同,则选择具有最高本地优先级的路径。
如果优先级相同,则选择具有最短 AS 路径长度的路径。
如果所有路径都具有相同的 AS 路径长度,请选择具有最低 MED 的路径。
如果路径具有相同的 MED,请从 BGP 对等体中选择具有最低路由器 ID 的路径。
用户可以选择将 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"
有几个 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 }
此命令显示 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 命令(不带参数)显示 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 命令用于显示此路由器已配置的 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 命令用于显示要通告给外部 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 命令用于显示有关从 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 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 命令用于显示 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 ------------------------------------------------------------
此命令用于显示路由器的 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 命令用于显示已被管理员配置为汇聚到外部对等体的路由。只有当 IP 路由表中出现路由实例时,才会发生汇聚。
bgptest>sho bgp agg BGP AGGREGATES: 195.41.0.0/16
此命令用于中止与所选对等体或所有对等体的 BGP 会话。
BGP disable all OR BGP disable 205.14.128.1
此命令用于重置与所选 BGP 对等体或所有对等体的会话。
Reset BGP Peer all OR Reset BGP Peer 205.14.128.1
下面是一个非常简单的配置,用于让 BGP 正常运行。在这里假设您只有一个来自 AS 的出口点,因此会为您的传出数据包使用静态默认路由。
启用 BGP 并在“BGP General”(BGP 常规)部分指定 AS 编号。
[ BGP General ] BGPEnabled = On BGPAS = your AS number
指定 BGP 对等体(在本例中是 ISP 的 BGP 路由器)的 IP 地址和 AS 编号。
[ BGP Peer List ] BGPPeer = On peer IP address peer AS number
指定要在 AS 之外通告的内部网络的网络列表。
[ BGP Networks ] LocalNet = first IP address mask LocalNet = second IP address mask
对于提供调试的代码版本,有五个 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
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)
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
22-Jan-2007 |
初始版本 |