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

05-网络互通配置指导

目录

30-BGP配置

本章节下载 30-BGP配置  (641.57 KB)

30-BGP配置

  录

1 BGP概述

1.1 BGP的特点

1.2 BGP发言者和BGP对等

1.3 BGP的消息类型

1.4 BGP的有限状态机

1.5 BGP的路由属性

1.6 BGP的选路规则

1.7 BGP发布路由的策略

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

1.9 MP-BGP

1.10 BGP多进程

1.11 BGP相关视图介绍

1.12 协议规范

2 搭建基本BGP网络

2.1 搭建基本BGP网络配置任务简介(IPv4单播)

2.2 搭建基本BGP网络配置任务简介(IPv6单播)

2.3 配置BGP基本功能

2.3.1 启动BGP

2.3.2 手工创建BGP对等体

2.3.3 动态创建BGP对等体

2.3.4 配置IBGP对等体组

2.3.5 配置EBGP对等体组

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

2.4 生成BGP路由信息

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

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

2.4.3 配置BGP路由聚合

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

2.5 控制BGP路由信息的发布

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

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

2.5.3 配置BGP更新消息延迟发布

2.6 控制BGP路由信息的接收

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

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

2.6.3 配置SoO属性

2.7 配置BGP定时器

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

2.7.2 配置重新建立BGP会话的时间间隔

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

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

2.8 配置BGP日志和告警功能

2.8.1 使能BGP日志功能

2.8.2 配置BGP网管功能

2.9 搭建基本BGP网络显示和维护

2.9.1 显示BGP

2.9.2 清除BGP信息

 


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  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.2  BGP发言者和BGP对等体

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

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

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

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

1.3  BGP的消息类型

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

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

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

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

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

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

1.4  BGP的有限状态机

BGP在会话建立过程中共具有六种状态,会话两端设备的BGP所处状态迁移过程如图1-1所示。

图1-1 BGP有限状态机变化过程

 

Idle

此状态是BGP的初始状态,在此状态下,BGP拒绝任何连接请求。只有收到Start事件时,设备才给BGP分配资源,并尝试进行TCP连接、转入Connect状态。

在其他的五种状态下,如果发生了TCP连接断开、报文错误、配置触发关闭连接或收到Notification消息等错误事件,BGP都会转入Idle状态。

Connect

在此状态下,BGP启动Connect Retry定时器,等待TCP完成连接:

·     如果在Connect Retry定时器超时前成功建立TCP连接,则BGP关闭Connect Retry定时器,向对等体发送Open消息,并转入OpenSent状态。

·     如果在Connect Retry定时器超时前建立TCP连接失败,则BGP转入Active状态。

·     如果Connect Retry定时器超时,BGP仍未收到对端的连接响应,则BGP重置Connect Retry定时器,再次尝试与对等体建立TCP连接,并保持Connect状态。

Active

在此状态下,BGP不断尝试建立TCP连接:

·     如果TCP连接建立成功,则BGP关闭Connect Retry定时器,向对等体发送Open消息,并转入OpenSent状态。

·     如果TCP连接建立失败,则BGP重置Connect Retry定时器并保持Active状态。

·     如果Connect Retry定时器超时,BGP仍未收到对端的连接响应,则BGP重置Connect Retry定时器,并转入Connect状态。

OpenSent

在此状态下,BGP等待来自对等体的Open消息,并对Open消息中的BGP版本号、AS号等信息进行检查:

·     如果收到的Open消息正确,则BGP向对等体发送Keepalive消息,并转入OpenConfirm状态。

·     如果收到的Open消息错误,则BGP向对等体发送Notification消息,并转入Idle状态。

在此状态下如果TCP连接断开,则BGP重置Connect Retry定时器,并转入Active状态,重新尝试TCP连接的建立。

OpenConfirm

在此状态下,BGP等待Keepalive或Notification消息。如果BGP收到Keepalive消息,则转入Established状态,如果收到Notification消息,则转入Idle状态。

Established

在此状态下,BGP可以和对等体交互Update、Keepalive、Route-refresh以及Notification消息:

·     收到正确的Update消息或Keepalive消息时,BGP保持Established状态。

·     收到错误的Update消息或Keepalive消息时,BGP向对等体发送Notification消息并转入Idle状态。

·     Route-refresh消息不影响BGP状态。

·     收到Notification消息时,BGP转入Idle状态。

1.5  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-2所示,离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。

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

图1-2 AS_PATH属性

 

AS_PATH属性具有如下用途:

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

·     影响路由的选择:在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在图1-2中,AS 50中的BGP路由器会选择经过AS 40的路径作为到目的地址8.0.0.0的最优路由。

3. 下一跳(NEXT_HOP)属性

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

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

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

·     BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP属性。

图1-3 NEXT_HOP属性

 

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

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

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

图1-4 MED属性

 

通常情况下,BGP只比较来自同一个AS的路由的MED属性值。

5. 本地优先(LOCAL_PREF)属性

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

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

图1-5 LOCAL_PREF属性

 

1.6  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路由,则BGP路由器收到来自不同的EBGP邻居的路由后,不会改变最优路由;

(12)     优选Router ID最小的路由器发布的路由。

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

1.7  BGP发布路由的策略

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

·     存在多条有效路由时,BGP发言者只将最优路由发布给对等体。

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

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

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

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

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

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

1. 路由聚合

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

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

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

2. 对等体组

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

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

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单播路由前缀信息。

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.10  BGP多进程

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

1.11  BGP相关视图介绍

设备为BGP定义了多种视图,分别用来管理不同BGP实例、不同地址族的路由信息。

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

表1-1 BGP相关视图介绍

视图名称

进入视图方法

说明

BGP实例视图

<Sysname> system-view

[Sysname] bgp 100 instance abc

[Sysname-bgp-abc]

