• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

07-三层技术-IP路由配置指导

目录

06-BGP配置

本章节下载 06-BGP配置  (1.69 MB)

06-BGP配置

  录

1 BGP

1.1 BGP简介

1.1.1 BGP的特点

1.1.2 BGP发言者和BGP对等体

1.1.3 BGP的消息类型

1.1.4 BGP的路由属性

1.1.5 BGP的选路规则

1.1.6 BGP发布路由的策略

1.1.7 BGP负载分担

1.1.8 大规模BGP网络所遇问题的解决方法

1.1.9 MP-BGP

1.1.10 BGP多进程

1.1.11 BGP相关视图介绍

1.1.12 协议规范

1.2 BGP配置任务简介

1.3 BGP配置限制和指导

1.4 配置BGP基本功能

1.4.1 启动BGP

1.4.2 手工创建BGP对等体

1.4.3 动态创建BGP对等体

1.4.4 配置IBGP对等体组

1.4.5 配置EBGP对等体组

1.4.6 配置建立TCP连接使用的源地址

1.5 控制BGP路由信息的生成

1.5.1 配置BGP发布本地网段路由

1.5.2 配置BGP引入IGP路由协议的路由

1.6 控制BGP路由信息的发布与接收

1.6.1 配置BGP路由聚合

1.6.2 配置发布IP路由表中的最优路由

1.6.3 配置向对等体/对等体组发送缺省路由

1.6.4 限制从BGP对等体/对等体组接收的路由数量

1.6.5 配置BGP路由信息的发布策略

1.6.6 配置BGP路由信息的接收策略

1.6.7 配置BGP延迟发布

1.6.8 配置BGP路由衰减

1.7 控制BGP路径的选择

1.7.1 为接收路由分配首选值

1.7.2 配置BGP的路由优先级

1.7.3 配置本地优先级的缺省值

1.7.4 配置MED属性

1.7.5 配置NEXT_HOP属性

1.7.6 配置AS_PATH属性

1.7.7 配置BGP在选择最优路由时忽略IGP Metric的比较

1.7.8 配置SoO属性

1.8 调整和优化BGP网络

1.8.1 配置BGP会话的存活时间间隔与保持时间

1.8.2 配置发布同一路由的时间间隔

1.8.3 配置允许同非直连邻居建立EBGP会话

1.8.4 使能直连EBGP会话快速复位功能

1.8.5 使能4字节AS号抑制功能

1.8.6 配置BGP的MD5认证

1.8.7 配置BGP的keychain认证

1.8.8 配置BGP负载分担

1.8.9 配置BGP Add-Path

1.8.10 禁止与对等体/对等体组建立会话

1.8.11 配置BGP软复位

1.8.12 配置系统进入二级内存门限告警状态后不断开EBGP对等体

1.8.13 配置删除本地标签的延迟时间

1.8.14 开启BGP次优路由下刷RIB功能

1.8.15 配置BGP发送协议报文的DSCP优先级

1.8.16 配置按照每条路由分配一个标签的方式申请标签

1.8.17 配置带隧道信息的标签路由才能参与路由优选

1.9 配置大规模BGP网络

1.9.1 配置BGP团体

1.9.2 配置BGP路由反射

1.9.3 配置BGP联盟

1.10 配置BGP GR

1.10.1 功能简介

1.10.2 配置限制和指导

1.10.3 配置步骤

1.11 配置BGP NSR

1.11.1 功能简介

1.11.2 配置限制和指导

1.11.3 配置步骤

1.12 配置BGP RPKI

1.12.1 功能简介

1.12.2 配置RPKI连接参数

1.12.3 开启BGP RPKI验证功能

1.12.4 配置BGP RPKI验证结果参与路由优选

1.12.5 配置向对等体/对等体组发送BGP RPKI验证结果

1.13 开启告警功能

1.14 使能BGP日志功能

1.14.1 功能简介

1.14.2 使能BGP日志功能(IPv4单播/IPv4组播)

1.14.3 使能BGP日志功能(IPv6单播/IPv6组播)

1.15 使能BGP的路由抖动日志记录功能

1.15.1 功能简介

1.15.2 使能BGP的路由抖动日志记录功能(IPv4单播/IPv4组播)

1.15.3 使能BGP的路由抖动日志记录功能(IPv6单播/IPv6组播)

1.16 配置BGP与BFD联

1.16.1 功能简介

1.16.2 配置限制和指导

1.16.3 配置BGP与BFD联动(IPv4单播/IPv4组播)

1.16.4 配置BGP与BFD联动(IPv6单播/IPv6组播)

