BGP路由器协议排错教程:BGP 基本配置
在 BGP 配置过程中,请从模块化设计的角度进行信息规划布局。BGP 路由器上应依次配置以下组成部分:
- BGP 会话参数设置:提供了与远方 BGP 邻居建立通信所需的设置选项。
- 地址家族初始化配置:这是 BGP 路由器配置模式下的一项基础操作。
- 网络通告与事件汇总都发生于地址家族配置过程中。
- 激活地址家族:为实现一个对话 session 必须先激活指定邻居对应的一个地址家族。
- 将路由器 IP 地址加入邻居列表后,
BGP 功能将尝试与相关对等体路由器建立 BGP 连接,
或响应对等体路由器发起的 BGP 请求。
本章内容主要聚焦于 IPv4 网络环境下的 BGP 配置操作,
其他地址家族相关内容暂超出本书讨论范围。
以下是 IOS 版本的具体实施指导:
1.5.1 IOS
按照以下步骤在 IOS 型路由器上完成 BGP 配置:
步骤 1 启用 BGP 过程:进入全局配置模式并执行命令 router bgp as-number 来启用 BGP 过程。
步骤 2 确定 BGP 邻居信息:进入路由器特定配置模式并输入命令 neighbor ip-address remote-as as-number 来获取并确认邻接关系信息。
- 将路由器 IP 地址加入邻居列表后,
注释
IOS 会默认激活 IPv4 地址家族。这种默认行为简化了 IPv4 环境中的配置,因为步
骤 3 和 4 变成了可选步骤;但同时这种默认行为也会在工程师配置其他地址家族时认为该地址家族已激活。如果配置了 BGP 路由器配置命令 no bgp default ipv4-unicast,就会禁用 IPv4 AFI
的自动激活功能,因此仍需要步骤 3 和 4 的配置。
步骤3:通过BGP路由器配置指令设置AFI和SAFI地址家族类型。
步骤4:通过指定邻居IP地址启用该地址家族。
注释
在 IOS 设备中,默认情况下 IPv4 和 IPv6 地址家族的标记符被配置为单播类型,并且这种设置属于可选项。然而,在更高版本的 IOS XR 设备上,默认设置被强制要求改为全播类型。
例 1-2 分别通过 R1 和 R2 展示了 IOS 的默认配置设置及其可选设置的变化情况(使用AFCI修饰符)。其中,在R1中,默认状态是启用了IPv4地址家族;而R2中则避免了默认启用一个IPv4地址家族,并由网络管理员手动启用了指定邻居(IP地址为10.1.12.1)的IPv4地址家族

1.5.2 IOS XR
工程师需要按照以下步骤在 IOS XR 路由器上配置 BGP。
步骤 1 启动 BGP 过程:在全局配置模式下执行命令 router bgp as-number 以启动 BGP 进程并创建 BGP 运输进程(TP)。
步骤 2 配置地址家族:在 BGP 配置模式下输入命令 address-family afi safi 并指定与特定 BGP 邻居相关联的 IP 地址族别(AF)。
步骤 3 确定 BGP 邻居 IP 地址:使用 neighbor ip-address 命令指定与当前 BGP 路由器通信的邻接网络接口及其 IP 地址信息(IP)。
步骤 4 设置 AS 号:输入 remote-as as-number 命令为当前 EBGP 邻居分配唯一的 AS 号码(AS),以便识别该邻居身份信息(ID)。
步骤 5 激活地址家族:继续在 BGP 邻居配置模式下运行命令 address-family afi safi 来启用指定地址家族别(AF)中的路由数据传输功能(RT)。
步骤 6 创建路由策略:为 EBGP 对等体绑定路由策略,在 IOS XR 路由器上执行此操作以确保安全机制的有效实施以及错误路由信息的正确处理(CR)。即使未在对应地址族中预定义路由策略,在接收到来自 EBGPRP 的 NLRI 消息时也会被丢弃并阻止向其发送错误报告信息(FR)。
通过在 BGP 邻居地址族配置模式中使用 route-policy 命令指定入向或出向策略名称 {in|out} 来分别设置网络流量的方向性参数。
当动态路由器 ID(RID)分配功能未能检测到任何处于 up 状态的环回接口时,
导致 其值被设定为 0,
从而使得 IOS XR 路由器无法建立相应的 BGP 连接。
此时工程师应执行以下操作:
通过 BGP 路由器配置命令 bgp router-id 来重新指定其值。
例 1-3 在示例中描述了 R1 运行 IOS XR 操作系统并呈现了其配置信息。技术人员手动配置了 R1 的 RID 设置,由于 R1 设备上并未预先设置任何环回接口。

工程师应遵循这些步骤,在NX-OS设备上设置B GP网络路径规划(BGX)。具体操作包括:
第一步:建立一个默认范围内的广域网(AFN)或安全域内网(SAF)中的路径规划(BGX)。
第二步:进入路由器属性设置界面,在"全局"选项卡下选择"启用静态路由"选项。
第三步:进入路由器属性设置界面,在"动态"选项卡下选择"启用动态路由"选项。
第四步:进入路由器属性设置界面,在"静态路由"选项卡下选择所需的静态路由掩码。
完成以上设置后即可完成网络路径规划(BGX)。