执行bgp命令时,可以通过instance参数指定BGP实例名称,以便进入指定BGP实例的视图,该视图下有些配置对指定BGP实例的公网内所有地址族的路由和对等体生效(如联盟、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单播路由和对等体生效

 

1.12  协议规范

与BGP相关的协议规范有:

·     RFC 1700:ASSIGNED NUMBERS

·     RFC 1997:BGP Communities Attribute

·     RFC 2439:BGP Route Flap Damping

·     RFC 2545:Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing

·     RFC 2918:Route Refresh Capability for BGP-4

·     RFC 3107:Carrying Label Information in BGP-4

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

·     RFC 4275:BGP-4 MIB Implementation Survey

·     RFC 4277:Experience with the BGP-4 Protocol

·     RFC 4360:BGP Extended Communities Attribute

·     RFC 4451:BGP MULTI_EXIT_DISC (MED) Consideration

·     RFC 4456:BGP Route Reflection: An Alternative to Full Mesh Internal BGP

·     RFC 4486:Subcodes for BGP Cease Notification Message

·     RFC 4724:Graceful Restart Mechanism for BGP

·     RFC 4760:Multiprotocol Extensions for BGP-4

·     RFC 5004:Avoid BGP Best Path Transitions from One External to Another

·     RFC 5065:Autonomous System Confederations for BGP

·     RFC 5668:4-Octet AS Specific BGP Extended Community

·     RFC 6608:Subcodes for BGP Finite State Machine Error

·     RFC 6793:BGP Support for Four-Octet Autonomous System (AS) Number Space


2 搭建基本BGP网络

2.1  搭建基本BGP网络配置任务简介(IPv4单播)

IPv4单播的BGP配置任务如下:

(1)     配置BGP基本功能

a.     启动BGP

b.     手工创建BGP对等体

c.     

d.     动态创建BGP对等体

e.     

f.     配置IBGP对等体组

在大规模的BGP网络中可通过配置BGP对等体组简化配置。

g.     

h.     配置EBGP对等体组

在大规模的BGP网络中可通过配置BGP对等体组简化配置。

i.     (可选)

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

(2)     生成BGP路由信息

请至少选择其中一项任务进行配置:

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

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

¡     (可选)配置BGP路由聚合

¡     (可选)配置向对等体/对等体组发送缺省路由

(3)     (可选)控制BGP路由信息的发布

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

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

¡     配置BGP更新消息延迟发布

(4)     (可选)控制BGP路由信息的接收

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

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

¡     配置SoO属性

(5)     (可选)配置BGP定时器

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

¡     配置重新建立BGP会话的时间间隔

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

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

(6)     (可选)配置BGP日志和告警功能

¡     使能BGP日志功能

¡     配置BGP网管功能

2.2  搭建基本BGP网络配置任务简介(IPv6单播)

IPv6单播/IPv6组播的BGP配置任务如下:

(1)     配置BGP基本功能

a.     启动BGP

b.     手工创建BGP对等体

c.     

d.     动态创建BGP对等体

e.     

f.     配置IBGP对等体组

在大规模的BGP网络中可通过配置BGP对等体组简化配置。

g.     

h.     配置EBGP对等体组

在大规模的BGP网络中可通过配置BGP对等体组简化配置。

i.     (可选)

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

(2)     生成BGP路由信息

请至少选择其中一项任务进行配置:

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

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

¡     (可选)配置BGP路由聚合

¡     (可选)配置向对等体/对等体组发送缺省路由

(3)     (可选)控制BGP路由信息的发布

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

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

¡     配置BGP更新消息延迟发布

(4)     (可选)控制BGP路由信息的接收

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

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

¡     配置SoO属性

(5)     (可选)配置BGP定时器

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

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

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

(6)     (可选)配置BGP日志和告警功能

¡     使能BGP日志功能

¡     配置BGP网管功能

2.3  配置BGP基本功能

2.3.1  启动BGP

1. 配置限制和指导

如果要在BGP实例下运行BGP协议,则必须为BGP实例指定Router ID。Router ID用来在一个自治系统中唯一的标识一台路由器。

·     用户可以在启动BGP实例进入BGP实例视图后指定该实例的Router ID。不同BGP实例的Router ID可以相同。配置时,必须保证自治系统中任意两台路由器的Router ID都不相同。通常的做法是将路由器的Router ID配置为与该路由器某个接口的IP地址一致,为了增加网络的可靠性,建议将Router ID配置为Loopback接口的IP地址。

·     如果没有在BGP实例视图下配置Router ID,则该实例使用全局Router ID。

·     BGP实例的Router ID一旦确定为非零值后不会随着系统视图下router id命令配置的改变而改变。只能在BGP实例视图下通过router-id命令改变BGP的Router ID。

·     如果是在BGP实例视图下配置的Router ID,则Router ID所在接口被删除时路由器不会重新选择Router ID,只有在BGP实例视图下使用undo router-id命令删除手工配置的Router ID后,路由器才会重新选择Router ID。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置全局Router ID。

router id router-id

缺省情况下,未配置全局Router ID。

如果未配置全局Router ID,则按照下面的规则进行选择:

¡     如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID。

¡     如果所有Loopback接口都未配置IP地址,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态)。

(3)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

缺省情况下,没有运行BGP,不存在BGP实例。

(4)     (可选)为指定的BGP实例配置路由器的Router ID。

router-id router-id

缺省情况下,未配置BGP路由器在BGP实例内的Router ID,为系统视图下通过router id命令配置的全局Router ID。

2.3.2  手工创建BGP对等体

1. 配置限制和指导

当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,且必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IPv4 BGP对等体,并指定对等体的AS号。

peer ipv4-address as-number as-number

(4)     (可选)配置对等体的描述信息。

peer ipv4-address description text

缺省情况下,对等体没有描述信息。

(5)     创建BGP IPv4单播地址族,并进入相应地址族视图。

address-family ipv4 [ unicast ]

(6)     允许本地路由器与指定对等体交换IPv4单播路由信息。

peer ipv4-address enable

缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。

 

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IPv6 BGP对等体,并指定对等体的AS号。

peer ipv6-address as-number as-number

(4)     (可选)配置对等体的描述信息。

peer ipv6-address description text

缺省情况下,对等体没有描述信息。