1.17 配置BGP快速重路由

1.17.1 功能简介

1.17.2 配置BGP快速重路由(IPv4单播)

1.17.3 配置BGP快速重路由(IPv6单播)

1.18 配置6PE

1.18.1 功能简介

1.18.2 配置6PE基本功能

1.18.3 配置6PE可选功能

1.19 配置BGP LS

1.19.1 功能简介

1.19.2 配置BGP LS基本功能

1.19.3 配置BGP LS路由反射功能

1.19.4 配置BGP LS信息的AS号和Router ID

1.20 配置BGP BMP

1.21 BGP显示和维护

1.21.1 显示BGP

1.21.2 复位BGP会话

1.21.3 清除BGP信息

1.22 IPv4 BGP典型配置举例

1.22.1 BGP基本配置

1.22.2 BGP与IGP交互配置

1.22.3 BGP路由聚合配置

1.22.4 BGP负载分担配置

1.22.5 BGP团体配置

1.22.6 BGP路由反射器配置

1.22.7 BGP联盟配置

1.22.8 BGP路径选择配置

1.22.9 BGP Add-Path配置

1.22.10 BGP GR配置

1.22.11 BGP与BFD联动配置

1.22.12 BGP快速重路由配置

1.22.13 MBGP配置

1.22.14 BGP动态对等体配置

1.22.15 BGP LS配置举例

1.22.16 BGP RPKI配置

1.23 IPv6 BGP典型配置举例

1.23.1 IPv6 BGP基本配置

1.23.2 IPv6 BGP路由反射器配置

1.23.3 6PE配置

1.23.4 IPv6 BGP与BFD联动配置

1.23.5 配置BGP快速重路由

1.23.6 IPv6 MBGP配置

1.23.7 BGP RPKI配置

1.24 BGP常见错误配置举例

1.24.1 故障现象

1.24.2 故障分析

1.24.3 故障处理

 


1 BGP

1.1  BGP简介

BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS(Autonomous System,自治系统)之间,又可以用于同一AS内部的动态路由协议。当BGP运行于同一AS内部时,被称为IBGP(Internal BGP);当BGP运行于不同AS之间时,称为EBGP(External BGP)。AS是拥有同一选路策略,属于同一技术管理部门的一组路由器。当前使用的BGP版本是BGP-4。

1.1.1  BGP的特点

BGP具有如下特点:

·     BGP是一种EGP(Exterior Gateway Protocol,外部网关协议),与OSPF、RIP等IGP(Interior Gateway Protocol,内部网关协议)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。

·     BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性。

·     BGP是一种路径矢量(Path-Vector)路由协议,它采用到达目的地址所经过的AS列表来衡量到达目的地址的距离。

·     BGP支持CIDR(Classless Inter-Domain Routing,无类域间路由)。

·     路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。

·     BGP路由通过携带AS路径信息彻底解决路由环路问题。

·     BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。

·     BGP易于扩展,能够适应网络新的发展。

1.1.2  BGP发言者和BGP对等体

运行BGP协议的路由器称为BGP发言者。BGP发言者接收或产生路由信息,并将路由信息发布给其它BGP发言者。

相互之间存在TCP连接、相互交换路由信息的BGP发言者互为BGP对等体。根据对等体所在的AS,对等体分为以下几种:

·     IBGP对等体:对等体与本地路由器位于同一AS。

·     EBGP对等体:对等体与本地路由器位于不同AS。

1.1.3  BGP的消息类型

BGP定义了以下几种消息类型:

·     Open:TCP连接建立后发送的第一个消息,用于在BGP对等体之间建立会话。

·     Update:用于在对等体之间交换路由信息。一条Update消息可以发布具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由。

·     Keepalive:BGP周期性地向对等体发送Keepalive消息,以保持会话的有效性。

·     Route-refresh:用来要求对等体重新发送指定地址族的路由信息。

·     Notification:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP会话会立即中断。

1.1.4  BGP的路由属性

BGP路由属性是跟随路由一起发布出去的一组参数。它对特定的路由进行了进一步的描述,使得路由接收者能够根据路由属性值对路由进行过滤和选择。下面将介绍几种常见的路由属性。

1. 源(ORIGIN)属性

ORIGIN属性定义了路由信息的来源,标记一条BGP路由是怎么生成的。它有以下三种类型:

·     IGP:优先级最高,表示路由产生于本AS内。

·     EGP:优先级次之,表示路由通过EGP学到。

·     Incomplete:优先级最低,表示路由的来源无法确定。例如,从其它路由协议引入的路由信息。