第1.5.4节 验证B GP 会话
查看命令输出时请注意以下几点:首先是B GP RID和B GP路由表版本号的信息;其次是从U p/Down状态栏可获取当前B GP会话建立的时间


表 1-3 中列出了 BGP 表每一列的显示信息。

注释
某些早期版本中的BGP命令包括 show ip bgp summary 等指令。
这些早期版本中的BGP命令输出的信息结构不包含当前BGP支持的多协议功能。
通过引入AFI和SAFI语法指令,
不论BGP交换的数据类型,
所有相关指令均可进行统一处理。
该命令会在 show bgp afi safi neighbors ip-address 中显示 BGP 邻居会话状态、计时器以及其他关键的数据信息,请参见示例 1-6


1.5.5 前缀通告
BGP 使用三张表来维护每条路由的网络前缀和路径属性(PA),分别如下。
? 入向邻接 RIB(Adj-RIB-in):这张表中包含了 NLRI 的原始格式,等待入向路由策略
进行处理。在所有路由策略都处理完成后,为了节省内存空间,这个表会被清除。
? 本地 RIB(Loc-RIB):这张表中包含了所有本地生成的 NLRI,或者从其他 BGP 对等
体收到的 NLRI。在针对这些 NLRI 执行了有效性和下一跳可达性检查后,BGP 最优路
径算法会为指定前缀选择出最优 NLRI。Loc-RIB 表是用来向 IP 路由表提供路由的表。
? 出向邻接 RIB(Adj-RIB-out):这张表中包含了出向路由策略处理后的 NLRI。
BGP 中的 network 命令并不会为指定接口启用 BGP,而是把具体的网络前缀放入到 BGP
表中,也就是放入 Loc-RIB 表中。
在配置了 BGP network 命令后,BGP 进程会在全局 RIB 中搜索与命令中指定的网络前缀
精确匹配的条目。命令中指定的网络前缀可以是直连网络、非直连网络,或者从路由协议学到
的任何路由。当在全局 RIB 中找到了匹配的网络前缀后,这个前缀就会被放入 BGP Loc-RIB 表
中。在将 BGP 前缀放入 Loc-RIB 后,路由器会按照 RIB 前缀类型来设置下列 BGP PA。
? 直连网络:下一跳 BGP 属性设置为 0.0.0.0,源属性设置为 i(IGP),BGP 权重设置为
32 768。
? 静态路由或路由协议:下一跳 BGP 属性设置为 RIB 中的下一跳 IP 地址,源属性设置
为 i(IGP),BGP 权重设置为 32 768;MED 设置为 IGP 度量值。
工程师需要在 BGP 路由器配置模式中适当的地址家族中应用网络配置。在 IOS 和 NX-OS
设备中,使用命令 network network mask subnet-mask [route-map route-map-name],通告 IPv4
网络。
在 NX-OS 设备上将路由添加到 BGP 表中时,工程师还可以在命令中使用前缀长度,命令
语法为 network network/prefix-length [route-map route-map-name]。工程师通过可选参数
route-map 或 route-policy 可以配置具体的 BGP 路径属性(afi),在处理前缀时执行过滤操作。
在 IOS 系列设备(包括 IOS、IOS XR 和 NX-OS)上,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况下,默认情况工程师可以通过运行命令 show bgp afi safi 来查看本地 BGP 表(Loc-RIB)中的配置信息。
BGP 的 Loc-RIB 表中记录了每个网络前缀对应的至少一条路由信息;同一个网络前缀可能包含多条相关联的路由。
注释:默认状态下,在无论 BGP-Loc RIB 中存在多少条路由的情况下(即 NLRI 数量),单个 BGP 会仅向其对等体发送一条最佳路径信息;该最佳路径依据每个地址家族独立计算得出;一个地址家族中选择的最佳路径不会影响到另一个地址家族的最佳路径计算结果。
例 1-7 列出了 IOS 系列设备上的 BGP 配置示例;该表包含了来自外部网络接收的路由信息以及本地生成的路由数据。


NX-OS 设备会将外部获取的 BGP 路由标注为 e,并会将本地发布的 BGP 路由标注为 l。
与此不同的是,在 IOS 和 IOS XR 系列设备上不会执行此操作。
表 1-4 中描述了 BGP 表中展示的输出字段。

1.5.6 BGP 最优路径计算
在 BGP 中,路由通告是由网络层可达性信息(NLRI)和路径属性(PA)组成的。NLRI
是由网络前缀和前缀长度组成的,路径属性中包含了一些 BGP 属性,比如 AS-Path、Origin 等。
去往相同网络的 BGP 路由可能会包含多条路径。路由器会根据每条路径的属性来选择最优路
径。BGP 路由器只会向邻居路由器通告最优路径。
BGP Loc-RIB 表会维护所有路由及其路径属性,用来计算最优路径。接着最优路径会被放
入路由器的 RIB 中。当最优路径变得不再可用时,路由器可以使用现有路径快速计算出新的最
优路径。BGP 路由器会在发生以下 4 种事件后重新计算最优路径:
? BGP 下一跳可达性发生了变化;
? 与 EBGP 对等体相连的接口发生了故障;
? 重分布变更;
工程师通过配置BGP路由器的各种路径属性来影响流量模式