(5)     创建BGP IPv6单播地址族,并进入相应地址族视图。

address-family ipv6 [ unicast ]

(6)     允许本地路由器与指定对等体交换IPv6单播路由信息。

peer ipv6-address enable

缺省情况下,本地路由器不能与对等体/对等体组交换IPv6单播路由信息。

 

2.3.3  动态创建BGP对等体

1. 功能简介

设备需要和大量的邻居建立对等体关系时,如果逐个配置对等体关系,则配置工作量大,新增或者删除对等体的维护、升级工作难度较大,且容易出错。

如果设备的邻居位于同一个网段内,则可以通过BGP动态对等体功能简化配置。在设备上简单地配置一个网段地址内的邻居作为动态对等体,就可以接受来自该网段内的所有邻居的连接请求,并与其建立对等体关系。只有当邻居发起连接请求时,本地才会维护与该邻居的对等体关系;否则,不维护对等体关系。BGP动态对等体功能既简化了配置,又大大降低了维护和升级成本。

2. 配置限制和指导

配置动态对等体时,设备和邻居只能有一端配置网段地址,另一端必须配置实际IP地址。

当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,且必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IPv4 BGP动态对等体,并指定对等体的AS号。

peer ipv4-address mask-length as-number as-number

(4)     (可选)配置对等体的描述信息。

peer ipv4-address mask-length description text

缺省情况下,动态对等体没有描述信息。

(5)     创建BGP IPv4单播地址族,并进入相应地址族视图。

address-family ipv4 [ unicast ]

(6)     允许本地路由器与指定动态对等体交换IPv4单播路由信息。

peer ipv4-address mask-length enable

缺省情况下,本地路由器不能与动态对等体交换IPv4单播路由信息。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IPv6 BGP动态对等体,并指定对等体的AS号。

peer ipv6-address prefix-length as-number as-number

(4)     (可选)配置动态对等体的描述信息。

peer ipv6-address prefix-length description text

缺省情况下,动态对等体没有描述信息。

(5)     创建BGP IPv6单播地址族,并进入相应地址族视图。

address-family ipv6 [ unicast ]

(6)     允许本地路由器与指定动态对等体交换IPv6单播路由信息。

peer ipv6-address prefix-length enable

缺省情况下,本地路由器不能与动态对等体交换IPv6单播路由信息。

 

2.3.4  配置IBGP对等体组

1. 功能简介

IBGP对等体组是指对等体组中的对等体与当前路由器位于同一AS。

创建IBGP对等体组后,系统在将对等体加入IBGP对等体组时,会自动在BGP实例视图下创建该对等体,并设置其AS号为本地AS号。

2. 配置限制和指导

当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,且必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。

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

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IBGP对等体组。

group group-name [ internal ]

(4)     向对等体组中添加指定的IPv4 BGP对等体。

peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]

as-number as-number参数可选可不选,如果选择则必须和本地的AS号一致。

(5)     (可选)配置对等体组的描述信息。

peer group-name description text

缺省情况下,对等体组没有描述信息。

(6)     创建BGP IPv4单播地址族,并进入相应地址族视图。

address-family ipv4 [ unicast ]

(7)     允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。

peer group-name enable

缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。

 

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建IBGP对等体组。

group group-name [ internal ]

(4)     向对等体组中添加指定的IPv6 BGP对等体。

peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]

as-number as-number参数可选可不选,如果选择则必须和本地的AS号一致。

(5)     (可选)配置对等体组的描述信息。

peer group-name description text

缺省情况下,对等体组没有描述信息。

(6)     创建BGP IPv6单播地址族,并进入相应地址族视图。

address-family ipv6 [ unicast ]

(7)     允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。

peer group-name enable

缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。

 

2.3.5  配置EBGP对等体组

1. 功能简介

EBGP对等体组是指对等体组中的对等体与当前路由器位于不同AS。

根据对等体组中的对等体是否属于同一个外部AS,EBGP对等体组又可以分为纯EBGP对等体组和混合EBGP对等体组。如果对等体组中的对等体属于同一个外部AS,该对等体组就是纯EBGP对等体组;如果对等体组中的对等体属于不同外部AS,该对等体组就是混合EBGP对等体组。

2. 配置限制和指导

用户有三种方式配置EBGP对等体组:

·     第一种方式是创建对等体组后,先指定对等体组的AS号,再将对等体加入到对等体组中,该方式下加入的对等体具有相同的AS号,均为对等体组的AS号。对等体加入对等体组之前可以配置AS号,且为对等体配置的AS号必须与对等体组的AS号相同。

·     第二种方式是创建对等体组后,先配置对等体的AS号,再将对等体加入对等体组中。该方式下,对等体组中对等体的AS号可以相同也可以不同。

·     第三种方式是创建对等体组后,将对等体加入对等体组的同时指定AS号。该方式下,对等体组中对等体的AS号可以相同也可以不同。

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

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建EBGP对等体组。

group group-name external

(4)     指定对等体组的AS号。

peer group-name as-number as-number

缺省情况下,未指定对等体组的AS号。

如果对等体组中已经存在对等体,则不能改变该对等体组的AS号,也不能使用undo命令删除已指定的AS号。

(5)     向对等体组中添加指定的IPv4 BGP对等体。

peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]

as-number as-number参数可选可不选,如果选择则必须和本地的AS号一致。

(6)     (可选)配置对等体组的描述信息。

peer group-name description text

缺省情况下,对等体组没有描述信息。

(7)     创建BGP IPv4单播地址族,并进入相应地址族视图。

address-family ipv4 [ unicast ]

(8)     允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。

peer group-name enable

缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。

 

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建EBGP对等体组。

group group-name external

(4)     指定对等体组的AS号。

peer group-name as-number as-number

缺省情况下,未指定对等体组的AS号。

如果对等体组中已经存在对等体,则不能改变该对等体组的AS号,也不能使用undo命令删除已指定的AS号。

(5)     向对等体组中添加指定的IPv6 BGP对等体。

peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]