2. AS路径(AS_PATH)属性

AS_PATH属性记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP路由器将一条路由通告到其他AS时,会把本地AS号添加在AS_PATH列表中。收到此路由的BGP路由器根据AS_PATH属性就可以知道到达目的地址所要经过的AS。

AS_PATH属性有以下两种类型:

·     AS_SEQUENCE:AS号按照一定的顺序排列。如图1-1所示,离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。

·     AS_SET:AS号只是经过的AS的简单罗列,没有顺序要求。

图1-1 AS_PATH属性

 

AS_PATH属性具有如下用途:

·     避免路由环路的形成:缺省情况下,如果BGP路由器接收到的路由的AS_PATH属性中已经包含了本地的AS号,则BGP路由器认为出现路由环路,不会接受该路由。

·     影响路由的选择:在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在图1-1中,AS 50中的BGP路由器会选择经过AS 40的路径作为到目的地址8.0.0.0的最优路由。用户可以使用路由策略来人为地增加AS路径的长度,以便更为灵活地控制BGP路径的选择。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。

·     对路由进行过滤:通过配置AS路径过滤列表,可以针对AS_PATH属性中所包含的AS号来对路由进行过滤。AS路径过滤列表的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。

3. 下一跳(NEXT_HOP)属性

BGP的NEXT_HOP属性取值不一定是邻居路由器的IP地址。如图1-2所示,NEXT_HOP属性取值情况分为几种:

·     BGP发言者把自己产生的路由发给所有邻居时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址;

·     BGP发言者把接收到的路由发送给EBGP对等体时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址;

·     BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP属性。如果配置了负载分担,等价路由被发给IBGP邻居时则会修改NEXT_HOP属性。关于“负载分担”的概念请参见“1.1.7  BGP负载分担”。

图1-2 NEXT_HOP属性

 

4. MED(Multi-Exit Discriminator,多出口区分)属性

MED属性仅在相邻两个AS之间交换,收到此属性的AS不会再将其通告给其它AS。

MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个BGP路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。如图1-3所示,从AS 10到AS 20的流量将选择Router B作为入口。

图1-3 MED属性

 

通常情况下,BGP只比较来自同一个AS的路由的MED属性值。在某些特殊的应用中,用户也可以通过配置compare-different-as-med命令,强制BGP比较来自不同AS的路由的MED属性值。

5. 本地优先(LOCAL_PREF)属性

LOCAL_PREF属性仅在IBGP对等体之间交换,不通告给其他AS。它表明BGP路由器的优先级。

LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。如图1-4所示,从AS 20到AS 10的流量将选择Router C作为出口。

图1-4 LOCAL_PREF属性

 

6. 团体(COMMUNITY)属性

BGP将具有相同特征的路由归为一组,称为一个团体,通过在路由中携带团体属性标识路由所属的团体。团体没有物理上的边界,不同AS的路由可以属于同一个团体。

根据需要,一条路由可以携带一个或多个团体属性值(每个团体属性值用一个四字节的整数表示)。接收到该路由的路由器可以通过比较团体属性值对路由作出适当的处理(比如决定是否发布该路由、在什么范围发布等),而不需要匹配复杂的过滤规则(如ACL),从而简化路由策略的应用和降低维护管理的难度。

公认的团体属性有:

·     INTERNET:缺省情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。

·     NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS(关于联盟的定义请参见“1.1.8  6. 联盟”)。

·     NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。

·     NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。

除了公认的团体属性外,用户还可以使用团体属性列表自定义团体属性,以便更为灵活地控制路由策略。

7. 扩展团体属性

随着团体属性的应用日益广泛,原有四字节的团体属性无法满足用户的需求。因此,BGP定义了新的路由属性——扩展团体属性。扩展团体属性与团体属性有如下不同:

·     扩展团体属性为八字节,提供了更多的属性值。

·     扩展团体属性可以划分类型。在不同的组网应用中,可以使用不同类型的扩展团体属性对路由进行过滤和控制。与不区分类型、统一使用同一个属性值空间的团体属性相比,扩展团体属性的配置和管理更为简单。

目前,设备支持的扩展团体属性有VPN Target属性和SoO(Site of Origin,源站点)属性。VPN Target属性的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

SoO扩展团体属性用来标识路由的原始站点。路由器不会将带有SoO属性的路由发布给该SoO标识的站点,确保来自某个站点的路由不会再被发布到该站点,从而避免路由环路。在AS路径信息丢失时,可以通过SoO属性来避免发生环路。

SoO属性有三种格式:

·     16位自治系统号:32位用户自定义数,例如:101:3。

·     32位IP地址:16位用户自定义数,例如:192.168.122.15:1。

·     32位自治系统号:16位用户自定义数,其中的自治系统号最小值为65536。例如:65536:1。

1.1.5  BGP的选路规则

目前,BGP选择路由的过程为:

(1)     丢弃下一跳(NEXT_HOP)不可达的路由;

(2)     优选首选值(Preferred-value)最大的路由;

(3)     优选本地优先级(LOCAL_PREF)最高的路由;

(4)     依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;

(5)     优选AS路径(AS_PATH)最短的路由;

(6)     依次选择ORIGIN类型为IGP、EGP、Incomplete的路由;

(7)     优选MED值最低的路由;

(8)     依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由;

(9)     优选IGP Metric值最小的路由;

(10)     优选迭代深度值小的路由;

(11)     如果路由都来自EBGP邻居,并且Router ID不相同,优选曾经的最优路由;

(12)     优选Router ID最小的路由器发布的路由。如果路由包含RR属性,那么在路由选择过程中,就用ORIGINATOR_ID来替代Router ID;

(13)     优选CLUSTER_LIST长度最短的路由;

(14)     优选IP地址最小的对等体发布的路由。

说明

·     CLUSTER_ID为路由反射器的集群ID,CLUSTER_LIST由CLUSTER_ID序列组成,路由反射器将自己的CLUSTER_ID加入CLUSTER_LIST中。若路由反射器收到路由中的CLUSTER_LIST包含自己的CLUSTER_ID,则丢弃该路由,从而避免集群内发生环路。

·     如果配置了负载分担,并且有多条到达同一目的地的路由,则根据配置的路由条数选择多条路由进行负载分担。

 

1.1.6  BGP发布路由的策略

BGP发布路由时采用如下策略:

·     存在多条有效路由时,BGP发言者只将最优路由发布给对等体。如果配置了advertise-rib-active命令,则BGP发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由。

·     BGP发言者只把自己使用的路由发布给对等体。

·     BGP发言者会将从EBGP获得的路由发布给它的所有BGP对等体(包括EBGP对等体和IBGP对等体)。

·     BGP发言者会将从IBGP获得的路由发布给它的EBGP对等体,但不会发布给它的IBGP对等体。

·     会话一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体。之后,BGP发言者只在路由变化时,向对等体发布更新的路由。

1.1.7  BGP负载分担

BGP可以通过如下两种方式实现负载分担:

·     基于迭代路由实现负载分担

·     通过改变BGP选路规则实现负载分担

1. 基于迭代路由实现BGP负载分担

由于BGP协议本身的特殊性,它产生的路由的下一跳地址可能不是当前路由器直接相连的邻居。常见的一个原因是:IBGP之间发布路由信息时不改变下一跳。这种情况下,为了能够将报文正确转发出去,路由器必须先找到一个直接可达的地址(查找IGP建立的路由表项),通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。

目前系统支持基于迭代的BGP负载分担,即如果依赖路由本身是负载分担的(假设有三个下一跳地址),则BGP也会生成与依赖路由数量相同的下一跳地址来指导报文转发。需要说明的是,基于迭代的BGP负载分担并不需要命令配置,这一特性在系统上始终启用。

2. 通过改变BGP选路规则实现负载分担

在实现方法上,BGP的负载分担与IGP的负载分担有所不同:

·     IGP(如RIP、OSPF)是通过协议定义的路由算法,对到达同一目的地址的不同路由,根据计算结果,将度量值(metric)相等的路由进行负载分担,选择的标准很明确(按metric)。

·     BGP本身并没有路由计算的算法,它只是一个选路的路由协议,因此,不能根据一个明确的度量值决定是否对路由进行负载分担,但BGP有丰富的选路规则,可以在对路由进行一定的选择后,有条件地进行负载分担,也就是将负载分担加入到BGP的选路规则中去。

采用本方式进行负载分担时,BGP不再按照“1.1.4  BGP的选路规则”中的规则选择路由,当路由同时满足如下条件时,即在这些路由间进行负载分担:

·     ORIGIN属性、LOCAL_PREF属性和MED属性完全相同。如果未配置balance as-path-neglect命令,则要求AS_PATH属性也必须相同;如果配置了该命令,则AS_PATH属性可以不同。

·     同为标签路由(具有对应MPLS标签值的路由)或同为非标签路由。

图1-5 BGP负载分担示意图

 