as-number as-number参数可选可不选,如果选择则必须和本地的AS号一致。

(6)     (可选)配置对等体组的描述信息。

peer group-name description text

缺省情况下,对等体组没有描述信息。

(7)     创建BGP IPv6单播地址族,并进入相应地址族视图。

address-family ipv6 [ unicast ]

(8)     允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。

peer group-name enable

缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。

 

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

1. 功能简介

BGP使用TCP作为其传输层协议。在如下场合需要通过本配置指定建立TCP连接使用的源地址或源接口(即采用指定源接口的IP地址/IPv6地址与对等体/对等体组建立TCP连接):

·     当指定对等体的IP地址/IPv6地址不是本地路由器与对等体之间直连接口的IP地址/IPv6地址时,需要在对等体上通过本配置指定建立TCP连接的源接口为对等体IP地址/IPv6地址所在的接口或者指定TCP连接的源地址为对等体IP地址/IPv6地址。

·     当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,且必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。

·     当建立BGP会话的路由器之间存在冗余链路时,如果路由器上的一个接口发生故障,链路状态变为down,建立TCP连接的源地址可能会随之发生变化,导致BGP需要重新建立TCP连接,造成网络震荡。为了避免该情况的发生,建议网络管理员将建立TCP连接所使用的源地址配置为Loopback接口的地址,或将源接口配置为Loopback接口,以提高TCP连接的可靠性和稳定性。

·     当BGP对等体之间同时建立多条BGP会话时,如果没有明确指定建立TCP连接的源地址,可能会导致根据最优路由选择TCP连接源地址错误,并影响BGP会话的建立。如果多条BGP会话基于不同接口的IP地址建立,则建议用户在配置BGP对等体时,通过配置源接口或源地址明确指定每个BGP会话的TCP连接源地址;如果多条BGP会话基于同一接口的不同IP地址建立,则建议用户通过配置源地址,明确指定每个BGP会话的TCP连接源地址。

2. 配置限制和指导

对于IBGP邻居,如果通过peer connect-interface命令指定的接口为物理接口,则当该接口发生故障、链路状态变为down时,IBGP邻居关系会立即断开,从而加快路由收敛。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     指定与IPv4对等体/对等体组创建BGP会话时建立TCP连接使用的源地址或源接口。

¡     指定与IPv4对等体/对等体组创建BGP会话时建立TCP连接使用的源地址。

peer { group-name | ipv4-address [ mask-length ] } source-address source-ipv4-address

¡     指定与IPv4对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。

peer { group-name | ipv4-address [ mask-length ] } connect-interface interface-type interface-number

缺省情况下,BGP使用到达BGP对等体的最佳路由出接口的主IPv4地址与对等体/对等体组建立TCP连接。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     指定与IPv6对等体/对等体组创建BGP会话时建立TCP连接使用的源地址或源接口。

¡     指定与IPv6对等体/对等体组创建BGP会话时建立TCP连接使用的源地址。

peer { group-name | ipv6-address [ prefix-length ] } source-address source-ipv6-address

¡     指定与IPv6对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。

peer { group-name | ipv6-address [ prefix-length ] } connect-interface interface-type interface-number

缺省情况下,BGP使用到达BGP对等体的最佳路由出接口的IPv6地址与对等体/对等体组建立TCP连接。

2.4  生成BGP路由信息

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

1. 功能简介

通过本配置可以将本地路由表中指定网段的路由添加到BGP路由表中,以便通过BGP发布该网段路由。通过该种方式发布的路由的ORIGIN属性为IGP。

本配置中指定的网段路由必须存在于本地的IP路由表中,且处于Active状态,否则无法将该网段路由添加到BGP路由表中。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     配置BGP发布的本地网段路由。

network ipv4-address [ mask-length | mask ]

缺省情况下,BGP不发布本地的网段路由。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     配置BGP发布的本地网段路由。

network ipv6-address prefix-length

缺省情况下,BGP不发布本地的网段路由。

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

1. 功能简介

BGP可以向邻居AS发送本地AS内部网络的路由信息,但BGP不是自己去发现AS内部的路由信息,而是将IGP路由协议的路由信息引入到BGP路由表中,并发布给对等体。在引入IGP路由协议的路由时,可以针对不同的路由协议来对路由信息进行过滤。

缺省情况下,BGP引入IGP路由协议的路由时,不会引入该协议的缺省路由。用户可以通过配置,指定BGP引入IGP路由协议的路由时,允许将缺省路由引入到BGP路由表中。

通过引入方式发布的路由的ORIGIN属性为Incomplete。

只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令或display ipv6 routing-table protocol命令来查看。这两条命令的详细介绍,请参见“网络互通命令参考”中的“IP路由基础”。

针对同一协议进程重复执行import-route命令引入路由时,最后一次执行的命令生效。若要引入同一协议进程时不覆盖已存在配置,则可以通过import-route-append命令附加引入IGP路由。针对同一协议进程同时配置import-routeimport-route-append命令时:

·     如果均指定了引入路由的MED度量值,以import-route-append命令的配置为准。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     将IGP路由协议的路由信息引入到BGP路由表中。

¡     引入IS-IS、OSPF、RIP协议的路由。

import-route { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value ] * ]

¡     引入直连、Guard或静态路由。

import-route { direct | guard | static } [ med med-value ] *

缺省情况下,BGP不会引入IGP路由协议的路由信息。

(5)     (可选)以附加的方式将IGP路由协议的路由信息引入到BGP路由表中。

¡     引入IS-IS、OSPF、RIP协议的路由。

import-route-append { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value ] * ]

¡     引入直连或静态路由。

import-route-append { direct | static } [ med med-value ] *

缺省情况下,BGP不会引入IGP路由协议的路由信息。

(6)     (可选)允许将缺省路由引入到BGP路由表中。

default-route imported

缺省情况下,BGP不允许将缺省路由引入到BGP路由表中。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     将IGP路由协议的路由信息引入到IPv6 BGP路由表中。

¡     引入IS-ISv6、OSPFv3、RIPng协议的路由。