图1-5中,Router A和Router B是Router C的IBGP对等体。当Router D和Router E同时向Router C通告到达同一目的地的路由时,如果用户在Router C上配置了进行负载分担的BGP路由条数为2,则当这两条路由满足负载分担条件时,Router C就把这两条路由同时加入到转发表中,实现BGP路由的负载分担。Router C只向Router A和Router B转发一次该路由,该路由的属性按照如下方法确定:

·     如果未配置balance as-path-neglect命令,形成负载分担的路由的AS_PATH属性相同,则发布路由的AS_PATH属性就为该值;如果配置了balance as-path-neglect命令,形成负载分担的路由的AS_PATH属性不同,则发布路由的AS_PATH属性为最佳路由的AS_PATH属性。

·     NEXT_HOP属性改变为Router C的地址,而不是原来的EBGP对等体地址。

·     其它的BGP路由属性为最佳路由的属性。

说明

BGP负载分担特性适用于EBGP、IBGP以及联盟之间。

 

1.1.8  大规模BGP网络所遇问题的解决方法

在大规模BGP网络中,对等体的数目众多,路由表庞大,配置和维护极为不便。通过如下方法,可以降低管理难度,提高路由发布效率。

1. 路由聚合

在大规模的网络中,BGP路由表十分庞大,使用路由聚合(Routes Aggregation)可以大大减小BGP路由表的规模。

路由聚合实际上是将多条路由合并的过程。这样BGP在向对等体通告路由时,可以只通告聚合后的路由,而不是将所有的具体路由都通告出去。

目前系统支持自动聚合和手动聚合方式。使用后者还可以控制聚合路由的属性,以及决定是否发布具体路由。

2. 路由衰减

路由发生变化时,路由协议会向邻居发布路由更新,收到路由更新的路由器需要重新计算路由并修改路由表。如果发生路由振荡,即路由不稳定,路由表中的某条路由反复消失和重现,则会消耗大量的带宽资源和CPU资源,严重时会影响到网络的正常工作。

在多数情况下,BGP协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由振荡带来的不利影响,BGP使用衰减来抑制不稳定的路由。

BGP衰减使用惩罚值来衡量一条路由的稳定性,惩罚值越高说明路由越不稳定。如图1-6所示,路由每次从可达状态变为不可达状态,或者可达路由的属性每次发生变化时,BGP给此路由增加一定的惩罚值(系统固定为1000,不可修改)。当惩罚值超过抑制阈值时,此路由被抑制,不参与路由选择。惩罚值达到设置的上限后,不再继续增加。

发生振荡的路由如果没有再次振荡,则路由的惩罚值会逐渐减少。每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值低于再使用阈值时,此路由变为可用路由,参与路由选择。

图1-6 BGP路由衰减示意图

 

3. 对等体组

在大规模BGP网络中,对等体的数量很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令。此时,将这些对等体加入一个对等体组,可以简化配置。

对等体组是具有某些相同属性的对等体的集合。当一个对等体加入对等体组时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。

4. 团体

在大规模的网络中,如果通过地址前缀列表、ACL、AS_PATH等实现对路由的控制,不仅配置复杂,而且不方便维护。利用团体属性和扩展团体属性,可以提高路由策略配置的灵活度,简化路由策略的管理,从而降低维护管理的难度。团体属性和扩展团体属性的介绍请参见“1.1.4  BGP的路由属性”。

5. 路由反射器

为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。

利用路由反射可以解决这一问题。在一个AS内,其中一台路由器作为RR(Route Reflector,路由反射器),作为客户机(Client)的路由器与路由反射器之间建立IBGP连接。路由反射器从客户机接收到路由后,将其传递(反射)给所有其他的客户机,从而保证客户机之间不需要建立BGP连接,就可以学习到彼此的路由。