import-route { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value ] * ]

¡     引入直连、Guard或静态路由。

import-route { direct | guard | static } [ med med-value ] *

缺省情况下,BGP不会引入IGP路由协议的路由信息。

(5)     (可选)以附加的方式将IGP路由协议的路由信息引入到BGP路由表中。

¡     引入IS-ISv6、OSPFv3、RIPng协议的路由。

import-route-append { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value ] * ]

¡     引入直连或静态路由。

import-route-append { direct | static } [ med med-value ] *

缺省情况下,BGP不会引入IGP路由协议的路由信息。

(6)     (可选)允许将缺省路由引入到IPv6 BGP路由表中。

default-route imported

缺省情况下,BGP不允许将缺省路由引入到IPv6 BGP路由表中。

2.4.3  配置BGP路由聚合

1. 功能简介

在中型或大型BGP网络中,在向对等体发布路由信息时,可以配置路由聚合,减少发布的路由数量,并减小路由表的规模。IPv4 BGP支持自动聚合和手动聚合两种聚合方式,同时配置时,手动聚合的优先级高于自动聚合的优先级。IPv6 BGP只支持手动聚合。

配置自动聚合功能后,BGP将对通过import-route命令引入的IGP子网路由进行聚合,不再发布子网路由,而是发布聚合的自然网段的路由。

自动聚合是按照自然网段进行聚合,而且只能对IGP引入的子网路由进行聚合。通过配置手动聚合,用户可以同时对从IGP路由协议引入的子网路由和用network命令发布的路由进行聚合,而且还可以根据需要定义聚合路由的子网掩码长度。

2. 配置限制和指导

BGP路由表中创建的聚合路由的出接口为Null0接口,聚合后可以减少向BGP对等体发布的路由数目。在使用中应注意不要使这条聚合路由成为本设备的优选路由,否则会导致报文转发失败。如果聚合路由的子网掩码长度和被聚合的某一条具体路由完全相同,且聚合路由优先级高于具体路由,则聚合路由会成为优选路由,这种情况下需要通过修改路由优先级等方式,来确保优选的路由为具体路由。