既不是路由反射器也不是客户机的BGP路由器被称为非客户机(Non-client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。其示意图如图1-7所示。

图1-7 路由反射器示意图

 

路由反射器及其客户机形成了一个集群。通常情况下,一个集群中只有一个路由反射器,该反射器的Router ID就作为集群ID,用于识别该群。如图1-8所示,为了提高网络的可靠性、避免单点故障,一个集群中可以设置多个路由反射器。此时,集群中所有路由反射器上都需要配置相同的集群ID,以便集群具有统一的标识,避免路由环路的产生。

图1-8 多路由反射器

 

如果配置了路由反射器后,由于组网需要在路由反射器的客户机之间又建立了全连接,则客户机之间可以直接交换路由信息,客户机到客户机之间的路由反射是没有必要的。此时,不需要修改网络配置或改变网络拓扑,只需在路由反射器上通过相关命令禁止其在客户机之间反射路由,就可以避免路由反射,减少占用的带宽资源。

说明

禁止客户机之间的路由反射后,客户机到非客户机之间的路由仍然可以被反射。

 

6. 联盟

联盟(Confederation)是处理自治系统内部的IBGP网络连接激增的另一种方法,它将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系,子自治系统之间建立联盟内部EBGP连接关系。其示意图如图1-9所示。

图1-9 联盟示意图

 

在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整体,外界不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体的自治系统号,如上图中的AS 200就是联盟ID。

联盟的缺陷是从非联盟方案向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。

在大型BGP网络中,路由反射器和联盟可以被同时使用。

1.1.9  MP-BGP

1. MP-BGP支持的协议

BGP-4只能传递IPv4单播的路由信息,不能传递其它网络层协议(如IPv6等)的路由信息。

为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)。MP-BGP可以为多种网络层协议传递路由信息。

·     IPv6单播

通过MP-BGP发布和维护IPv6单播路由前缀信息。

·     IPv4组播/IPv6组播

组播路由协议PIM(Protocol Independent Multicast,协议无关组播)根据单播静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以创建组播路由表项,从而进行组播报文的转发。组播转发路径与单播转发路径是一致的。但是,在某些情况下,组播网络拓扑和单播网络拓扑有可能不同;有些用户希望组播转发路径不同于单播转发路径,以便分别对组播流量和单播流量进行管理和控制。

MP-BGP对IPv4组播/IPv6组播的扩展,称为MBGP(Multicast BGP,组播BGP),它通过MP-BGP传递用于RPF检查的路由信息,并将该信息保存在独立的组播BGP路由表中,以实现单播转发和组播转发的隔离,使得组播转发路径可以不同于单播转发路径。

有关组播、PIM和RPF检查的详细介绍,请参见“IP组播配置指导”。

·     VPNv4/VPNv6

通过MP-BGP发布和维护VPNv4/VPNv6路由前缀信息,详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”和“IPv6 MPLS L3VPN”。

·     带标签的IPv4单播/IPv6单播

通过MP-BGP发布和维护IPv4单播/IPv6单播路由前缀的同时,还发布为该路由前缀分配的MPLS标签。带标签的IPv4单播路由主要应用于MPLS L3VPN的跨域VPN-OptionC组网中;带标签的IPv6单播路由主要应用于6PE和MPLS L3VPN的跨域VPN-OptionC组网中。跨域VPN-OptionC组网的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

·     L2VPN

通过MP-BGP发布和维护标签块信息和远端邻居信息,详细介绍请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS”。

·     IPv4 MDT

通过MP-BGP发布和维护包含PE地址及PE所在的Default-group等信息的MDT信息,以便组播VPN根据MDT信息在公网上建立以PE为根(即组播源)的Default-MDT。详细介绍请参见“IP组播配置指导”中的“组播VPN”。

2. MP-BGP的扩展属性

路由信息中与网络层协议相关的关键信息包括路由前缀和下一跳地址。BGP-4通过Update消息中的NLRI(Network Layer Reachability Information,网络层可达性信息)字段携带可达路由的前缀信息,Withdrawn Routes字段携带不可达路由的前缀信息,NEXT_HOP属性携带下一跳地址信息。NLRI字段、Withdrawn Routes字段和NEXT_HOP属性不易于扩展,无法携带多种网络层协议的信息。

为实现对多种网络层协议的支持,MP-BGP定义了两个新的路径属性:

·     MP_REACH_NLRI(Multiprotocol Reachable NLRI,多协议可达NLRI):用于携带多种网络层协议的可达路由前缀及下一跳地址信息,以便向邻居发布该路由。

·     MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI,多协议不可达NLRI):用于携带多种网络层协议的不可达路由前缀信息,以便撤销该路由。

MP-BGP通过上述两个路径属性传递不同网络层协议的可达路由和不可达路由信息。不支持MP-BGP的BGP发言者接收到带有这两个属性的Update消息后,忽略这两个属性,不把它们传递给其它邻居。

3. 地址族

MP-BGP采用地址族(Address Family)和子地址族(Subsequent Address Family)来区分MP_REACH_NLRI属性、MP_UNREACH_NLRI属性中携带路由信息所属的网络层协议。例如,如果MP_REACH_NLRI属性中AFI(Address Family Identifier,地址族标识符)为2、SAFI(Subsequent Address Family Identifier,子地址族标识符)为1,则表示该属性中携带的是IPv6单播路由信息。关于地址族的一些取值可以参考RFC 1700。

1.1.10  BGP多进程

一台BGP路由器上可以同时启动多个BGP进程,每个BGP进程对应一个BGP实例。BGP为不同的BGP实例维护独立的路由表。

1.1.11  BGP相关视图介绍

设备为BGP定义了多种视图,分别用来管理不同BGP实例、不同地址族及不同VPN实例的路由信息。BGP支持VPN多实例,可以为不同的VPN实例维护独立的路由表。

大多数BGP配置命令可以在多个视图下执行,不同视图下命令的作用范围有所不同,详细介绍如表1-1所示。

表1-1 BGP相关视图介绍

视图名称

进入视图方法

说明

BGP实例视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc]

执行bgp命令时,可以通过instance参数指定BGP实例名称,以便进入指定BGP实例的视图,该视图下有些配置对指定BGP实例的公网和所有VPN实例内所有地址族的路由和对等体生效(如联盟、GR、日志功能的配置等),有些配置只对指定BGP实例的公网内所有地址族的路由和对等体生效

BGP IPv4单播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv4 unicast

[Sysname-bgp-abc-ipv4]

该视图下的配置对指定BGP实例的公网内的IPv4单播路由和对等体生效

BGP IPv6单播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv6 unicast

[Sysname-bgp-abc-ipv6]

该视图下的配置对指定BGP实例的公网内的IPv6单播路由和对等体生效

BGP IPv4组播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv4 multicast

[Sysname-bgp-abc-mul-ipv4]

该视图下的配置对指定BGP实例的IPv4组播路由和对等体生效

BGP IPv6组播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv6 multicast

[Sysname-bgp-abc-mul-ipv6]

该视图下的配置对指定BGP实例的IPv6组播路由和对等体生效

BGP VPNv4地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family vpnv4

[Sysname-bgp-abc-vpnv4]

该视图下的配置对指定BGP实例的VPNv4路由和对等体生效

BGP VPNv4地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN”

BGP VPNv6地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family vpnv6

[Sysname-bgp-abc-vpnv6]

该视图下的配置对指定BGP实例的VPNv6路由和对等体生效

BGP VPNv6地址族视图的配置请参见“MPLS配置指导”中的“IPv6 MPLS L3VPN”

BGP L2VPN地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family l2vpn

[Sysname-bgp-abc-l2vpn]

该视图下的配置对指定BGP实例的L2VPN对等体和L2VPN信息生效

BGP L2VPN地址族视图的配置请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS”

BGP-VPN实例视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] ip vpn-instance vpn1

[Sysname-bgp-abc-vpn1]

该视图下的配置对指定BGP实例的指定VPN实例内所有地址族的路由和对等体生效

BGP-VPN IPv4单播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] ip vpn-instance vpn1

[Sysname-bgp-abc-vpn1] address-family ipv4 unicast

[Sysname-bgp-abc-ipv4-vpn1]

该视图下的配置对指定BGP实例的指定VPN实例内的IPv4单播路由和对等体生效

BGP-VPN IPv6单播地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] ip vpn-instance vpn1

[Sysname-bgp-abc-vpn1] address-family ipv6 unicast

[Sysname-bgp-abc-ipv6-vpn1]

该视图下的配置对指定BGP实例的指定VPN实例内的IPv6单播路由和对等体生效

BGP-VPN VPNv4地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] ip vpn-instance vpn1

[Sysname-bgp-abc-vpn1] address-family vpnv4

[Sysname-bgp-abc-vpnv4-vpn1]

该视图下的配置对指定BGP实例的指定VPN实例内的VPNv4路由和对等体生效

BGP-VPN VPNv4地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN”

BGP MDT地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv4 mdt

[Sysname-bgp-abc-mdt]

该视图下的配置对指定BGP实例的MDT路由和对等体生效

BGP MDT地址族的配置请参见“IP组播配置指导”中的“组播VPN”

BGP LS地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family link-state

[Sysname-bgp-abc-ls]

该视图下的配置对指定BGP实例的LS信息和对等体生效

BGP IPv4 RT-Filter地址族视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc] address-family ipv4 rtfilter

[Sysname-bgp-abc-rtf-ipv4]

该视图下的配置对指定BGP实例的IPv4 RT-Filter路由和对等体生效

BGP IPv4 RT-Filter地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN”

 

1.1.12  协议规范

与BGP相关的协议规范有:

·     RFC 1700:ASSIGNED NUMBERS

·     RFC 1771:A Border Gateway Protocol 4 (BGP-4)