3. 配置路由自动聚合(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     配置对引入的子网路由进行自动聚合。

summary automatic

缺省情况下,不对引入的子网路由进行自动聚合。

4. 配置路由手动聚合(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     在BGP路由表中创建一条聚合路由。

aggregate ipv4-address { mask-length | mask } [ as-set| detail-suppressed ] *

缺省情况下,未配置聚合路由。

5. 配置路由手动聚合(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     在IPv6 BGP路由表中创建一条聚合路由。

aggregate ipv6-address prefix-length [ as-set | detail-suppressed ] *

缺省情况下,未配置聚合路由。

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

1. 功能简介

执行本配置后,设备将向指定对等体/对等体组发布一条下一跳地址为本地地址的缺省路由。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     向对等体/对等体组发送缺省路由。

peer { group-name | ipv4-address [ mask-length ] } default-route-advertise

缺省情况下,不向对等体/对等体组发送缺省路由。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     向对等体/对等体组发送缺省路由。

peer { group-name | ipv6-address [ prefix-length ] } default-route-advertise

缺省情况下,不向对等体/对等体组发送缺省路由。

2.5  控制BGP路由信息的发布

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

1. 功能简介

缺省情况下,BGP发布BGP路由表中的最优路由,不管该路由在IP路由表中是否为最优路由。通过本配置可以保证BGP发送出去的路由是IP路由表中的最优路由,以减少BGP发送的路由数量。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     全局配置发布IP路由表中的最优路由。

advertise-rib-active

缺省情况下,BGP发布BGP路由表中的最优路由。

(4)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(5)     在指定地址族视图下,配置发布IP路由表中的最优路由。

advertise-rib-active

缺省情况下,与BGP实例视图下的配置保持一致。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     全局配置发布IPv6路由表中的最优路由。

advertise-rib-active

缺省情况下,BGP发布BGP路由表中的最优路由。

(4)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(5)     在指定地址族视图下,配置发布IPv6路由表中的最优路由。

advertise-rib-active

缺省情况下,与BGP实例视图下的配置保持一致。

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

1. 发布策略配置方式简介

可以通过以下几种方式配置BGP路由信息的发布策略:

·     使用访问控制列表或地址前缀列表对向所有对等体发布的路由信息进行过滤。

·     向指定对等体或对等体组发布路由时,使用访问控制列表或路由发送条件对发布给该对等体或对等体组的路由信息进行过滤。

用户可以根据需求选择过滤策略。如果同时配置了几种过滤策略,则按照如下顺序过滤发布的路由信息:

·     peer filter-policy export

·     filter-policy export

只有通过前面的过滤策略,才能继续执行后面的过滤策略;只有通过所有配置的过滤策略后,路由信息才能被发布。

2. 配置准备

配置BGP路由信息的发布/接收策略前,根据采取的策略,需要配置访问控制列表,详细配置过程请参见“安全配置指导”中的“ACL”。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     配置BGP路由信息的发布策略。请至少选择其中一项进行配置。

¡     对向所有对等体发布的路由信息进行过滤。

filter-policy { ipv4-acl-number } export [ direct | { isis | ospf | rip } process-id | static ]

¡     为对等体/对等体组设置基于ACL的路由发布过滤策略。

peer { group-name | ipv4-address [ mask-length ] } filter-policy ipv4-acl-number export

缺省情况下,不对发布的路由信息进行过滤。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     配置BGP路由信息的发布策略。请至少选择其中一项进行配置。

¡     对向所有IPv6 BGP对等体发布的路由信息进行过滤。

filter-policy { ipv6-acl-number } export [ direct | { isisv6 | ospfv3 | ripng } process-id | static ]

¡     为对等体/对等体组设置基于ACL的路由发布过滤策略。

peer { group-name | ipv6-address [ prefix-length ] } filter-policy ipv6-acl-number export

缺省情况下,不对发布的路由信息进行过滤。

2.5.3  配置BGP更新消息延迟发布

1. 功能简介

配置了本功能时,在经过了重启且BGP进程恢复后,设备不能立刻向邻居发布更新消息,而是在一段延迟时间之后才能发送。这段延迟时间的作用是,设备重启后可以等待路由接收完成并优选后再向其他设备发布,以避免设备重启后路由信息不全,就发布给其他设备导致流量丢失的情况。

配置本功能后,如果需要部分路由前缀不受延迟发布控制,可以使用前缀列表进行控制,通过前缀列表过滤的路由不受延迟发布的影响。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置设备重启且BGP进程恢复后,经过一段延迟时间才能发送更新消息。

bgp update-delay on-startup seconds

缺省情况下,设备重启且BGP进程恢复后,立刻向Established状态的BGP邻居发布路由更新消息。

(4)     (可选)配置通过前缀列表控制BGP更新消息延迟发布。

bgp update-delay on-startup prefix-list ipv4-prefix-list-name

缺省情况下,未配置通过前缀列表控制BGP更新消息延迟发布。

2.6  控制BGP路由信息的接收

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

1. 功能简介

通过本配置可以避免攻击者向路由器发送大量的BGP路由,对路由器进行攻击。

当路由器从指定对等体/对等体组接收的路由数量超过指定的最大值时,可以选择以下处理方式:

·     路由器中断与该对等体/对等体组的BGP会话,不再尝试重建会话。

·     路由器保持与该对等体/对等体组的BGP会话,可以继续接收路由,仅打印日志信息。

·     路由器保持与该对等体/对等体组的BGP会话,丢弃超出限制的路由,并打印日志信息。

·     路由器中断与该对等体/对等体组的BGP会话,经过指定的时间后自动与对等体/对等体组重建会话。

执行本配置任务时,还可以指定路由器产生日志信息的阈值,即路由器接收的路由数量与配置的最大值的百分比达到指定的阈值时,路由器将产生日志信息。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     配置允许从对等体/对等体组接收的路由的最大数量。

peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *

缺省情况下,不限制从对等体/对等体组接收的路由数量。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     配置允许从对等体/对等体组接收的路由的最大数量。

peer { group-name | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *

缺省情况下,不限制从对等体/对等体组接收的路由数量。

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

1. 接收策略配置方式简介

可以通过以下几种方式配置BGP路由信息的接收策略:

·     使用访问控制列表或地址前缀列表对从所有对等体接收的路由信息进行过滤。

·     从指定对等体或对等体组接收路由时,使用访问控制列表对从该对等体或对等体组接收的路由信息进行过滤。

用户可以根据需求选择过滤策略。如果同时配置了几种过滤策略,则按照如下顺序过滤接收的路由:

·     peer filter-policy import

·     filter-policy import

只有通过前面的过滤策略,才能继续执行后面的过滤策略;只有通过所有配置的过滤策略后,路由信息才能被接收。

2. 配置准备

配置BGP路由信息的发布/接收策略前,根据采取的策略,需要配置访问控制列表,详细配置过程请参见“安全配置指导”中的“ACL”。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     配置BGP路由信息的接收策略。请至少选择其中一项进行配置。

¡     对从所有对等体接收的路由信息进行过滤。

filter-policy { ipv4-acl-number } import

¡     为对等体/对等体组设置基于ACL的路由接收过滤策略。

peer { group-name | ipv4-address [ mask-length ] } filter-policy ipv4-acl-number import

缺省情况下,不对接收的路由信息进行过滤。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     配置BGP路由信息的接收策略。请至少选择其中一项进行配置。

¡     对从所有IPv6 BGP对等体接收的路由信息进行过滤。

filter-policy { ipv6-acl-number } import

¡     为对等体/对等体组设置基于ACL的路由接收过滤策略。

peer { group-name | ipv6-address [ prefix-length ] } filter-policy ipv6-acl-number import

缺省情况下,不对接收的路由信息进行过滤。

2.6.3  配置SoO属性

1. 功能简介

为BGP对等体/对等体组配置SoO属性后,从该BGP对等体/对等体组接收路由时设备会为路由增加SoO属性,并且向该BGP对等体/对等体组发布路由时设备会检查路由的SoO属性,如果路由中携带的SoO属性与为对等体/对等体组配置的SoO属性相同,则不会将该路由发布给对等体/对等体组,从而避免路由环路。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(4)     为BGP对等体/对等体组配置SoO属性。

peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin

缺省情况下,没有为BGP对等体/对等体组配置SoO属性。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     为BGP对等体/对等体组配置SoO属性。

peer { group-name | ipv6-address [ prefix-length ] } soo site-of-origin

缺省情况下,没有为BGP对等体/对等体组配置SoO属性。

2.7  配置BGP定时器

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

1. 功能简介

当对等体间建立了BGP会话后,它们定时向对端发送Keepalive消息,以防止路由器认为BGP会话已中断。Keepalive消息的发送时间间隔称为存活时间间隔。

若路由器在设定的会话保持时间(Holdtime)内未收到对端的Keepalive消息或Update消息,则认为此BGP会话已中断,从而断开此BGP会话。

用户可以全局配置当前路由器上所有BGP会话的存活时间间隔与保持时间,也可以配置与指定对等体/对等体组建立的BGP会话的存活时间间隔和保持时间。如果同时配置了两者,则为指定对等体/对等体组配置的值具有较高的优先级。

存活时间间隔、会话保持时间的协商及计算方法如下:

·     如果当前路由器上配置的保持时间与对端设备(对等体)上配置的保持时间不一致,则数值较小者作为协商后的保持时间。协商的保持时间为0时,不向对等体发送Keepalive消息,与对等体之间的会话永远不会超时断开。

·     存活时间间隔不为0时,将协商的保持时间的三分之一与配置的存活时间间隔比较,取最小值作为存活时间间隔。

2. 配置限制和指导

配置的保持时间必须大于或等于存活时间的三倍。

本功能可以针对所有BGP会话配置,或仅针对特定的对等体/对等体组配置。对于特定的对等体/对等体组,与设备间BGP会话的存活时间间隔和保持时间以peer timer命令的配置为准,如果设备未指定该对等体/对等体组配置过peer timer命令,则采用timer命令的配置。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置BGP会话的存活时间间隔和保持时间。请至少选择其中一项进行配置。

¡     配置所有BGP会话的存活时间间隔和保持时间。

timer keepalive keepalive hold holdtime

配置本命令后,不会影响已建立的BGP会话,只对新建立的会话生效。

¡     配置本地路由器与指定对等体/对等体组之间BGP会话的存活时间间隔和保持时间。

peer { group-name | ipv4-address [ mask-length ] } timer keepalive keepalive hold holdtime

缺省情况下,BGP会话的存活时间间隔为60秒,保持时间为180秒。

配置timerpeer timer命令后,不会马上断开会话,而是等到其他条件触发会话重建(如复位BGP会话)时,再以配置的保持时间协商建立会话。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置BGP会话的存活时间间隔和保持时间。请至少选择其中一项进行配置。

¡     配置所有BGP会话的存活时间间隔和保持时间。

timer keepalive keepalive hold holdtime

配置本命令后,不会影响已建立的BGP会话,只对新建立的会话生效。

¡     配置本地路由器与指定IPv6 BGP对等体/对等体组之间BGP会话的存活时间间隔和保持时间。

peer { group-name | ipv6-address [ prefix-length ] } timer keepalive keepalive hold holdtime

缺省情况下,BGP会话的存活时间间隔为60秒,保持时间为180秒。

配置timerpeer timer命令后,不会马上断开会话,而是等到其他条件触发会话重建(如复位BGP会话)时,再以配置的保持时间协商建立会话。

2.7.2  配置重新建立BGP会话的时间间隔

1. 功能简介

通过配置本功能可以控制重新建立BGP会话的速度:

·     当邻居关系建立失败,可以将定时器时间间隔的值调小,从而加快BGP会话建立的速度,便于路由快速收敛。

·     当邻居关系震荡时,可以将定时器时间间隔的值调大,从而减轻路由震荡。

2. 配置限制和指导

配置本地路由器与指定对等体/对等体组之间重新建立BGP会话的时间间隔比配置本地路由器与所有对等体之间重新建立BGP会话的时间间隔的优先级高。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置本地路由器与对等体之间重新建立BGP会话的时间间隔。请选择其中一项进行配置。

¡     配置本地路由器与所有对等体之间重新建立BGP会话的时间间隔。

timer connect-retry retry-time

¡     配置本地路由器与指定对等体/对等体组之间重新建立BGP会话的时间间隔。

peer { group-name | ipv4-address [ mask-length ] } timer connect-retry retry-time

缺省情况下,本地路由器与对等体/对等体组之间重新建立BGP会话的时间间隔为32秒。

4. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置本地路由器与对等体之间重新建立BGP会话的时间间隔。请选择其中一项进行配置。

¡     配置本地路由器与所有对等体之间重新建立BGP会话的时间间隔。

timer connect-retry retry-time

¡     配置本地路由器与指定IPv6 BGP对等体/对等体组之间重新建立BGP会话的时间间隔。

peer { group-name | ipv6-address [ prefix-length ] } timer connect-retry retry-time

缺省情况下,本地路由器与对等体/对等体组之间重新建立BGP会话的时间间隔为32秒。

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

1. 功能简介

BGP路由发生变化时,BGP路由器会发送Update消息通知对等体。如果同一路由频繁变化,BGP路由器会频繁发送Update消息更新路由,导致路由震荡。通过本配置指定向对等体/对等体组发布同一路由的更新时间间隔,可以避免每次路由变化都发送Update消息,避免路由震荡。对于需要撤销的路由,BGP路由器会立即向邻居发送路由撤销消息,不受本功能的控制。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置向指定对等体/对等体组发布同一路由的时间间隔。

peer { group-name | ipv4-address [ mask-length ] } route-update-interval interval

缺省情况下,向IBGP对等体发布同一路由的时间间隔为15秒,向EBGP对等体发布同一路由的时间间隔为30秒。

3. 配置步骤(IPv6单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置向指定IPv6 BGP对等体/对等体组发布同一路由的时间间隔。

peer { group-name | ipv6-address [ prefix-length ] } route-update-interval interval

缺省情况下,向IBGP对等体发布同一路由的时间间隔为15秒,向EBGP对等体发布同一路由的时间间隔为30秒。

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

1. 功能简介

本地标签是指本地设备通过带标签的IPv4单播路由或带标签的IPv6单播路由分配给其他BGP对等体的MPLS标签。为路由分配的本地标签发生变化时,如果立即删除本地标签,则BGP对等体可能尚未收到新的标签,仍然采用旧的标签转发报文,从而导致流量中断。为了避免上述情况发生,BGP需要延迟一段时间再删除本地标签。通过本配置可以调整本地标签的延迟删除时间。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置删除本地标签的延迟时间。

retain local-label retain-time

缺省情况下,删除本地标签的延迟时间为60秒。

2.8  配置BGP日志和告警功能

2.8.1  使能BGP日志功能

1. 功能简介

全局使能BGP日志记录功能,并使能与指定对等体/对等体组之间BGP会话的日志记录功能后,与该对等体/对等体组之间的BGP会话建立以及断开时会生成日志信息,通过display bgp peer ipv4 unicast log-info命令或display bgp peer ipv6 unicast log-info命令可以查看记录的日志信息。生成的日志信息还将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。

有关信息中心参数的配置请参见“设备管理配置指导”中的“信息中心”。

2. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     全局使能BGP日志记录功能。

log-peer-change

缺省情况下,全局BGP日志记录功能处于开启状态。

(4)     使能与指定对等体/对等体组之间BGP会话的日志记录功能。

peer { group-name | ipv4-address [ mask-length ] } log-change

缺省情况下,与所有对等体/对等体组之间BGP会话的日志记录功能均处于开启状态。

3. 配置步骤(IPv4单播)

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     全局使能BGP日志记录功能。

log-peer-change

缺省情况下,全局BGP日志记录功能处于开启状态。

(4)     使能与指定对等体/对等体组之间BGP会话的日志记录功能。

peer { group-name | ipv6-address [ prefix-length ] } log-change

缺省情况下,与所有对等体/对等体组之间BGP会话的日志记录功能均处于开启状态。

2.8.2  配置BGP网管功能

1. 功能简介

开启BGP模块的告警功能后,当BGP的邻居状态变化时BGP会产生RFC 4273中规定的告警信息,该信息包含邻居地址、最近一次出现错误的错误码和错误子码、当前的邻居状态。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。

通过MIB(Management Information Base,管理信息库)节点对BGP进行管理时,BGP无法获知被管理的节点属于哪个BGP实例。为不同的BGP实例配置不同的SNMP上下文可以解决上述问题。

设备接收到SNMP报文后,根据报文中携带的上下文(对于SNMPv3)或团体名称(对于SNMPv1/v2c),判断如何进行处理:

·     对于SNMPv3报文:

¡     如果报文中不携带上下文,且没有为default实例配置SNMP上下文,则对BGP default实例的MIB节点进行相应处理。

¡     如果报文中携带上下文,设备上存在对应的SNMP上下文(通过系统视图下的snmp-agent context命令创建),且该上下文与为某一个BGP实例配置的上下文相同,则对该BGP实例的MIB节点进行相应处理。

¡     其他情况下,不允许对任何MIB节点进行处理。

·     对于SNMPv1/v2c报文:

¡     如果设备上没有通过系统视图下的snmp-agent community-map命令将报文中的团体名映射为SNMP上下文,且没有为default实例配置SNMP上下文,则对BGP default实例的MIB节点进行相应处理。

¡     如果设备上将团体名映射为SNMP上下文,设备上存在对应的SNMP上下文,且该上下文与为某一个BGP实例配置的上下文相同,则对该BGP实例的MIB节点进行相应处理。

¡     其他情况下,不允许对任何MIB节点进行处理。

有关告警信息的详细和SNMP上下文和团体名的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启BGP模块的告警功能。

snmp-agent trap enable bgp [ instance instance-name ]

缺省情况下,BGP模块的告警功能处于开启状态。

(3)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(4)     配置BGP实例的SNMP上下文。

snmp context-name context-name

缺省情况下,未配置BGP实例的SNMP上下文。

2.9  搭建基本BGP网络显示和维护

2.9.1  显示BGP

在完成上述配置后,在任意视图下执行display命令可以显示配置后BGP的运行情况,通过查看显示信息验证配置的效果。

1. 搭建基本BGP网络配置显示(IPv4单播)

表2-1 搭建基本BGP网络配置显示(IPv4单播)

操作

命令

显示BGP IPv4单播对等体组的信息

display bgp [ instance instance-name ] group ipv4 [ unicast ] [ group-name group-name ]

显示通过network命令发布的路由信息

display bgp [ instance instance-name ] network ipv4 [ unicast ]

显示BGP IPv4单播对等体或对等体组的状态和统计信息

display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]

显示BGP IPv4单播路由的震荡统计信息

display bgp [ instance instance-name ] routing-table flap-info ipv4 [ unicast ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl as-path-acl-number ]

显示BGP IPv4单播路由信息

display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | peer ipv4-address { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] | statistics ] | statistics ]

显示BGP IPv4单播地址族下打包组的相关信息

display bgp [ instance instance-name ] update-group ipv4 [ unicast ] [ ipv4-address ]

显示所有BGP实例的信息

display bgp instance-info

 

2. 搭建基本BGP网络配置显示(IPv6单播)

表2-2 搭建基本BGP网络配置显示(IPv6单播)

操作

命令

显示BGP IPv6单播对等体组的信息

display bgp [ instance instance-name ] group ipv6 [ unicast ] [ group-name group-name ]

显示通过network命令发布的路由信息

display bgp [ instance instance-name ] network ipv6 [ unicast ]

显示BGP IPv6单播对等体或对等体组的状态和统计信息

display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]

display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv4-address mask-length | ipv4-address log-info | [ ipv4-address ] verbose ]