·     RFC 1997:BGP Communities Attribute

·     RFC 2439:BGP Route Flap Damping

·     RFC 2796:BGP Route Reflection

·     RFC 2858:Multiprotocol Extensions for BGP-4

·     RFC 2918:Route Refresh Capability for BGP-4

·     RFC 3065:Autonomous System Confederations for BGP

·     RFC 3392:Capabilities Advertisement with BGP-4

·     RFC 4271:A Border Gateway Protocol 4 (BGP-4)

·     RFC 4360:BGP Extended Communities Attribute

·     RFC 4724:Graceful Restart Mechanism for BGP

·     RFC 4760:Multiprotocol Extensions for BGP-4

·     RFC 6037:Cisco Systems' Solution for Multicast in BGP MPLS IP VPNs

1.2  BGP配置任务简介

在最基本的BGP网络中,只需完成如下配置:

·     启动BGP。

·     配置BGP对等体或对等体组。如果分别对对等体组和对等体组中的对等体进行了某项BGP配置,则以最后一次配置为准。

·     控制BGP路由信息的生成。

如果在BGP网络中,需要对BGP路由信息的发布、BGP路径的选择等进行控制,则可以根据需要进行其他配置。

表1-2 BGP配置任务简介(IPv4单播/IPv4组播)

配置任务

说明

详细配置

配置BGP基本功能

启动BGP

必选

1.4.1 

手工创建BGP对等体

四者必选其一

建议在大规模的BGP网络中选择“配置BGP对等体组”,以便简化配置

1.4.2 

动态创建BGP对等体

1.4.3 

配置IBGP对等体组

1.4.4 

配置EBGP对等体组

1.4.5 

配置建立TCP连接使用的源地址

可选

1.4.6 

控制BGP路由信息的生成

配置BGP发布本地网段路由

二者至少选其一

1.5.1 

配置BGP引入IGP路由协议的路由

1.5.2 

控制BGP路由信息的发布与接收

配置BGP路由聚合

可选

IPv4组播不支持配置发布IP路由表中的最优路由

1.6.1 

配置发布IP路由表中的最优路由

1.6.2 

配置向对等体/对等体组发送缺省路由

1.6.3 

限制从BGP对等体/对等体组接收的路由数量

1.6.4 

配置BGP路由信息的发布策略

1.6.5 

配置BGP路由信息的接收策略

1.6.6 

配置BGP延迟发布

1.6.7 

配置BGP路由衰减

1.6.8 

控制BGP路径的选择

为接收路由分配首选值

可选

1.7.1 

配置BGP的路由优先级

1.7.2 

配置本地优先级的缺省值

1.7.3 

配置MED属性

1.7.4 

配置NEXT_HOP属性

1.7.5 

配置AS_PATH属性

1.7.6 

配置BGP在选择最优路由时忽略IGP Metric的比较

1.7.7 

配置SoO属性

1.7.8 

调整和优化BGP网络

配置BGP会话的存活时间间隔与保持时间

可选

1.8.1 

配置发布同一路由的时间间隔

1.8.2 

配置允许同非直连邻居建立EBGP会话

1.8.3 

使能直连EBGP会话快速复位功能

1.8.4 

使能4字节AS号抑制功能

1.8.5 

配置BGP的MD5认证

1.8.6 

配置BGP的keychain认证

1.8.7 

配置BGP负载分担

1.8.8 

配置BGP Add-Path

1.8.9 

禁止与对等体/对等体组建立会话

1.8.10 

配置BGP软复位

1.8.11 

配置系统进入二级内存门限告警状态后不断开EBGP对等体

1.8.12 

配置删除本地标签的延迟时间

1.8.13 

开启BGP次优路由下刷RIB功能

1.8.14 

配置BGP发送协议报文的DSCP优先级

1.8.15 

配置按照每条路由分配一个标签的方式申请标签

1.8.16 

配置带隧道信息的标签路由才能参与路由优选

1.8.17 

配置大规模BGP网络

配置BGP团体

可选

1.9.1 

配置BGP路由反射

1.9.2 

配置BGP联盟

1.9.3 

配置BGP GR

可选

1.10 

配置BGP NSR

可选

1.11 

配置BGP RPKI

可选

1.12 

开启告警功能

可选

1.13 

使能BGP日志功能

可选

1.14 

使能BGP的路由抖动日志记录功能

可选

1.15 

配置BGP与BFD联动

可选

1.16 

配置BGP快速重路由

可选

IPv4组播不支持本功能

1.17 

配置BGP LS

可选

1.19 

配置BGP BMP

可选