显示BGP IPv6单播路由的震荡统计信息

display bgp [ instance instance-name ] routing-table flap-info ipv6 [ unicast ] [ ipv6-address prefix-length | as-path-acl as-path-acl-number ]

显示BGP IPv6单播路由信息

display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ ipv6-address prefix-length [ advertise-info ] | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | peer ipv6-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ] | statistics ]

display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] peer ipv4-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ]

显示BGP IPv6单播地址族下打包组的相关信息

display bgp [ instance instance-name ] update-group ipv6 [ unicast ] [ ipv4-address | ipv6-address ]

显示所有BGP实例的信息

display bgp instance-info

3. 复位BGP会话

当BGP路由策略或协议发生变化后,如果需要通过复位BGP会话使新的配置生效,请在用户视图下进行下列配置。

注意

复位BGP会话时,会造成短暂的BGP会话中断。

 

表2-3 复位BGP会话

操作

命令

复位IPv4单播地址族下的BGP会话

reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 [ unicast ]

复位IPv6单播地址族下的BGP会话

reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 [ unicast ]

reset bgp ipv4-address [ mask-length ] ipv6 [ unicast ]

复位所有BGP会话

reset bgp [ instance instance-name ] all

 

2.9.2  清除BGP信息

在用户视图下,执行reset命令可以清除BGP相关统计信息。

表2-4 清除BGP信息

操作

命令

清除BGP IPv4单播路由的震荡统计信息

reset bgp [ instance instance-name ] flap-info ipv4 [ unicast ] [ ipv4-address [ mask-length | mask ] | as-path-acl as-path-acl-number | peer ipv4-address [ mask-length ] ]

清除BGP IPv6单播路由的震荡统计信息

reset bgp [ instance instance-name ] flap-info ipv6 [ unicast ] [ ipv6-address prefix-length | as-path-acl as-path-acl-number | peer ipv6-address [ prefix-length ] ]

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们