06-BGP基础配置
本章节下载: 06-BGP基础配置 (2.69 MB)
2.2 搭建基本BGP网络配置任务简介(IPv4单播/IPv4组播)
2.3 搭建基本BGP网络配置任务简介(IPv6单播/IPv6组播)
2.4.7 配置对于指定对等体/对等体组,本地设备仅主动发送连接请求或仅侦听连接请求
2.5.4 配置指定VPN实例或公网实例的BGP单播路由引入功能
2.6.6 配置BGP根据EBGP路由的第一个AS号过滤发布对象
2.7.3 配置BGP会话发送Update消息的时间间隔和每次发送Update消息的最大数目
3.4.2 配置忽略BGP路由的ORIGINATOR_ID属性
4.3.3 配置向IPv6 BGP对等体发布路由时下一跳信息只携带全球单播地址
4.6.2 配置BGP在选择最优路由时忽略AS_PATH属性
4.6.5 配置发送BGP更新消息时AS_PATH属性中不携带私有AS号
4.7.5 配置允许比较来自同一联盟不同子自治系统邻居路由的MED属性值
4.7.6 配置BGP选路时综合考虑MED值与到达路由下一跳的IGP Metric值
4.7.7 将BGP路由的MED属性传递给指定的EBGP对等体/对等体组
4.9.1 配置邻居状态由Down变为Up后发送最低优先级路由
4.12 配置BGP在选择最优路由时忽略IGP Metric的比较
4.14.2 配置BGP路由的下一跳仅迭代到隧道时仍可参与选路
4.14.3 配置BGP路由的下一跳迭代到隧道或IP地址时影响路由优选
4.15 更改设备在收到来自不同EBGP邻居路由时的优选规则
4.17 配置来自指定对等体/对等体组的BGP路由中如果携带了Graceful-Shutdown团体属性,则将该路由的优先级调整至最低
BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS(Autonomous System,自治系统)之间,又可以用于同一AS内部的动态路由协议。当BGP运行于同一AS内部时,被称为IBGP(Internal BGP);当BGP运行于不同AS之间时,称为EBGP(External BGP)。AS是拥有同一选路策略,属于同一技术管理部门的一组路由器。
BGP具有如下特点:
· BGP是一种EGP(Exterior Gateway Protocol,外部网关协议),与OSPF、RIP等IGP(Interior Gateway Protocol,内部网关协议)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。并且BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
· BGP控制域间路由的传播和选择,需要处理大量的路由信息,因此对协议的可靠性要求非常高。BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性,且无需设备之间直连就能交换路由信息。
· BGP易于扩展,能够适应网络新的发展。目前,越来越多的新技术使用BGP作为其控制面协议来传递信息。
· BGP是一种路径矢量(Path-Vector)路由协议,它采用到达目的地址所经过的AS列表来衡量到达目的地址的距离。
· BGP支持CIDR(Classless Inter-Domain Routing,无类域间路由)。
· 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
· BGP路由通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而解决域间路由环路问题。
随着各种新型网络技术的涌现,BGP更多地作为控制面的信息承载者,通过将控制面的协议信息携带在BGP路由信息中,实现控制面协议信息的传递,以帮助各种新型技术网络搭建信息通路。在以下场景中需要使用BGP协议。
· BGP作为控制平面配合转发平面技术实现业务承载:
¡ 不同用户间跨AS公网单播通信的场景。
¡ 需要跨AS传播用于RPF检查的单播路由信息,以构造组播拓扑的场景。
¡ BGP和MPLS配合实现BGP MPLS L3VPN/L2VPN:
- 需要通过公网传递VPN路由的场景。详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
- 需要传递标签块信息的场景。详细介绍请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS”。
¡ 需要在公网中通过SRv6隧道承载私网流量的场景。详细介绍请参见“Segment Routing配置指导”中的“SRv6 VPN概述”、“IP L3VPN over SRv6”、“EVPN L3VPN over SRv6”、“EVPN VPWS over SRv6”、“EVPN VPLS over SRv6”以及“公网IP over SRv6”。
¡ 需要在VPN网络中实现组播传输的场景。详细介绍请参见“IP组播配置指导”中的“组播VPN”。
· 通过扩展BGP实现新功能:
¡ 需要在设备间传递IP Source Guard绑定表项信息的场景。
¡ EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)场景。详细介绍请参见“EVPN配置指导”。
¡ 需要在设备间传递SRv6 TE Policy的相关配置信息的场景。详细介绍请参见“Segment Routing配置指导”中的“SRv6 TE Policy”。
¡ 需要为AS域间路径分配SID,以实现SR跨域转发的场景。本场景通过BGP-EPE(BGP Egress Peer Engineering,BGP出口对等体工程)技术实现,有关BGP-EPE的详细介绍,请参见“Segment Routing配置指导”中的“SR-MPLS”或“SRv6”。
¡ 需要传递QoS策略信息,以对网络中的非法流量进行过滤和巡查的场景。详细介绍请参见“ACL与QoS配置指导”中的“Flowspec”。
¡ SDWAN(Software Defined Wide Area Network,软件定义广域网)组网场景。详细介绍请参见“SDWAN配置指导”中的“SDWAN”。
运行BGP协议的路由器称为BGP发言者。BGP发言者接收或产生路由信息,并将路由信息发布给其它BGP发言者。
相互之间存在TCP连接、相互交换路由信息的BGP发言者互为BGP对等体。
根据对等体所在的AS,可以将对等体分为以下两种:
· IBGP对等体:对等体与本地路由器位于同一AS。
· EBGP对等体:对等体与本地路由器位于不同AS。
根据对等体的IP地址类型,可以将对等体分为以下两种:
· IPv4对等体:通过IPv4地址创建的对等体。
· IPv6对等体:通过IPv6地址创建的对等体。
BGP定义了以下几种消息类型:
· Open:TCP连接建立后发送的第一个消息,用于在BGP对等体之间建立会话。
· Update:用于在对等体之间交换路由信息。一条Update消息可以发布具有相同属性的多条可达路由,这些路由共享这些路由属性。一条Update消息也可以撤销多条不可达路由,这些路由在Update消息的NLRI(Network Layer Reachability Information,网络层可达性信息)中通过目的地址来区分标识。
· Keepalive:BGP周期性地向对等体发送Keepalive消息,以保持会话的有效性。
· Route-refresh:用来要求对等体重新发送指定地址族的路由信息。BGP会话两端设备的Route-refresh能力均处于使能状态时,如果一端设备的BGP路由接收策略发生了变化,则该设备会向对等体发送Route-refresh消息,收到Route-refresh消息的对端设备会将其路由信息重新发送给Route-refresh消息的发送端。这样设备就能刷新BGP路由信息的状态,并为这些BGP路由应用新的接收策略。
· Notification:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP会话会立即中断。
BGP报文由报文头和报文内容构成,BGP五种消息具有相同的报文头,但报文内容各不相同。
图1-1 BGP报文头格式
BGP报文头格式如图1-1所示,各字段的描述如表1-1所示。
表1-1 BGP报文头字段描述
字段 |
长度 (字节) |
字段说明 |
Marker |
16 |
用于检查BGP连接同步状态,如果本字段的取值不为十六进制数全F,则说明存在BGP连接同步错误 |
Length |
2 |
包括报文头在内的BGP消息总长度,取值范围为19~4096 |
Type |
1 |
BGP消息的类型,取值包括: · 1:Open消息 · 2:Update消息 · 3:Notification消息 · 4:Keepalive消息 · 5:Route-refresh消息 |
图1-2 Open报文格式
Open报文用于建立BGP连接,并协商各种能力,格式如图1-2所示,各字段的描述如表1-2所示。
表1-2 Open报文字段描述
字段 |
长度 (字节) |
字段说明 |
Version |
1 |
BGP协议的版本号 |
My Autonomous System |
2 |
Open报文发送者自身的AS号 |
Hold Time |
2 |
报文发送方设置的Hold Time(单位为秒)。此时间用于保持对等体间的连接关系,以及确定Keepalive或Update消息的发送间隔,BGP会话双方均接收到对方设定的Hold Time后,选择其中较小的时间作为双方协商后共同使用的Hold Time |
BGP Identifier |
4 |
报文发送方的Router ID |
Opt Parm Len |
1 |
可选参数的长度,单位为字节。取值为0时表示无可选参数 |
Option Parameters |
可变 |
可选参数,每一个可选参数都是一个TLV格式的单元。可选参数通常用来表示协商的能力 |
图1-3 Update报文格式
Update报文用于通告路由,格式如图1-3所示,各字段的描述如表1-3所示。
表1-3 Update报文字段描述
字段 |
长度 (字节) |
字段说明 |
Withdrawn Routes Length |
2 |
撤销路由部分的长度,单位为字节。取值为0时,表示无撤销路由 |
My Autonomous System |
可变 |
要撤销的路由,格式为掩码长度(1字节)+IP地址前缀(可变) |
Total Path Attribute Length |
2 |
所有路由属性的长度 |
Path Attributes |
可变 |
路由携带的所有路由属性,按类型号从小到大的顺序排列。每一个属性都以TLV的格式编码,形式如下:
其中,Type表示路由属性的类型,长2字节,其组成为Attr.Flag+Attr.Type Code · Attr.Flag:类型标记,可以决定路由属性的以下内容: ¡ O:此标记决定路由属性是否公认(Well-known),路由属性为公认属性时,O标记不置位(设置为0),路由属性为可选属性(Optional)时,O标记置位(设置为1) ¡ T:此标记决定路由属性是否具为过渡属性(Transitive),路由属性为过渡属性时,T标记置位(设置为1),否则不置位(设置为0) ¡ P:此标记决定路由属性是否具有局部性,具有局部性的路由属性仅在同一自治域内有效,不会被传递到其他自治域。仅具有局部性的可选过渡属性P标记会置位(设置为1),其他情况下,P标记均不置位(设置为0) ¡ E:此标记决定路由属性的长度字段是否需要扩展。需要扩展则E标记置位,此时Length字段占2字节;不需要扩展则E标记不置位,此时Length字段占1字节 ¡ U:U标记位做保留使用,全部不置位 · Attr.Type Code:类型码,表明路由属性的类型,取值包括: ¡ 1:表示源(ORIGIN)属性 ¡ 2:表示AS路径(AS_PATH)属性 ¡ 3:表示下一跳(NEXT_HOP)属性 ¡ 4:表示MED属性 ¡ 5:表示本地优先(LOCAL_PREF)属性 ¡ 6:表示原子聚合(ATOMIC_AGGREGATE)属性 ¡ 7:表示聚合者(AGGREGATOR)属性 ¡ 8:表示团体(COMMUNITY)属性 ¡ 9:表示Originator ID属性 ¡ 10:表示集群ID列表(CLUSTER_LIST)属性 ¡ 14:表示MP_REACH_NLRI属性 ¡ 15:表示MP_UNREACH_NLRI属性 ¡ 16:表示扩展团(EXT-COMMUNITY)体属性 Length表示路由属性的长度,单位为字节 Value表示路由属性的内容 |
Network Layer Reachability Information(NLRI) |
可变 |
要更新的路由,格式为掩码长度(1字节)+IP地址前缀(可变) |
Notification报文用于通告BGP会话过程中发生的错误,格式如图1-4所示,各字段的描述如表1-4所示。
表1-4 Notification报文字段描述
字段 |
长度 (字节) |
字段说明 |
Error Code |
1 |
差错码 |
Error SubCode |
1 |
差错子码 |
Data |
可变 |
错误详细内容 |
上述内容的取值和含义的详细介绍,如表1-5所示。
表1-5 差错码/差错子码详细含义列表
差错码/差错子码 |
邻居断开的详细原因 |
说明 |
1/1 |
connection not synchronized |
连接不同步,目前实现为收到的报文的报文头前16字节不全为F |
1/2 |
bad message length |
报文长度无效 |
1/3 |
bad message type |
报文的类型无效 |
3/1 |
the withdrawn length is too large |
撤销信息长度过长 |
the attribute length is too large |
属性长度过长 |
|
one attribute appears more than once |
同一个属性在一个Update消息中出现了多次 |
|
the attribute length is too small |
属性长度字段不足2字节 |
|
exntended length field is less than two octets |
属性长度为可扩展长度,但长度字段不足2字节 |
|
the length field is less than one octet |
属性长度为正常长度,但长度字段不足1字节 |
|
link-state attribute error |
链路状态属性形式错误 |
|
3/2 |
unrecognized well-known attribute |
不支持的公认属性 |
3/3 |
attribute-type attribute missed |
attribute-type类型的属性丢失,attribute-type取值包括: · ORIGIN · AS_PATH · LOCAL_PREF · NEXT_HOP |
3/4 |
attribute flags error |
属性标记错误 |
3/5 |
attribute-type attribute length error |
attribute-type类型的属性长度错误,attribute-type取值包括: · AS_PATH · AS4_PATH · CLUSTER_LIST · AGGREGATOR · AS4_AGGREGATOR · ORIGIN · NEXT_HOP · MED · LOCAL_PREF · ATOMIC_AGGREGATE · ORIGINATOR_ID · MP_REACH_NLRI · COMMUNITIES · extended communities |
attribute length exceeds |
属性长度越界 |
|
3/6 |
invalid ORIGIN attribute |
ORIGIN属性无效 |
3/8 |
invalid NEXT_HOP attribute |
下一跳属性无效 |
3/9 |
invalid nexthop length in MP_REACH_NLRI (address-family) |
address-family地址族MP_REACH_NLRI属性的Nexthop长度错误,address-family的取值包括: · 4u:表示IPv4单播地址族 · IPv4 Flowspec:表示IPv4 Flowspec地址族 · MPLS:表示MPLS地址族 · VPNv4:表示VPNv4地址族 · 6u:表示IPv6单播地址族 · VPNv6:表示VPNv6地址族 · L2VPN:表示L2VPN地址族 |
the length of MP_UNREACH_NLRI is too small |
MP_UNREACH_NLRI的长度小于3字节 |
|
the MP NLRI attribute length exceeds |
MP_REACH_NLRI 或MP_UNREACH_NLRI属性长度越界 |
|
erroneous MP NLRI attribute end position |
可达或不可达前缀结束位置与报文属性结束位置不同 |
|
3/10 |
invalid network field |
网络字段无效 |
3/11 |
malformed AS_PATH |
AS路径形式不对 |
4/0 |
Keepalive last triggered time |
最后一次触发发送Keepalive消息时间 |
Keepalive last sent time |
最后一次发送Keepalive消息时间 |
|
Update last sent time |
最后一次发送Update消息时间 |
|
EPOLLOUT last occurred time |
最后一次发生EPOLLOUT时间 |
|
Keepalive last received time |
最后一次接收Keepalive消息时间 |
|
Update last received time |
最后一次接收Update消息时间 |
|
EPOLLIN last occurred time |
最后一次发生EPOLLIN时间 |
|
5/0 |
connection retry timer expires |
ConnectRetry定时器超时 |
TCP_CR_Acked event received |
收到了TCP_CR_Acked事件 |
|
TCP_Connection_Confirmed event received |
收到了TCP_Connection_Confirmed事件 |
|
5/3 |
open message received |
收到open消息 |
6/0 |
manualstop event received |
收到manualstop事件 |
physical interface configuration changed |
物理配置改变,比如接口变化 |
|
session down event received from BFD |
收到BFD会话down事件 |
|
6/1 |
maximum number of prefixes reached |
前缀数超过peer route-limit所配置的数目 |
maximum number of address-family prefixes reached |
address-family地址族的前缀数超过peer route-limit所配置的数目,address-family的取值包括: · IPv4 unicast:表示IPv4单播地址族 · IPv6 unicast:表示IPv6单播地址族 · VPNv4:表示VPNv4地址族 · VPNv6:表示VPNv6地址族 |
|
6/2 |
configuration of peer ignore changed |
配置peer ignore命令 |
6/3 |
address family deleted |
地址族被删除 |
peer disabled |
关闭对等体 |
|
6/4 |
administrative reset |
执行reset bgp命令或者配置改变导致BGP会话重启 |
6/5 |
connection rejected |
连接被拒绝 |
6/6 |
other configuration change |
其他配置变化 |
6/7 |
connection collision resolution |
连接冲突 |
two connections exist and MD5 authentication is configured for the neighbor |
存在两个连接,且其中一个配置了MD5认证 |
|
6/8 |
· no memory to process the attribute:解析属性时内存不够 · no memory for the route:生成路由或者标签块信息时,获取不到内存 · no memory to generate unreachable NLRI:封装unreachable NLRI时申请不到内存 · no memory to generate a message:封装报文时申请不到内存 · can’t get the VPN RD:解析前缀时获取不到RD · can’t get the VPN routing table:解析前缀时获取不到VPN路由表 · can’t get the attributes:解析前缀时获取不到属性 · entered severe memory state:进入二级门限告警 · entered critical memory state:进入三级门限告警 |
图1-5 Keepalive报文格式
Keepalive报文用于保持BGP会话,格式如图1-5所示,各字段的描述如表1-6所示。
表1-6 Keepalive报文字段描述
字段 |
长度 (字节) |
字段说明 |
Marker |
16 |
用于检查BGP对等体的同步信息完整度,以及进行BGP验证。不验证时取值为十六进制全F |
Length |
2 |
Keepalive报文总长度,单位为字节 |
Type |
1 |
BGP消息类型,Keepalive报文取值为4 |
Route-refresh报文用于请求对等体重新发布路由,设备在接收到Route-refresh报文后会重新发布该报文指定地址族下的路由。Route-refresh报文的格式如图1-6所示,各字段的描述如表1-7所示。
表1-7 Route-refresh报文字段描述
字段 |
长度 (字节) |
字段说明 |
AFI |
2 |
地址族 |
Reserved |
1 |
保留字段 |
Type |
1 |
子地址族 |
BGP在会话建立过程中共具有六种状态,会话两端设备的BGP所处状态迁移过程如图1-7所示。
图1-7 BGP有限状态机变化过程
此状态是BGP的初始状态,在此状态下,BGP拒绝任何连接请求。只有收到Start事件时,设备才给BGP分配资源,并尝试进行TCP连接、转入Connect状态。
在其他的五种状态下,如果发生了TCP连接断开、报文错误、配置触发关闭连接或收到Notification消息等错误事件,BGP都会转入Idle状态。
在此状态下,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状态。
在此状态下,BGP不断尝试建立TCP连接:
· 如果TCP连接建立成功,则BGP关闭Connect Retry定时器,向对等体发送Open消息,并转入OpenSent状态。
· 如果TCP连接建立失败,则BGP重置Connect Retry定时器并保持Active状态。
· 如果Connect Retry定时器超时,BGP仍未收到对端的连接响应,则BGP重置Connect Retry定时器,并转入Connect状态。
在此状态下,BGP等待来自对等体的Open消息,并对Open消息中的BGP版本号、AS号等信息进行检查:
· 如果收到的Open消息正确,则BGP向对等体发送Keepalive消息,并转入OpenConfirm状态。
· 如果收到的Open消息错误,则BGP向对等体发送Notification消息,并转入Idle状态。
在此状态下如果TCP连接断开,则BGP重置Connect Retry定时器,并转入Active状态,重新尝试TCP连接的建立。
在此状态下,BGP等待Keepalive或Notification消息。如果BGP收到Keepalive消息,则转入Established状态,如果收到Notification消息,则转入Idle状态。
在此状态下,BGP可以和对等体交互Update、Keepalive、Route-refresh以及Notification消息:
· 收到正确的Update消息或Keepalive消息时,BGP保持Established状态。
· 收到错误的Update消息或Keepalive消息时,BGP向对等体发送Notification消息并转入Idle状态。
· Route-refresh消息不影响BGP状态。
· 收到Notification消息时,BGP转入Idle状态。
BGP路由属性是跟随路由一起发布出去的一组参数。它对特定的路由进行了进一步的描述,使得路由接收者能够根据路由属性值对路由进行过滤和选择。下面将介绍BGP路由属性的分类以及几种常见的路由属性。
BGP路由属性分为如下类别。
· 公认必遵(Well-known mandatory):所有BGP设备都应该识别,且必须被携带在Update消息中的属性。如果缺少这类属性的Update消息被认为是错误的消息。
· 公认可选(Well-known discretionary):所有BGP设备都应该识别,但不要求必须备携带在Update消息中的属性。
· 可选过渡(Optional transitive):BGP设备可能无法识别,但仍可以接收并转发给其他BGP设备的属性。
· 可选非过渡(Optional non-transitive):如果BGP设备不支持此类属性,则Update消息中的这类属性会被BGP设备忽略,且不会被该设备转发给其他对等体。
ORIGIN属性定义了路由信息的来源,标记一条BGP路由是怎么生成的。它有以下三种类型:
· IGP:优先级最高,表示路由产生于本AS内。
· EGP:优先级次之,表示路由通过EGP学到。
· Incomplete:优先级最低,表示路由的来源无法确定。例如,从其它路由协议引入的路由信息。
AS_PATH属性记录了某条路由从本地到目的地址所要经过的所有AS号,是公认必遵属性。收到此路由的BGP路由器根据AS_PATH属性就可以知道到达目的地址所要经过的AS。
在BGP设备发布本地产生的路由时:
· 如果设备将路由发布到其他AS,则设备会将本地AS号添加在AS_PATH列表后再发布。
· 如果设备将路由发布给IBGP对等体,则BGP路由携带的AS_PATH列表为空。
在BGP设备转发路由时:
· 如果设备将路由发布到其他AS,则设备会将本地AS号添加在AS_PATH列表的最前方(最左侧)后在发布。
· 如果设备将路由发布给IBGP对等体,则BGP设备不修改路由原本的AS_PATH列表。
AS_PATH属性有四种AS号的排列方式:
· AS_SEQUENCE:AS号按照一定的顺序排列。如图1-8所示,离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
· AS_SET:AS号只是经过的AS的简单罗列,没有顺序要求。AS_SET方式通常出现在路由聚合场景中,由于路由聚合后,系统无法将聚合前的具体路由的AS_PATH属性再按照顺序排列,所以只能将聚合后的AS号进行无序记录。AS_SET形式的AS_PATH属性在选路时一律按照AS路径长度为1进行计算。
· AS_CONFED_SEQUENCE:联盟内子AS号按照顺序排列。
· AS_CONFED_SET:联盟内子AS号的无序简单罗列。此方式通常出现在联盟内路由聚合场景中。
AS_CONFED_SEQUENCE和AS_CONFED_SET方式仅会出现在联盟内部转发的BGP路由中。
AS_PATH属性具有如下用途:
· 避免路由环路的形成:缺省情况下,如果BGP路由器接收到的路由的AS_PATH属性中已经包含了本地的AS号,则BGP路由器认为出现路由环路,不会接受该路由。
· 影响路由的选择:在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在图1-8中,AS 50中的BGP路由器会选择经过AS 40的路径作为到目的地址8.0.0.0的最优路由。用户可以使用路由策略来人为地增加AS路径的长度,以便更为灵活地控制BGP路径的选择。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
· 对路由进行过滤:通过配置AS路径过滤列表,可以针对AS_PATH属性中所包含的AS号来对路由进行过滤。AS路径过滤列表的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
BGP的NEXT_HOP属性取值不一定是邻居路由器的IP地址,是公认必遵属性。如图1-9所示,NEXT_HOP属性取值情况分为几种:
· BGP发言者把自己产生的路由发给所有邻居时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址;
· BGP发言者把接收到的路由发送给EBGP对等体时,将该路由信息的NEXT_HOP属性设置为自己与对端连接的接口地址;
· BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP属性。如果配置了负载分担,等价路由被发给IBGP邻居时则会修改NEXT_HOP属性。关于“负载分担”的概念请参见“BGP负载分担”。
MED属性仅在相邻两个AS之间交换,收到此属性的AS不会再将其通告给其它AS,是可选非过渡属性。
MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个BGP路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。如图1-10所示,从AS 10到AS 20的流量将选择Router B作为入口。
通常情况下,BGP只比较来自同一个AS的路由的MED属性值。在某些特殊的应用中,用户也可以通过配置compare-different-as-med命令,强制BGP比较来自不同AS的路由的MED属性值。
LOCAL_PREF属性仅在IBGP对等体之间交换,不通告给其他AS。它表明BGP路由器的优先级,是公认可选属性。
LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。如图1-11所示,从AS 20到AS 10的流量将选择Router C作为出口。
LOCAL_PREF属性仅能在IBGP对等体间传递,无法通告到其他AS中。
原子聚合属性用于说明携带该属性的路由是一条聚合路由,并且警告形成该聚合路由的具体路由在发布的过程中可能丢失。原子聚合属性是公认可选属性。
聚合者属性是原子聚合属性的一个补充属性,它说明了发起路由聚合的设备的IP地址以及所属AS号。聚合者属性是可选过渡属性。在设备对BGP路由进行聚合时,会为路由同时添加原子聚合属性以及聚合者属性。
Originator ID属性标识了本地AS内路由始发设备的Router ID,只能由路由反射器添加,是可选非过渡属性。
Originator ID属性主要用于防止引入路由反射器后造成的环路问题。当一条BGP路由第一次被路由反射器反射时,路由反射器会将Originator ID属性添加进路由中,取值为将该路由发给路由反射器的设备的Router ID。如果路由已经携带了Originator ID属性,则路由反射器不会修改该Originator ID属性。携带了Originator ID属性的路由被接收后,接收设备将比较收到的Originator ID和本地的Router ID,如果相同,则说明AS内出现了环路,接收设备丢弃该路由。
集群ID列表属性用于记录路由经过的路由反射集群,以避免环路。集群ID列表属性是可选非过渡属性。
集群ID列表属性由路由反射器生成,在反射路由时,路由反射器会把本地的集群ID添加到路由的集群ID列表属性中,如果路由未携带集群ID列表属性,则路由反射器为路由创建一个。路由反射器收到BGP路由时,会检查路由携带的集群ID列表属性,如果其中有本地的集群ID,则丢弃该路由,以避免产生环路。
BGP将具有相同特征的路由归为一组,称为一个团体,通过在路由中携带团体属性标识路由所属的团体。团体没有物理上的边界,不同AS的路由可以属于同一个团体。
根据需要,一条路由可以携带一个或多个团体属性值(每个团体属性值用一个四字节的整数表示)。接收到该路由的路由器可以通过比较团体属性值对路由作出适当的处理(比如决定是否发布该路由、在什么范围发布等),而不需要匹配复杂的过滤规则(如ACL),从而简化路由策略的应用和降低维护管理的难度。团体属性是可选过渡属性。
团体属性具有两种格式,分别为aa:nn形式以及整数团体号格式,两种格式之间的对应关系如图1-12所示。
两种格式的内容含义为:
· aa:nn:aa和nn的取值范围为0~65535,aa通常表示自治系统号,nn是可以自行定义的团体属性标识。例如,来自AS100的一条路由,网络管理员为其定义的团体属性标识是999,则该路由的团体属性格式为100:999。
· 团体号:取值范围为0~4294967295的整数。
公认的团体属性有:
· INTERNET:缺省情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。此属性对应的团体号为0。
· NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS(关于联盟的定义请参见“大规模BGP网络所遇问题的解决方法”)。此属性对应的团体号为4294967041。
· NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。此属性对应的团体号为4294967042。
· NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。此属性对应的团体号为4294967043。
除了公认的团体属性外,用户还可以使用团体属性列表自定义团体属性,以便更为灵活地控制路由策略。
随着团体属性的应用日益广泛,原有四字节的团体属性无法满足用户的需求。因此,BGP定义了新的路由属性——扩展团体属性。扩展团体属性是可选非过渡属性。
扩展团体属性与团体属性有如下不同:
· 扩展团体属性为八字节,提供了更多的属性值。
· 扩展团体属性可以划分类型。在不同的组网应用中,可以使用不同类型的扩展团体属性对路由进行过滤和控制。与不区分类型、统一使用同一个属性值空间的团体属性相比,扩展团体属性的配置和管理更为简单。
目前,设备支持的扩展团体属性有Route Target属性、SoO(Site of Origin,源站点)、链路带宽、Color以及Priority Color。
Route Target属性的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”;Color属性的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”;Priority-Color属性的详细介绍,请参见“SDWAN配置指导”中的“SDWAN”。
链路带宽属性用来实现BGP路由指导流量进行UCMP(Unequal Cost Multiple Path,非等价多路径)负载分担转发。有关链路带宽属性的作用机制请参见“配置链路带宽属性”。
SoO扩展团体属性用来标识路由的原始站点。路由器不会将带有SoO属性的路由发布给该SoO标识的站点,确保来自某个站点的路由不会再被发布到该站点,从而避免路由环路。在AS路径信息丢失时,可以通过SoO属性来避免发生环路。
SoO属性有如下几种形式:
· 16位整数形式自治系统号:32位用户自定义数,例如:101:3。
· 16位点分形式自治系统号:32位用户自定义数字。例如:0.1:1。其中,自治系统号的取值范围为0.1~0.65535。
· 32位IP地址:16位用户自定义数,例如:192.168.122.15:1。
· 32位整数形式自治系统号:16位用户自定义数,其中的自治系统号最小值为65536。例如:65536:1。
· 32位IP地址/IPv4地址掩码:16位用户自定义数,例如:192.168.122.15/24:1。
· 32位点分形式自治系统号:16位用户自定义数字。例如:10.1:1。其中,自治系统号的最小值为1.0。
AIGP(Accumulated Interior Gateway Protocol Metric,累加内部网关协议度量值)属性用于传递并累加IGP Metric值,是可选非过渡属性。
在AS域内运行的IGP协议,通常会为链路分配一个用于计算最优路径的度量值(Metric),在选路时会优选Metric最小的路径。不同AS间的Metric无法互相传递,所以BGP作为跨AS的路由协议,没有使用IGP Metric作为选路的依据。AIGP属性为BGP提供了使用IGP Metric作为选路依据的条件,网络管理员将同一个部门管理的、运行同一种IGP协议的AS的集合规划为一个AIGP管理域,在AIGP管理域内,BGP也可以基于IGP Metric进行选路。
支持AIGP属性收发能力的设备才可以识别BGP路由中携带的AIGP属性,并发送携带AIGP属性的路由。AIGP属性只能通过引用路由策略来添加,如图1-13所示,Device A为BGP路由添加AIGP属性并发送给Device B和Device C时:
· Device B由于不支持AIGP属性收发能力,向Device D转发路由时将会忽略路由携带的AIGP属性。
· Device C支持AIGP属性收发能力,向Device D转发路由时会携带AIGP属性。通常情况下,Device C不修改路由的AIGP属性,只有在Device C将路由的下一跳修改为自身地址时,才会修改路由的AIGP属性,修改的规则为:
¡ 如果Device A和Device C之间基于IGP路由或不需要迭代的静态路由、直连路由建立BGP会话,则Device C将IGP路由或静态、直连路由的Metric与AIGP属性相加后作为新的AIGP属性发送给Device D。
¡ 如果Device A和Device C之间基于需要迭代的BGP路由或静态路由建立BGP会话,则这些路由每迭代一次,该次迭代到的依赖路由的Metric值就会累加到AIGP属性上。Device C将所有依赖路由的Metric值都加到AIGP属性上作为新的AIGP属性发送给Device D。
AIGP属性通过上述机制,使得BGP可以像IGP一样基于Metric值进行选路,从而使AIGP管理域内的设备可以按照IGP最优路径指导流量转发。有关AIGP属性如何影响路由优选,以及在选路规则中的具体判断顺序,请参见“BGP的选路规则”。
在BGP协议的应用早期,网络中使用的AS号长度为2字节(取值范围为1~65535)。随着网络规模的扩大,2字节的AS号已经不够分配,所以需要将AS号的长度扩展到4字节(取值范围为1~4294967295),以避免AS号资源的枯竭。
使用4字节AS号建立会话前需要通过Open消息来进行能力协商,双方都支持4字节AS号时才能协商成功,协商成功后才能成功建立使用4字节AS号的BGP会话。协商4字节AS号能力时,Open消息的格式如图1-14。由于Open消息头的字段格式是固定的,所以My Autonomous System字段无法填写4字节AS号,使用4字节AS号的设备将AS号23456填写到My Autonomous System字段中,而实际使用的4字节AS号填写在可选参数字段,这样在能力协商时就能知晓对端设备是否支持4字节AS号,以及使用的4字节AS号的值。
图1-14 4字节AS号能力协商时Open消息格式
BGP路由的生成、获得和发布过程如图1-15所示。
图1-15 BGP处理路由过程
BGP协议自身无法发现路由,所以需要将其他协议的路由引入到BGP的路由表中,才能生成BGP路由并对其进行传播。BGP路由可以通过以下两种粒度引入:
· 协议引入:BGP可以按照协议类型,将IGP路由、直连路由或静态路由等路由批量引入到BGP路由表中来生成BGP路由。
· 精确引入:BGP可以按照地址前缀,精确指定一条本地存在的路由引入到BGP路由表中来生成BGP路由。
在大规模的网络中,BGP路由表十分庞大,使用路由聚合(Routes Aggregation)可以大大减小BGP路由表的规模。
路由聚合实际上是将多条路由合并的过程。这样BGP在向对等体通告路由时,可以只通告聚合后的路由,而不是将所有的具体路由都通告出去。
目前系统支持自动聚合和手动聚合方式:
· 自动聚合:对BGP引入的路由按照自然网段自动进行聚合。自动聚合后,参加聚合的具体路由将被抑制。
· 手动聚合:将BGP路由聚合为用户手动配置的指定聚合路由。在手动聚合时,可以控制聚合路由的属性,并决定是否发布具体路由。
目前,BGP选择路由的过程为:
(1) 丢弃下一跳(NEXT_HOP)不可达的路由。
(2) 丢弃路由的下一跳(NEXT_HOP)未迭代到IP地址的路由。如果配置了bestroute nexthop-resolved tunnel命令,则不丢弃下一跳未迭代到IP地址、但是迭代到了隧道的路由;仍然丢弃下一跳既未迭代到IP地址、也未迭代到隧道的路由。
(3) 根据bestroute origin-as-validation命令的配置,优选RPKI验证结果优先级最高的路由;如果未配置bestroute origin-as-validation命令,则跳过本规则。
(4) 优选首选值(Preferred-value)最大的路由。
(5) 根据peer high-priority preferred命令的配置,优选从指定对等体/对等体组学习到的路由。如果未配置peer high-priority preferred命令,则跳过本规则。
(6) 在BGP实例的VPN实例内,根据bestroute encap-type preferred命令的配置优选SRv6封装或MPLS封装的路由。在BGP实例的公网实例内,本规则不生效;如果未配置bestroute encap-type preferred命令,则跳过本规则。
(7) 根据bestroute nexthop-type preferred命令的配置,优选下一跳迭代到隧道或IP地址的路由。如果未配置bestroute nexthop-type preferred命令,则跳过本规则。
(8) 优选本地优先级(LOCAL_PREF)最高的路由。
(9) 在BGP实例的VPN实例内,根据bestroute encap-type命令的配置优选SRv6封装或MPLS封装的路由。在BGP实例的公网实例内,本规则不生效;如果未配置bestroute encap-type命令,则跳过本规则。
(10) 依次选择network命令生成的路由、import-route命令引入的路由、聚合路由。
(11) 优选携带AIGP属性的路由,AIGP属性值越小优先级越高。
(12) 优选AS路径(AS_PATH)最短的路由。
(13) 依次选择ORIGIN类型为IGP、EGP、Incomplete的路由。
(14) 优选MED值最小的路由。
(15) 依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由。
(16) 根据peer high-priority命令的配置,优选从指定对等体/对等体组学习到的路由。如果未配置peer high-priority命令,则本规则不生效。
(17) 优选IGP Metric值最小的路由。如果配置了bestroute igp-metric-ignore命令,则跳过本规则。
(18) 优选迭代深度值小的路由。
(19) 根据bestroute nexthop-type命令的配置,优选下一跳迭代到隧道或IP地址的路由。如果未配置bestroute nexthop-type命令,则跳过本规则。
(20) 如果当前的最优路由为EBGP路由,则BGP路由器收到来自不同的EBGP邻居的路由后,不会改变最优路由。如果配置了bestroute compare-ebgp命令,则跳过本规则。
(21) 优选Router ID最小的路由器发布的路由。如果路由包含RR属性,那么在路由选择过程中,就用ORIGINATOR_ID来替代Router ID。如果配置了bestroute router-id-ignore命令,则跳过本规则。
(22) 优选CLUSTER_LIST长度最短的路由。
(23) 根据bestroute ipv6-nexthop命令的配置,优选下一跳地址为IPv6地址的路由。如果未配置bestroute ipv6-nexthop命令,则跳过本规则。
(24) 优选下一跳地址为IPv4地址的路由。
(25) 优选IP地址最小的对等体发布的路由。
· CLUSTER_ID为路由反射器的集群ID,CLUSTER_LIST由CLUSTER_ID序列组成,路由反射器将自己的CLUSTER_ID加入CLUSTER_LIST中。若路由反射器收到路由中的CLUSTER_LIST包含自己的CLUSTER_ID,则丢弃该路由,从而避免集群内发生环路。
· 如果配置了负载分担,并且有多条到达同一目的地的路由,则根据配置的路由条数选择多条路由进行负载分担。
· 有关bestroute encap-type命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6 TE Policy”。
BGP发布路由时采用如下策略:
· 存在多条有效路由时,BGP发言者只将最优路由发布给对等体。如果配置了advertise-rib-active命令,则BGP发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由。
· BGP发言者只把自己使用的路由发布给对等体。
· BGP发言者会将从EBGP获得的路由发布给它的所有BGP对等体(包括EBGP对等体和IBGP对等体)。
· BGP发言者会将从IBGP获得的路由发布给它的EBGP对等体,但不会发布给它的IBGP对等体。
· 会话一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体。之后,BGP发言者只在路由变化时,向对等体发布更新的路由。
BGP可以通过如下两种方式实现负载分担:
· 基于迭代路由实现负载分担
· 通过改变BGP选路规则实现负载分担
由于BGP协议本身的特殊性,它产生的路由的下一跳地址可能不是当前路由器直接相连的邻居。常见的一个原因是:IBGP之间发布路由信息时不改变下一跳。这种情况下,为了能够将报文正确转发出去,路由器必须先找到一个直接可达的地址(查找IGP建立的路由表项),通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。
目前系统支持基于迭代的BGP负载分担,即如果依赖路由本身是负载分担的(假设有三个下一跳地址),则BGP也会生成与依赖路由数量相同的下一跳地址来指导报文转发。需要说明的是,基于迭代的BGP负载分担并不需要命令配置,这一特性在系统上始终启用。
在实现方法上,BGP的负载分担与IGP的负载分担有所不同:
· IGP(如RIP、OSPF)是通过协议定义的路由算法,对到达同一目的地址的不同路由,根据计算结果,将度量值(metric)相等的路由进行负载分担,选择的标准很明确(按metric)。
· BGP本身并没有路由计算的算法,它只是一个选路的路由协议,因此,不能根据一个明确的度量值决定是否对路由进行负载分担,但BGP有丰富的选路规则,可以在对路由进行一定的选择后,有条件地进行负载分担,也就是将负载分担加入到BGP的选路规则中去。
采用本方式进行负载分担时,BGP不再按照“BGP的选路规则”中的规则选择路由,当路由同时满足如下条件时,即在这些路由间进行负载分担:
· ORIGIN属性、LOCAL_PREF属性、AIGP属性和MED属性完全相同。
· AS_PATH属性满足如下要求:
¡ 只要配置了balance as-path-neglect命令,则AS_PATH属性可以不同。
¡ 如果配置了balance as-path-relax命令,但未配置balance as-path-neglect命令,则AS_PATH属性内容不同但长度相同的路由之间能够形成BGP负载分担。
¡ 如果未配置balance as-path-neglect和balance as-path-relax命令,则要求AS_PATH属性也必须相同。
· 路由下一跳的IGP路由的Metric值满足如下要求:
¡ 若未配置bestroute igp-metric-ignore命令和balance igp-metric-ignore命令,则路由下一跳的IGP的Metric值必须相同。
¡ 配置了bestroute igp-metric-ignore命令或balance igp-metric-ignore命令后,不同路由下一跳的IGP Metric值不同也能形成BGP负载分担。
· 同为标签路由(具有对应MPLS标签值的路由)或同为非标签路由。
图1-16 BGP负载分担示意图
在图1-16中,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和balance as-path-relax命令,形成负载分担的路由的AS_PATH属性相同,则发布路由的AS_PATH属性就为该值;如果配置了balance as-path-neglect或balance as-path-relax命令,形成负载分担的路由的AS_PATH属性不同,则发布路由的AS_PATH属性为最佳路由的AS_PATH属性。
· NEXT_HOP属性改变为Router C的地址,而不是原来的EBGP对等体地址。
· 其它的BGP路由属性为最佳路由的属性。
BGP负载分担特性适用于EBGP、IBGP以及联盟之间。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。
利用路由反射可以解决这一问题。在一个AS内,其中一台路由器作为RR(Route Reflector,路由反射器),作为客户机(Client)的路由器与路由反射器之间建立IBGP连接。路由反射器从客户机接收到路由后,将其传递(反射)给所有其他的客户机,从而保证客户机之间不需要建立BGP连接,就可以学习到彼此的路由。
既不是路由反射器也不是客户机的BGP路由器被称为非客户机(Non-client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。其示意图如图1-17所示。
路由反射器及其客户机形成了一个集群。通常情况下,一个集群中只有一个路由反射器,该反射器的Router ID就作为集群ID,用于识别该群。如图1-18所示,为了提高网络的可靠性、避免单点故障,一个集群中可以设置多个路由反射器。此时,集群中所有路由反射器上都需要配置相同的集群ID,以便集群具有统一的标识,避免路由环路的产生。
如果配置了路由反射器后,由于组网需要在路由反射器的客户机之间又建立了全连接,则客户机之间可以直接交换路由信息,客户机到客户机之间的路由反射是没有必要的。此时,不需要修改网络配置或改变网络拓扑,只需在路由反射器上通过相关命令禁止其在客户机之间反射路由,就可以避免路由反射,减少占用的带宽资源。
禁止客户机之间的路由反射后,客户机到非客户机之间的路由仍然可以被反射。
在大规模BGP网络中,对等体的数目众多,路由表庞大,配置和维护极为不便。通过如下方法,可以降低管理难度,提高路由发布效率。
路由发生变化时,路由协议会向邻居发布路由更新,收到路由更新的路由器需要重新计算路由并修改路由表。如果发生路由震荡,即路由不稳定,路由表中的某条路由反复消失和重现,则会消耗大量的带宽资源和CPU资源,严重时会影响到网络的正常工作。
在多数情况下,BGP协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由震荡带来的不利影响,BGP使用衰减来抑制不稳定的路由。
BGP衰减使用惩罚值来衡量一条路由的稳定性,惩罚值越高说明路由越不稳定。如图1-19所示,路由每次从可达状态变为不可达状态,或者可达路由的属性每次发生变化时,BGP给此路由增加一定的惩罚值(系统固定为1000,不可修改)。当惩罚值超过抑制阈值时,此路由被抑制,不参与路由选择。惩罚值达到设置的上限后,不再继续增加。
发生震荡的路由如果没有再次震荡,则路由的惩罚值会逐渐减少。每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值低于再使用阈值时,此路由变为可用路由,参与路由选择。
图1-19 BGP路由衰减示意图
在大规模BGP网络中,对等体的数量很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令。此时,将这些对等体加入一个对等体组,可以简化配置。
对等体组是具有某些相同属性的对等体的集合。当一个对等体加入对等体组时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。
在某些BGP网络中,对等体可能经常发生变化,导致BGP会话的建立情况也随之变化。如果采用普通对等体配置方式,则需要频繁修改设备上BGP的配置,网络管理员的维护工作量很大。配置BGP动态对等体后,设备上简单地配置一个网段地址内的邻居作为动态对等体,就可以接受来自该网段内的所有邻居的连接请求,并与其建立对等体关系,以减少维护工作量。
在大规模的网络中,如果通过地址前缀列表、ACL、AS_PATH等实现对路由的控制,不仅配置复杂,而且不方便维护。利用团体属性和扩展团体属性,可以提高路由策略配置的灵活度,简化路由策略的管理,从而降低维护管理的难度。团体属性和扩展团体属性的介绍请参见“BGP的路由属性”。
在某些特殊组网中,需要在不同AS域中的边界设备间建立EBGP对等体的全连接关系。当对等体数目很多时,全连接对网络资源和设备性能的消耗很大。
利用Route Server功能可以解决这一问题。如图1-20所示,配置一台设备作为Route Server,需要建立全连接的边界设备与Route Server建立对等体,这些边界设备将作为Route Server的客户机。Route Server设备向客户机发送路由时,不修改路由的AS_Path、Next_Hop和MED属性,使客户机之间不需要建立EBGP全连接也能学习到彼此的路由,客户机之间的流量转发也不需要经过Route Server设备。
图1-20 Route Server功能示意图
联盟(Confederation)是处理自治系统内部的IBGP网络连接激增的另一种方法,它将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系,子自治系统之间建立联盟内部EBGP连接关系。其示意图如图1-21所示。
在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整体,外界不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体的自治系统号,如上图中的AS 200就是联盟ID。
联盟的缺陷是从非联盟方案向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑也要改变。
在大型BGP网络中,路由反射器和联盟可以被同时使用。
在大规模组网中,设备需要创建大量BGP会话,并给大量的BGP对等体发送路由,对设备的打包发包性能有较高需求。
为了节省设备资源,BGP可以将所有具有共同配置的BGP对等体当做一个打包组,这样每条路由只需要被打包一次就可以被发送给打包组内的所有对等体,使得BGP打包效率获得急剧提升。而在未支持打包组特性时,每条路由都要针对每个对等体进行单独打包。例如,一台路由反射器有10个客户机,有1万条路由需要反射。未支持打包组特性时,反射器需要打包10万次;支持打包组特性后,反射器仅需要打包1万次。
目前,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”。
· MVPN
通过MP-BGP发布和维护MVPN路由信息。在组播VPN的RSVP-TE模式中,设备根据MVPN路由信息建立相容性隧道和选择性隧道,详细介绍请参见“组播配置指导”中的“组播VPN”。
· EVPN
通过MP-BGP发布和维护EVPN路由信息,以实现自动发现VTEP、自动建立和关联VXLAN隧道、通告MAC地址和ARP信息。详细介绍请参见“EVPN配置指导”中的“EVPN”。
· IPv4 Tnl-encap-ext
通过MP-BGP发布和维护IPv4 Tnl-encap-ext路由信息,IPv4 Tnl-encap-ext路由中携带的TTE信息,可以帮助建立CPE间的数据SDWAN隧道;IPv4 Tnl-encap-ext路由中携带的SaaS访问路径质量信息,可以在智能选路场景下为不同的应用选择最佳访问路径。详细介绍请参见“SDWAN配置指导”中的“SDWAN”。
路由信息中与网络层协议相关的关键信息包括路由前缀和下一跳地址。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消息后,忽略这两个属性,不把它们传递给其它邻居。
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。
MP-BGP支持IPvX(X可以为4或6)对等体之间交互IPv4和IPv6路由,即IPv4对等体之间除了交互IPv4路由以外还可以交互IPv6路由,IPv6对等体之间除了交互IPv6路由以外还可以交互IPv4路由:
· IPv6路由的下一跳为IPv4地址时,MP-BGP将此IPv4地址映射为IPv6地址封装在Update报文的Next-Hop属性中。此时,需要配置路由策略,将IPv6路由的下一跳地址修改为对端设备的IPv6地址,否则无法正常进行路由迭代。
· IPv4路由的下一跳为IPv6地址时,需要BGP会话协商支持扩展IPv6下一跳能力,将IPv4 NLRI封装在MP_REACH_NLRI属性中。此时,需要配置路由策略,将IPv4路由的下一跳地址修改为对端设备的IPv4地址,否则无法正常进行路由迭代。
图1-22 MP-BGP支持BGP IPvX会话承载IPv4和IPv6路由
以图1-22为例,Device B和Device C之间仅建立BGP IPv6会话,Device A和DeviceB、Device C和Device D之间同时建立BGP IPv4和BGP IPv6会话,Device A和Device D可以学习到对方的IPv4和IPv6路由并且两个地址族下的流量都能正常互通。当Device C收到Device B发布的IPv4路由时,下一跳为Device B的IPv6地址,需要在Device C上配置路由策略将这类路由的下一跳属性修改为Device B上出接口Port A的IPv4地址10.1.1.1/24,反之同理。
在BGP VPN网络中,BGP会话间传递的BGP路由可能属于多个VPN实例,BGP在接收路由后,将不属于本地VPN实例或属于本地其他的VPN实例的BGP路由引入到本地一个特定VPN实例的BGP路由表中的过程被称为路由互引。根据路由来源不同,路由互引可以分为本地互引和远端互引:
· 本地互引:将设备上某一个BGP-VPN实例下的BGP路由,根据RT匹配规则引入到同一设备的另一个BGP-VPN实例中。RT的匹配规则为引出路由的VPN实例的ERT需要与引入路由的VPN实例的IRT相同。
· 远端互引:设备从远端BGP对等体收到BGP路由后,根据RT匹配规则将该路由引入到本地BGP-VPN实例中,如果存在多个RT匹配的本地BGP-VPN实例,则该路由会被复制为多份同时引入到这些BGP-VPN实例中。匹配规则为收到的BGP路由携带的RT属性需要与本地VPN实例配置的IRT相同。
目前,可以实现互引的路由类型包括:
· 本地互引:BGP-VPN IPv4单播路由、BGP-VPN IPv6单播路由。
· 远端互引:BGP VPNv4路由、BGP VPNv6路由、BGP EVPN路由。
设备从远端接收到BGP VPNv4、BGP VPNv6或BGP EVPN路由后,进行远端互引的过程如图1-23所示。
一台BGP路由器上可以同时启动多个BGP进程,每个BGP进程对应一个BGP实例。BGP为不同的BGP实例维护独立的路由表。多个BGP实例的AS号可以相同,也可以不同,他们之间互相独立,互不影响。
BGP对BGP多实例具有如下要求:
· 一个BGP实例下可以创建多个公网地址族,但不同BGP实例下不能创建相同的公网地址族(IPv4单播地址族、IPv6单播地址族、VPNv4地址族、VPNv6单播地址族、VPNv4 Flowspec地址族、VPNv6 Flowspec地址族、IPv4 RT-Filter地址族以及IPv6 SR Policy地址族除外)。
· 一个BGP实例下可以创建多个VPN实例,每个VPN实例下可以创建多个地址族,但不同BGP实例下不能创建相同的VPN实例。
· 不能通过公网内的不同BGP实例与相同地址的对等体建立BGP会话。
· IPv4组播与IPv6组播地址族同时配置时,只能配置在一个BGP实例下。
· 不同BGP实例对应的AS号可以相同,不同BGP实例的实例名称不能相同。
如图1-24所示,三台设备都属于AS 100,但是需要实现Device B和Device C之间的业务隔离,仅允许它们与Device A进行互通,则可以Device A上同时创建两个BGP实例,使用default实例和Device B建立BGP会话,使用abc实例和Device C建立会话。这样虽然Device A能够同时学习到Device B和Device C的路由,但是由于两个BGP实例相互独立,Device B和Device C无法互相学习路由,以实现业务隔离。
图1-24 BGP多进程实现业务隔离组网图
·
设备为BGP定义了多种视图,分别用来管理不同BGP实例、不同地址族及不同VPN实例的路由信息。BGP支持VPN多实例,可以为不同的VPN实例维护独立的路由表。
大多数BGP配置命令可以在多个视图下执行,不同视图下命令的作用范围有所不同,详细介绍如表1-8所示。
如果某条命令仅支持BGP实例视图,则表明其生效范围包含该BGP实例下的公网和所有VPN实例。
如果某条命令同时支持BGP实例视图和BGP-VPN实例视图,则:
· 在BGP实例视图下,该命令仅对该BGP实例的公网生效。
· 在BGP-VPN实例视图下,该命令仅对该BGP-VPN实例关联的VPN实例生效。
表1-8 BGP相关视图介绍
视图名称 |
进入视图方法 |
说明 |
BGP实例视图 |
执行bgp命令时,可以通过instance参数指定BGP实例名称,以便进入指定BGP实例的视图,该视图下有些配置对指定BGP实例的公网和所有VPN实例内所有地址族的路由和对等体生效(如联盟、GR、日志功能的配置等),有些配置只对指定BGP实例的公网内所有地址族的路由和对等体生效 |
|
BGP IPv4单播地址族视图 |
该视图下的配置对指定BGP实例的公网内的IPv4单播路由和对等体生效 |
|
BGP IPv6单播地址族视图 |
该视图下的配置对指定BGP实例的公网内的IPv6单播路由和对等体生效 |
|
BGP IPv4组播地址族视图 |
该视图下的配置对指定BGP实例的IPv4组播路由和对等体生效 |
|
BGP IPv6组播地址族视图 |
该视图下的配置对指定BGP实例的IPv6组播路由和对等体生效 |
|
BGP VPNv4地址族视图 |
该视图下的配置对指定BGP实例的VPNv4路由和对等体生效 BGP VPNv4地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP VPNv6地址族视图 |
该视图下的配置对指定BGP实例的VPNv6路由和对等体生效 BGP VPNv6地址族视图的配置请参见“MPLS配置指导”中的“IPv6 MPLS L3VPN” |
|
BGP L2VPN地址族视图 |
该视图下的配置对指定BGP实例的L2VPN对等体和L2VPN信息生效 BGP L2VPN地址族视图的配置请参见“MPLS配置指导”中的“MPLS L2VPN”和“VPLS” |
|
BGP EVPN地址族视图 |
该视图下的配置对指定BGP实例的EVPN路由和对等体生效 BGP EVPN地址族的配置请参见“EVPN配置指导”中的“EVPN” |
|
BGP-VPN实例视图 |
该视图下的配置对指定BGP实例的指定VPN实例内所有地址族的路由和对等体生效 VPN实例的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP-VPN IPv4单播地址族视图 |
该视图下的配置对指定BGP实例的指定VPN实例内的IPv4单播路由和对等体生效 VPN实例的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP-VPN IPv6单播地址族视图 |
该视图下的配置对指定BGP实例的指定VPN实例内的IPv6单播路由和对等体生效 VPN实例的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP-VPN VPNv4地址族视图 |
该视图下的配置对指定BGP实例的指定VPN实例内的VPNv4路由和对等体生效 BGP-VPN VPNv4地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP MDT地址族视图 |
该视图下的配置对指定BGP实例的MDT路由和对等体生效 BGP MDT地址族的配置请参见“IP组播配置指导”中的“组播VPN” |
|
BGP IPv4 MVPN地址族视图 |
该视图下的配置对指定BGP实例的MVPN路由和对等体生效 BGP IPv4 MVPN地址族的配置请参见“组播配置指导”中的“组播VPN” |
|
BGP LS地址族视图 |
该视图下的配置对指定BGP实例的LS信息和对等体生效 |
|
BGP IPv4 RT-Filter地址族视图 |
该视图下的配置对指定BGP实例的IPv4 RT-Filter路由和对等体生效 BGP IPv4 RT-Filter地址族视图的配置请参见“MPLS配置指导”中的“MPLS L3VPN” |
|
BGP IPv6 SR Policy地址族 |
该视图下的配置对BGP IPv6 SR Policy地址族的路由和对等体生效 BGP IPv6 SR Policy地址族视图的配置请参见“Segment Routing配置指导”中的“SRv6 TE Policy” |
|
BGP IPv4 tnl-encap-ext地址族视图 |
该视图下的配置对指定BGP实例的IPv4 Tnl-Encap-Ext路由和对等体生效 BGP IPv4 Tnl-Encap-Ext地址族视图的配置请参见“SDWAN配置指导”中的“SDWAN” |
|
BGP IPv4 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的IPv4 Flowspec路由和对等体生效 BGP IPv4 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
|
BGP-VPN IPv4 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的指定VPN实例内的IPv4 Flowspec路由和对等体生效 BGP-VPN IPv4 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
|
BGP IPv6 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的IPv6 Flowspec路由和对等体生效 BGP IPv6 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
|
BGP-VPN IPv6 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的指定VPN实例内的IPv6 Flowspec路由和对等体生效 BGP-VPN IPv6 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
|
BGP VPNv4 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的VPNv4 Flowspec路由和对等体生效 BGP VPNv4 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
|
BGP VPNv6 Flowspec地址族视图 |
该视图下的配置对指定BGP实例的VPNv6 Flowspec路由和对等体生效 BGP VPNv6 Flowspec地址族视图的配置请参见“ACL和QoS配置指导”中的“Flowspec” |
BGP一键诊断功能用于诊断BGP模块的功能是否运行正常,帮助用户定位如BGP会话无法建立或断开等功能异常的原因。关于BGP一键诊断功能的详细描述和配置请参见“智能运维配置指导”中的“一键诊断”。
与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 4364:BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4382:MPLS/BGP Layer 3 Virtual Private Network (VPN) Management
· 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 4659:BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN
· RFC 4684:Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)
· RFC 4724:Graceful Restart Mechanism for BGP
· RFC 4760:Multiprotocol Extensions for BGP-4
· RFC 4781:Graceful Restart Mechanism for BGP with MPLS
· RFC 5004:Avoid BGP Best Path Transitions from One External to Another
· RFC 5065:Autonomous System Confederations for BGP
· RFC 5082:The Generalized TTL Security Mechanism (GTSM)
· RFC 5291:Outbound Route Filtering Capability for BGP-4
· RFC 5292:Address-Prefix-Based Outbound Route Filter for BGP-4
· RFC 5492:Capabilities Advertisement with BGP-4
· RFC 5549:Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop
· RFC 5668:4-Octet AS Specific BGP Extended Community
· RFC 6037:Cisco Systems' Solution for Multicast in BGP MPLS IP VPNs
· RFC 6198:Requirements for the Graceful Shutdown of BGP Sessions
· RFC 6368:Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP
· RFC 6513:Multicast in MPLS/BGP IP VPNs
· RFC 6514:BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs
· RFC 6515:IPv4 and IPv6 Infrastructure Addresses in BGP Updates for Multicast VPN
· RFC 6624:Layer 2 Virtual Private Networks Using BGP for Auto-Discovery and Signaling
· RFC 6793:BGP Support for Four-Octet Autonomous System (AS) Number Space
· RFC 7432:BGP MPLS-Based Ethernet VPN
· RFC 7752:North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP
· RFC 7854:BGP Monitoring Protocol (BMP)
· RFC 7911:Advertisement of Multiple Paths in BGP
RFC 7947:Internet Exchange BGP Route Server
·
通过安装License,可以增加处于Established状态的BGP对等体的最大数目,也可以增加设备支持的BGP路由数目。有关License的详细介绍,请参见“基础配置指导”中的“License管理”。
IPv4单播/IPv4组播的BGP配置任务如下:
(1) 配置BGP基本功能
a. 启动BGP
b. 手工创建BGP对等体
c. 动态创建BGP对等体
d. 配置IBGP对等体组
在大规模的BGP网络中可通过配置BGP对等体组简化配置。
e. 配置EBGP对等体组
在大规模的BGP网络中可通过配置BGP对等体组简化配置。
f. (可选)配置建立TCP连接使用的源地址
g. (可选)配置对于指定对等体/对等体组,本地设备仅主动发送连接请求或仅侦听连接请求
(2) 生成BGP路由信息
请至少选择其中一项任务进行配置:
¡ (可选)配置BGP引入公网或VPN实例下的路由
¡ (可选)配置指定VPN实例或公网实例的BGP单播路由引入功能
¡ (可选)配置BGP路由聚合
¡ (可选)配置向对等体/对等体组发送缺省路由
(3) (可选)控制BGP路由信息的发布
IPv4组播不支持配置发布IP路由表中的最优路由。
(4) (可选)配置BGP Update消息发送参数
(5) (可选)控制BGP路由信息的接收
¡ 配置SoO属性
(6) (可选)配置BGP定时器
(7) (可选)配置BGP日志和告警功能
IPv6单播/IPv6组播的BGP配置任务如下:
(1) 配置BGP基本功能
a. 启动BGP
b. 手工创建BGP对等体
c. 动态创建BGP对等体
d. 配置IBGP对等体组
在大规模的BGP网络中可通过配置BGP对等体组简化配置。
e. 配置EBGP对等体组
在大规模的BGP网络中可通过配置BGP对等体组简化配置。
f. (可选)配置建立TCP连接使用的源地址
g. (可选)配置对于指定对等体/对等体组,本地设备仅主动发送连接请求或仅侦听连接请求
(2) 生成BGP路由信息
请至少选择其中一项任务进行配置:
¡ (可选)配置指定VPN实例或公网实例的BGP单播路由引入功能
¡ (可选)配置BGP路由聚合
¡ (可选)配置向对等体/对等体组发送缺省路由
(3) (可选)控制BGP路由信息的发布
IPv6组播不支持配置发布IP路由表中的最优路由。
(4) (可选)配置BGP Update消息发送参数
(5) (可选)控制BGP路由信息的接收
¡ 配置SoO属性
(6) (可选)配置BGP定时器
(7) (可选)配置BGP日志和告警功能
如果要在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。
(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。
(5) (可选)进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
进入BGP-VPN实例视图时,指定的VPN实例必须已经创建,且VPN实例内必须配置RD(Route Distinguisher,路由标识符)。
(6) (可选)为指定的VPN实例配置路由器的Router ID。
router-id { router-id | auto-select }
缺省情况下,未配置BGP路由器在VPN实例内的Router ID。
如果在BGP实例视图下执行了router-id命令,则BGP路由器在VPN实例内的Router ID为该命令配置的Router ID;否则,为系统视图下由router id命令配置的全局Router ID。
创建IPv6对等体时,设备支持以下三种配置方式:
· 指定对等体的全球单播地址。
· 指定对等体的链路本地地址。当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,配置时若未通过interface interface-type interface-number指定与对等体相连的接口则还必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。
· 指定与对等体相连的接口。采用此方式时,设备使用指定接口学习到的ND表项中的链路本地地址作为对等体的地址。ND表项中接口对应多个链路本地地址时,将分别以各链路本地地址作为对等体的地址创建对等体。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv4 BGP对等体,并指定对等体的AS号。
peer ipv4-address as-number as-number
(4) (可选)配置对等体的描述信息。
peer ipv4-address description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv4单播路由信息。
peer ipv4-address enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv4 BGP对等体,并指定对等体的AS号。
peer ipv4-address as-number as-number
(4) (可选)配置对等体的描述信息。
peer ipv4-address description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv6单播路由信息。
peer ipv4-address enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(7) 为IPv4对等体设置基于路由策略的路由修改下一跳策略。
peer ipv4-address route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP对等体,并指定对等体的AS号。
peer ipv6-address as-number as-number
(4) (可选)配置对等体的描述信息。
peer ipv6-address description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv6单播路由信息。
peer ipv6-address enable
缺省情况下,本地路由器不能与对等体/对等体组交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP对等体,并指定对等体的AS号。
interface-peer interface-type interface-number as-number as-number
(4) (可选)配置对等体的描述信息。
interface-peer interface-type interface-number description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv6单播路由信息。
interface-peer interface-type interface-number enable
缺省情况下,本地路由器不能与对等体/对等体组交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP对等体,并指定对等体的AS号。
peer ipv6-address as-number as-number
(4) (可选)配置对等体的描述信息。
peer ipv6-address description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv4单播路由信息。
peer ipv6-address enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(7) 为IPv6对等体设置基于路由策略的路由修改下一跳策略。
peer ipv6-address route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP对等体,并指定对等体的AS号。
interface-peer interface-type interface-number as-number as-number
(4) (可选)配置对等体的描述信息。
interface-peer interface-type interface-number description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv4单播路由信息。
interface-peer interface-type interface-number enable
缺省情况下,本地路由器不能与对等体/对等体组交换IPv4单播路由信息。
(7) 为IPv6对等体设置基于路由策略的路由修改下一跳策略。
interface-peer interface-type interface-number route-policy route-policy-name import
(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组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(6) 允许本地路由器与指定对等体交换用于RPF检查的IPv4单播路由信息。
peer ipv4-address enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv4单播路由信息。
(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组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(6) 允许本地路由器与指定对等体交换用于RPF检查的IPv6单播路由信息。
peer ipv6-address enable
缺省情况下,本地路由器不能与对等体/对等体组交换用于RPF检查的IPv6单播路由信息。
设备需要和大量的邻居建立对等体关系时,如果逐个配置对等体关系,则配置工作量大,新增或者删除对等体的维护、升级工作难度较大,且容易出错。
如果设备的邻居位于同一个网段内,则可以通过BGP动态对等体功能简化配置。在设备上简单地配置一个网段地址内的邻居作为动态对等体,就可以接受来自该网段内的所有邻居的连接请求,并与其建立对等体关系。只有当邻居发起连接请求时,本地才会维护与该邻居的对等体关系;否则,不维护对等体关系。BGP动态对等体功能既简化了配置,又大大降低了维护和升级成本。
配置动态对等体时,设备和邻居只能有一端配置网段地址,另一端必须配置实际IP地址。
当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,配置时若未通过interface interface-type interface-number指定与对等体相连的接口则还必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。
如果本地设备已经通过网段匹配成功与某一IP地址建立了动态对等体,则不允许再为该IP地址创建静态对等体。如需创建特定IP地址的静态对等体,而该IP地址恰好处于某个动态对等体的网段内,则需要先创建静态对等体,再创建动态对等体。例如,如果先创建了网段为10.1.1.0/24的动态对等体,并通过此配置成功与10.1.1.1建立BGP连接,则无法再创建IP地址为10.1.1.1的静态对等体。反之,如果先创建IP地址为10.1.1.1的静态对等体,然后再创建网段为10.1.1.0/24的动态对等体,则没有限制。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv4 BGP动态对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv4-address mask-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv4-address mask-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv4-address mask-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置对等体的描述信息。
peer ipv4-address mask-length description text
缺省情况下,动态对等体没有描述信息。
(5) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(6) 允许本地路由器与指定动态对等体交换IPv4单播路由信息。
peer ipv4-address mask-length enable
缺省情况下,本地路由器不能与动态对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv4 BGP动态对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv4-address mask-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv4-address mask-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv4-address mask-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置对等体的描述信息。
peer ipv4-address mask-length description text
缺省情况下,动态对等体没有描述信息。
(5) 创建BGP IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv6单播路由信息。
peer ipv4-address mask-length enable
缺省情况下,本地路由器不能与动态对等体交换IPv6单播路由信息。
(7) 为BGP IPv4动态对等体设置基于路由策略的路由修改下一跳策略。
peer ipv4-address mask-length route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP动态对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv6-address prefix-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv6-address prefix-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv6-address prefix-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置动态对等体的描述信息。
peer ipv6-address prefix-length description text
缺省情况下,动态对等体没有描述信息。
(5) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(6) 允许本地路由器与指定动态对等体交换IPv6单播路由信息。
peer ipv6-address prefix-length enable
缺省情况下,本地路由器不能与动态对等体交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IPv6 BGP动态对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv6-address prefix-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv6-address prefix-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv6-address prefix-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置动态对等体的描述信息。
peer ipv6-address prefix-length description text
缺省情况下,动态对等体没有描述信息。
(5) 创建BGP IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(6) 允许本地路由器与指定对等体交换IPv4单播路由信息。
peer ipv6-address prefix-length enable
缺省情况下,本地路由器不能与动态对等体交换IPv4单播路由信息。
(7) 为BGP IPv6动态对等体设置基于路由策略的路由修改下一跳策略。
peer ipv6-address mask-length route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建IPv4 BGP动态对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv4-address mask-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv4-address mask-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv4-address mask-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置动态对等体的描述信息。
peer ipv4-address mask-length description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv4组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(6) 允许本地路由器与指定动态对等体交换用于RPF检查的IPv4单播路由信息。
peer ipv4-address mask-length enable
缺省情况下,本地路由器不能与动态对等体交换用于RPF检查的IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建IPv6 BGP动态对等体,并指定动态对等体的AS号。请选择其中一项进行配置。
¡ 为动态对等体指定单个AS号。
peer ipv6-address prefix-length as-number as-number
¡ 为动态对等体指定AS号,可以指定多个AS号。
peer ipv6-address prefix-length listen-as as-number-list
¡ 为动态对等体指定AS号范围段。
peer ipv6-address prefix-length listen-as-segment begin-as as-number end-as as-number
(4) (可选)配置动态对等体的描述信息。
peer ipv6-address prefix-length description text
缺省情况下,对等体没有描述信息。
(5) 创建BGP IPv6组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(6) 允许本地路由器与指定动态对等体交换用于RPF检查的IPv6单播路由信息。
peer ipv6-address prefix-length enable
缺省情况下,本地路由器不能与动态对等体/对等体组交换用于RPF检查的IPv6单播路由信息。
IBGP对等体组是指对等体组中的对等体与当前路由器位于同一AS。
创建IBGP对等体组后,系统在将对等体加入IBGP对等体组时,会自动在BGP实例视图下创建该对等体,并设置其AS号为本地AS号。
当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,配置时若未通过interface interface-type interface-number指定与对等体相连的接口则还必须通过peer connect-interface命令将本地直连出接口指定为建立TCP连接使用的源接口。
如果分别对对等体组和对等体组中的对等体进行了某项BGP配置,则以最后一次配置为准。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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 IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
(7) peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(8) 为BGP IPv4对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(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组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(7) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IBGP对等体组。
group group-name [ internal ]
(4) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer { ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } group group-name [ as-number as-number ]
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和本地的AS号一致。
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建IBGP对等体组。
group group-name [ internal ]
(4) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number 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单播路由信息。
(8) 为BGP IPv6对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(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组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(7) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv6单播路由信息。
EBGP对等体组是指对等体组中的对等体与当前路由器位于不同AS。
根据对等体组中的对等体是否属于同一个外部AS,EBGP对等体组又可以分为纯EBGP对等体组和混合EBGP对等体组。如果对等体组中的对等体属于同一个外部AS,该对等体组就是纯EBGP对等体组;如果对等体组中的对等体属于不同外部AS,该对等体组就是混合EBGP对等体组。
可以通过peer listen-as和peer listen-as-segment命令为EBGP对等体组中的动态对等体指定多个AS号,指定对等体组中的动态对等体只要属于上述命令指定的AS号范围中的任意AS,本端就可以接受其连接请求,并与其建立对等体关系。
用户有三种方式配置EBGP对等体组:
· 第一种方式是创建对等体组后,先指定对等体组的AS号,再将对等体加入到对等体组中,该方式下加入的对等体具有相同的AS号,均为对等体组的AS号。对等体加入对等体组之前可以配置AS号,且为对等体配置的AS号必须与对等体组的AS号相同。
· 第二种方式是创建对等体组后,先配置对等体的AS号,再将对等体加入对等体组中。该方式下,对等体组中对等体的AS号可以相同也可以不同。
· 第三种方式是创建对等体组后,将对等体加入对等体组的同时指定AS号。该方式下,对等体组中对等体的AS号可以相同也可以不同。
如果分别对对等体组和对等体组中的对等体进行了某项BGP配置,则以最后一次配置为准。
peer listen-as和peer listen-as-segment命令仅对等体组中的动态对等体生效,对非动态对等体不生效。
删除为对等体组指定的所有AS号范围后,加入该对等体组的动态邻居也会被删除。
如果已经通过peer listen-as或peer listen-as-segment命令为BGP对等体组指定了AS号,则该对等体组只允许动态对等体加入。如果未对BGP对等体组指定任何AS号,则如果该对等体组内已经有对等体加入,就不允许再通过peer listen-as或peer listen-as-segment命令为该对等体组指定AS号;只有该对等体组内尚未加入对等体时,才能通过peer listen-as或peer listen-as-segment命令为该对等体组指定AS号。
peer listen-as、peer as-number以及peer listen-as-segment命令互斥,请不要同时配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv4 BGP对等体,并指定对等体的AS号。
peer ipv4-address [ mask-length ] as-number as-number
(5) 向对等体组中添加指定的IPv4 BGP对等体。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv4-address [ mask-length ] as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的对等体。
peer ipv4-address [ mask-length ] group group-name as-number as-number
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv4单播地址族或BGP-VPN IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(9) 为BGP IPv4对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv4 BGP对等体,并指定对等体的AS号。
peer ipv4-address [ mask-length ] as-number as-number
(5) 向对等体组中添加指定的IPv4 BGP对等体。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv4-address [ mask-length ] as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(9) 为BGP IPv4对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的对等体。
peer ipv4-address [ mask-length ] group group-name as-number as-number
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(8) 为BGP IPv4对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(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参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(8) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv4 BGP对等体,并指定对等体的AS号。
peer ipv4-address [ mask-length ] as-number as-number
(5) 向对等体组中添加指定的IPv4 BGP对等体。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv4-address [ mask-length ] as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(8) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的对等体。
peer ipv4-address [ mask-length ] group group-name as-number as-number
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv4组播地址族,并进入BGP IPv4组播地址族视图。
address-family ipv4 multicast
(7) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv4单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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 ] | link-local-address interface interface-type interface-number } group group-name [ as-number as-number ]
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv6 BGP对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer { ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } as-number as-number
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number as-number as-number
(5) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer { ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv6-address [ prefix-length ] as-number as-number命令中配置的一致。
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中的所有已与本地设备建立BGP会话的链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和interface-peer interface-type interface-number as-number as-number命令中配置的一致。
此步骤中选择的方式需跟第四步一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer { ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } group group-name as-number as-number
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv6单播地址族或BGP-VPN IPv6单播地址族,并进入相应地址族视图。
address-family ipv6 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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 ]
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 为BGP IPv6对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv6 BGP对等体,并指定对等体的AS号。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer ipv6-address [ prefix-length ] as-number as-number
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number as-number as-number
(5) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv6-address [ prefix-length ] as-number as-number命令中配置的一致。
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中的所有已与本地设备建立BGP会话的链路本地地址。
interface-peer interface-type interface-number group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和interface-peer interface-type interface-number as-number as-number命令中配置的一致。
此步骤中选择的方式需跟第四步一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(8) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(9) 为BGP IPv6对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的IPv6 BGP对等体。请选择其中一项进行配置。
¡ 指定对等体地址配置方式。
peer ipv6-address [ prefix-length ] group group-name as-number as-number
¡ 指定与对等体相连的接口配置方式。对等体地址为接口学习到的ND表项中链路本地地址。
interface-peer interface-type interface-number group group-name as-number as-number
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv4单播地址族,并进入相应地址族视图。
address-family ipv4 [ unicast ]
(7) 允许本地路由器与指定对等体组中的对等体交换IPv4单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换IPv4单播路由信息。
(8) 为BGP IPv6对等体组设置基于路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(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参数可选可不选,如果选择则必须和peer group-name as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(8) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建EBGP对等体组。
group group-name external
(4) 创建IPv6 BGP对等体,并指定对等体的AS号。
peer ipv6-address [ prefix-length ] as-number as-number
(5) 向对等体组中添加指定的IPv6 BGP对等体。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number参数可选可不选,如果选择则必须和peer ipv6-address [ prefix-length ] as-number as-number命令中配置的一致。
(6) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(7) 创建BGP IPv6组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(8) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建EBGP对等体组。
group group-name external
(4) 向对等体组中添加指定的IPv6 BGP对等体。
peer ipv6-address [ prefix-length ] group group-name as-number as-number
(5) (可选)配置对等体组的描述信息。
peer group-name description text
缺省情况下,对等体组没有描述信息。
(6) 创建BGP IPv6组播地址族,并进入BGP IPv6组播地址族视图。
address-family ipv6 multicast
(7) 允许本地路由器与指定对等体组中的对等体交换用于RPF检查的IPv6单播路由信息。
peer group-name enable
缺省情况下,本地路由器不能与对等体交换用于RPF检查的IPv6单播路由信息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建EBGP对等体组。
group group-name external
(4) 为EBGP对等体组中的动态对等体指定AS号,请选择其中一项进行配置。
¡ 指定确定的AS号,可以指定多个AS号。
peer group-name listen-as as-number-list
¡ 指定AS号范围段。
peer group-name listen-as-segment begin-as as-number end-as as-number
(5) 向EBGP对等体组中添加动态对等体。
peer { ipv4-address mask-length | ipv6-address prefix-length } group group-name
(6) 创建BGP IPv4单播地址族、BGP IPv6单播地址族、BGP IPv4组播地址族或BGP IPv6组播地址族,并进入相应地址族视图。
¡ 创建并进入BGP IPv4单播地址族。
address-family ipv4 [ unicast ]
¡ 创建并进入BGP IPv6单播地址族。
address-family ipv6 [ unicast ]
¡ 创建并进入BGP IPv4组播地址族。
address-family ipv4 multicast
¡ 创建并进入BGP IPv6组播地址族。
address-family ipv6 multicast
(7) 允许本地路由器与指定对等体组中的动态对等体交换路由信息。
peer group-name enable
BGP使用TCP作为其传输层协议。在如下场合需要通过本配置指定建立TCP连接使用的源地址或源接口(即采用指定源接口的IP地址/IPv6地址与对等体/对等体组建立TCP连接):
· 当指定对等体的IP地址/IPv6地址不是本地路由器与对等体之间直连接口的IP地址/IPv6地址时,需要在对等体上通过本配置指定建立TCP连接的源接口为对等体IP地址/IPv6地址所在的接口或者指定TCP连接的源地址为对等体IP地址/IPv6地址。
· 当通过IPv6链路本地地址创建对等体或向对等体组中添加指定的对等体时,必须使用直连接口建立对等关系,配置时若未通过interface interface-type interface-number指定与对等体相连的接口则还必须通过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连接源地址。
对于IBGP邻居,如果通过peer connect-interface命令指定的接口为物理接口,则当该接口发生故障、链路状态变为down时,IBGP邻居关系会立即断开,从而加快路由收敛。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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连接。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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连接。
当网络管理员希望BGP连接的建立可控时,可以使用本命令。例如,在一个BGP连接中,一个节点可能需要被配置为仅侦听连接请求而不主动发起(listen-only),而另一个节点则被配置为仅主动发起连接请求而不侦听(connect-only)。
请确保两端对等体不会被同时配置为listen-only或connect-only,这样会导致它们无法建立连接。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置对于指定对等体/对等体组,本地设备仅主动发送连接请求或仅侦听连接请求。
peer { group-name | ipv4-address | ipv6-address } { connect-only | listen-only }
缺省情况下,本地设备既侦听连接请求,又主动发送连接请求。
通过本配置可以将本地路由表中指定网段的路由添加到BGP路由表中,以便通过BGP发布该网段路由。通过该种方式发布的路由的ORIGIN属性为IGP。网络管理员还可以通过使用路由策略更为灵活地控制所发布的路由。
本配置中指定的网段路由必须存在于本地的IP路由表中,且处于Active状态,否则无法将该网段路由添加到BGP路由表中。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP发布的本地网段路由。
network ipv4-address [ mask-length | mask ] [ route-policy route-policy-name ]
缺省情况下,BGP不发布本地的网段路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP发布的本地网段路由。
network ipv6-address prefix-length [ route-policy route-policy-name ]
缺省情况下,BGP不发布本地的网段路由。
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路由命令参考”中的“IP路由基础”。
针对同一协议进程重复执行import-route命令引入路由时,最后一次执行的命令生效。若要引入同一协议进程时不覆盖已存在配置,则可以通过import-route-append命令附加引入IGP路由。针对同一协议进程同时配置import-route与import-route-append命令时:
· 通过任意一条命令中路由策略过滤的路由将被引入到BGP路由表中,若引入的路由同时通过了两条命令中路由策略的过滤,则在被引入到BGP路由表中时,两条命令指定的路由策略包含的Apply子句在不冲突的情况下同时生效,否则仅import-route-append命令指定的路由策略中的Apply子句生效。
· 如果均指定了引入路由的MED度量值,以import-route-append命令的配置为准。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 将IGP路由协议的路由信息引入到BGP路由表中。
¡ 引入IS-IS、OSPF、RIP协议的路由。
import-route { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直连或静态路由。
import-route { direct | static } [ med med-value | route-policy route-policy-name ] *
¡ 引入EIGRP协议的路由。
import-route eigrp [ { eigrp-as | all-as } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不会引入IGP路由协议的路由信息。
(4) (可选)以附加的方式将IGP路由协议的路由信息引入到BGP路由表中。
¡ 引入IS-IS、OSPF、RIP协议的路由。
import-route-append { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直连或静态路由。
import-route-append { direct | static } [ med med-value | route-policy route-policy-name ] *
¡ 引入EIGRP协议的路由。
import-route-append eigrp [ { eigrp-as | all-as } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
缺省情况下,BGP不会引入IGP路由协议的路由信息。
(5) (可选)引入所有目的地址相同的路由。
import-route multipath
BGP IPv4组播地址族视图不支持本命令。
缺省情况下,BGP仅引入最优路由到BGP路由表中。
本命令仅对同一地址族下配置import-route命令后引入的路由生效。
(6) (可选)允许将缺省路由引入到BGP路由表中。
default-route imported
缺省情况下,BGP不允许将缺省路由引入到BGP路由表中。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 将IGP路由协议的路由信息引入到IPv6 BGP路由表中。
¡ 引入IS-ISv6、OSPFv3、RIPng协议的路由。
import-route { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直连或静态路由。
import-route { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情况下,BGP不会引入IGP路由协议的路由信息。
(4) (可选)以附加的方式将IGP路由协议的路由信息引入到BGP路由表中。
¡ 引入IS-ISv6、OSPFv3、RIPng协议的路由。
import-route-append { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直连或静态路由。
import-route-append { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情况下,BGP不会引入IGP路由协议的路由信息。
(5) (可选)引入所有目的地址相同的路由。
import-route multipath
BGP IPv6组播地址族视图不支持本命令。
缺省情况下,BGP仅引入最优路由到BGP路由表中。
本命令仅对同一地址族下配置import-route命令后引入的路由生效。
(6) (可选)允许将缺省路由引入到IPv6 BGP路由表中。
default-route imported
缺省情况下,BGP不允许将缺省路由引入到IPv6 BGP路由表中。
通过本配置可以将公网或VPN实例发布的本地网段路由添加到BGP路由表中,以便通过BGP发布该网段路由。通过该种方式发布的路由的ORIGIN属性为IGP。
本配置中network命令指定的网段路由必须存在于公网或VPN实例的路由表中,且处于Active状态,BGP协议才能通过import-route local-aggregate命令引入该路由,并对外发布。
(1) 进入系统视图。
system-view
(2) 进入公网实例IPv4地址族视图或VPN实例IPv4地址族视图。
¡ 请依次执行以下命令进入公网实例IPv4地址族视图。
ip public-instance
address-family ipv4
¡ 请依次执行以下命令进入VPN实例IPv4地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4
(3) 配置公网或VPN实例发布的本地网段路由。
network ipv4-address [ mask-length | mask ]
缺省情况下,公网或者VPN实例不发布本地的网段路由。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(4) 依次执行以下命令退回系统视图。
a. quit
b. quit
(5) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(6) 配置BGP引入公网或者VPN实例发布的本地网段路由。
import-route local-aggregate [ route-policy route-policy-name ]
缺省情况下,BGP不会引入公网或VPN实例发布的本地网段路由。
通过配置本功能,可以实现公网实例与VPN实例之间,以及不同VPN实例之间的BGP单播路由的互引,从而使不同的VPN站点间的用户可以进行互访或访问公网。
配置import-rib命令后,即可以将指定VPN实例或公网实例对应的BGP单播地址族下的路由引用到当前地址族中,而不需要指定的VPN实例或公网实例的Route Target属性与当前地址族所属的VPN实例或公网实例相匹配。
配置本功能时如果通过ACL过滤引入的路由,则ACL规则中的源IPv4地址用于匹配BGP路由的目的地址,ACL中的其它的匹配规则不生效。如果引用的ACL中无匹配源IPv4地址的规则,则表示不对引入的路由进行过滤。
在当前地址族中引入其他VPN实例或公网实例的BGP单播路由时,需要该VPN实例或公网实例已经创建单播地址族,否则本功能无法配置。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置指定VPN实例或公网实例的BGP单播路由引入功能。
import-rib { public | vpn-instance vpn-instance-name } [ valid-route ] [ route-policy route-policy-name | filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list ipv4-prefix-list-name } ]
缺省情况下,公网实例与VPN实例之间的BGP单播路由无法互引,Route Target属性匹配的不同VPN实例之间的BGP单播路由可以互引。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置指定VPN实例或公网实例的BGP单播路由引入功能。
import-rib { public | vpn-instance vpn-instance-name } [ valid-route ] [ route-policy route-policy-name | filter-policy { acl6-number | name acl6-name | prefix-list ipv6-prefix-list-name } ]
缺省情况下,公网实例与VPN实例之间的BGP单播路由无法互引,Route Target属性匹配的不同VPN实例之间的BGP单播路由可以互引。
在中型或大型BGP网络中,在向对等体发布路由信息时,可以配置路由聚合,减少发布的路由数量,并减小路由表的规模。IPv4 BGP支持自动聚合和手动聚合两种聚合方式,同时配置时,手动聚合的优先级高于自动聚合的优先级。IPv6 BGP只支持手动聚合。
配置自动聚合功能后,BGP将对通过import-route命令引入的IGP子网路由进行聚合,不再发布子网路由,而是发布聚合的自然网段的路由。
自动聚合是按照自然网段进行聚合,而且只能对IGP引入的子网路由进行聚合。通过配置手动聚合,用户可以同时对从IGP路由协议引入的子网路由和用network命令发布的路由进行聚合,而且还可以根据需要定义聚合路由的子网掩码长度。
BGP路由表中创建的聚合路由的出接口为Null0接口,聚合后可以减少向BGP对等体发布的路由数目。在使用中应注意不要使这条聚合路由成为本设备的优选路由,否则会导致报文转发失败。如果聚合路由的子网掩码长度和被聚合的某一条具体路由完全相同,且聚合路由优先级高于具体路由,则聚合路由会成为优选路由,这种情况下需要通过修改路由优先级等方式,来确保优选的路由为具体路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置对引入的子网路由进行自动聚合。
summary automatic
缺省情况下,不对引入的子网路由进行自动聚合。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 在BGP路由表中创建一条聚合路由。
aggregate ipv4-address { mask-length | mask } [ as-set | attribute-policy route-policy-name | detail-suppressed | origin-policy route-policy-name | suppress-policy route-policy-name ] *
缺省情况下,未配置聚合路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 在IPv6 BGP路由表中创建一条聚合路由。
aggregate ipv6-address prefix-length [ as-set | attribute-policy route-policy-name | detail-suppressed | origin-policy route-policy-name | suppress-policy route-policy-name ] *
缺省情况下,未配置聚合路由。
执行本配置后,设备将向指定对等体/对等体组发布一条下一跳地址为本地地址的缺省路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 向对等体/对等体组发送缺省路由。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } default-route-advertise [ route-policy route-policy-name ] [ conditional-policy route-policy-name ]
interface-peer interface-type interface-number default-route-advertise [ route-policy route-policy-name ]
缺省情况下,不向对等体/对等体组发送缺省路由。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 向对等体/对等体组发送缺省路由。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } default-route-advertise [ route-policy route-policy-name ] [ conditional-policy route-policy-name ]
interface-peer interface-type interface-number default-route-advertise [ route-policy route-policy-name ]
缺省情况下,不向对等体/对等体组发送缺省路由。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
指定conditional-policy route-policy-name参数时,不允许同时指定link-local-address interface interface-type interface-number参数。
缺省情况下,BGP发布BGP路由表中的最优路由,不管该路由在IP路由表中是否为最优路由。通过本配置可以保证BGP发送出去的路由是IP路由表中的最优路由,以减少BGP发送的路由数量。
以下路由不受advertise-rib-active命令的影响:
· 通过import-route命令引入的路由
· 通过network命令发布的路由
· 通过default-route imported引入的缺省路由
· VPNv4的路由
· VPNv6的路由
· IPv4组播路由
· IPv6组播路由
· 通过advertise srv6 locator命令发布的Locator网段路由
advertise-rib-active命令只对配置改变后生成的路由生效。若想对配置改变前生成的路由生效,则需要通过reset bgp命令复位BGP会话。
BGP实例视图和BGP单播地址族视图下的配置不同时,以BGP单播地址族视图下的配置为准。
advertise-rib-active命令与routing-table bgp-rib-only命令互斥。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局配置发布IP路由表中的最优路由。
advertise-rib-active
缺省情况下,BGP发布BGP路由表中的最优路由。
(4) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请执行以下命令进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(5) 在指定地址族视图下,配置发布IP路由表中的最优路由。
advertise-rib-active
缺省情况下,与BGP实例视图下的配置保持一致。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局配置发布IPv6路由表中的最优路由。
advertise-rib-active
缺省情况下,BGP发布BGP路由表中的最优路由。
(4) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(5) 在指定地址族视图下,配置发布IPv6路由表中的最优路由。
advertise-rib-active
缺省情况下,与BGP实例视图下的配置保持一致。
BGP路由器向对等体发送路由撤销消息时,不会优先发送缺省路由的撤销消息。当BGP邻居关系断开时,无法保证优先撤销缺省路由,如果需要撤销的路由数量较多,那么较长时间后才能撤销缺省路由,造成流量中断时间较长。通过配置本功能,BGP路由器会优先发送缺省路由的撤销消息,在BGP邻居关系断开时,最大限度地减少流量中断时间。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置优先发送缺省路由的撤销消息。
default-route update-first
缺省情况下,不优先发送缺省路由的撤销消息。
当BGP路由器需要撤销大量路由时,撤销所有的路由会耗费一定时间,导致有些流量不能快速切换到有效路径。对于某些重要的、不希望长时间中断的流量,可以通过本配置,确保BGP路由器优先发送这些路由的撤销消息,以便将指定流量快速地切换到有效路径上,最大限度地减少流量中断时间。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置优先发送指定路由的撤销消息。
update-first route-policy route-policy-name
缺省情况下,不支持优先发送指定路由的撤销消息。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置优先发送指定路由的撤销消息。
update-first route-policy route-policy-name
缺省情况下,不支持优先发送指定路由的撤销消息。
可以通过以下几种方式配置BGP路由信息的发布策略:
· 使用访问控制列表或地址前缀列表对向所有对等体发布的路由信息进行过滤。
· 向指定对等体或对等体组发布路由时,使用路由策略、访问控制列表、AS路径过滤列表或地址前缀列表对发布给该对等体或对等体组的路由信息进行过滤。
用户可以根据需求选择过滤策略。如果同时配置了几种过滤策略,则按照如下顺序过滤发布的路由信息:
· filter-policy export
· peer filter-policy export
· peer as-path-acl export
· peer prefix-list export
· peer route-policy export
只有通过前面的过滤策略,才能继续执行后面的过滤策略;只有通过所有配置的过滤策略后,路由信息才能被发布。
配置BGP路由信息的发布/接收策略前,根据采取的策略,需要配置下列过滤器:
· 访问控制列表,详细配置过程请参见“ACL和QoS配置指导”中的“ACL”。
· 地址前缀列表,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
· 路由策略,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
· AS路径过滤列表,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
使用了ACL、前缀列表以及路由策略过滤器来应用BGP路由的发布/接收策略时,三者具有以下特征:
· 在过滤策略指定了以上三种过滤器时,如果指定的是不存在的过滤器,则所有BGP路由均可以通过该过滤策略的过滤。
· 过滤策略通过ACL或者前缀列表进行过滤时(例如配置filter-policy export命令时指定通过ACL或前缀列表匹配BGP路由信息):
¡ BGP路由只有能够通过ACL或前缀列表permit动作的匹配,该路由才能通过过滤策略的过滤。即如果一个过滤策略指定的是全部为deny动作的ACL或前缀列表,那么所有BGP路由均无法通过该过滤策略的过滤。
¡ ACL按照配置顺序进行匹配时,设备根据规则编号从小到大的顺序进行匹配;前缀列表按照表项索引号从小到大的顺序进行匹配。在该匹配顺序下,路由匹配到了一个ACL规则或者前缀列表的表项后,就不会继续再往下匹配。所以在配置多个规则/表项的ACL/前缀列表时,请尽量将先匹配的规则/表项的匹配范围设置为较小一些,以免后匹配的规则/表项不生效。
¡ 指定高级ACL作为过滤器时,rule [ rule-id ] permit ip source sour-addr sour-wildcard destination dest-addr dest-wildcard中的source sour-addr sour-wildcard用来匹配路由的目的网络地址,destination dest-addr dest-wildcard用来匹配路由的掩码。需要注意的是,需要指定路由掩码的点分十进制格式,例如,如果需要匹配3.3.3.0/24的路由,指定的规则应为rule [ rule-id ] permit ip source 3.3.3.0 0.0.0.255 destination 255.255.255.0 0.0.0.255。
· 使用路由策略作为过滤器时:
¡ BGP路由只有能够通过路由策略的permit模式节点的匹配,才能通过过滤策略的过滤。
¡ 路由策略按照节点序号从小到大的顺序进行匹配。在该匹配顺序下,路由匹配到了一个节点后,就不会继续往下进行匹配(配置了continue子句的情况除外)。
¡ 如果路由策略中通过if-match命令指定了ACL或前缀列表,则BGP路由需要先通过ACL或前缀列表permit动作的匹配,再通过路由策略permit模式节点的匹配,才能通过过滤策略的过滤。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由信息的发布策略。请至少选择其中一项进行配置。
¡ 对向所有对等体发布的路由信息进行过滤。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list ipv4-prefix-list-name } export [ direct | { isis | ospf | rip } process-id | static ]
¡ 通过存在策略对BGP发布路由进行控制。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name exist-policy exist-policy-name
interface-peer interface-type interface-number advertise-policy advertise-policy-name exist-policy exist-policy-name
本命令仅支持在BGP IPv4单播地址族视图和BGP-VPN IPv4单播地址族视图下配置。
¡ 通过不存在策略对BGP发布路由进行控制。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
interface-peer interface-type interface-number advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
本命令仅支持在BGP IPv4单播地址族视图和BGP-VPN IPv4单播地址族视图下配置。
¡ 为对等体/对等体组设置基于路由策略的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
interface-peer interface-type interface-number route-policy route-policy-name export
¡ 为对等体/对等体组设置基于ACL的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy { ipv4-acl-number | name ipv4-acl-name } export
interface-peer interface-type interface-number filter-policy { ipv4-acl-number | name ipv4-acl-name } export
¡ 为对等体/对等体组设置基于AS路径过滤列表的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl { as-path-acl-number | as-path-acl-name } export
interface-peer interface-type interface-number as-path-acl { as-path-acl-number | as-path-acl-name } export
¡ 为对等体/对等体组设置基于IPv4地址前缀列表的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv4-prefix-list-name export
interface-peer interface-type interface-number prefix-list ipv4-prefix-list-name export
缺省情况下,不对发布的路由信息进行过滤。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP路由信息的发布策略。请至少选择其中一项进行配置。
¡ 对向所有IPv6 BGP对等体发布的路由信息进行过滤。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-list-name } export [ direct | { isisv6 | ospfv3 | ripng } process-id | static ]
¡ 通过存在策略对BGP发布路由进行控制。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } advertise-policy advertise-policy-name exist-policy exist-policy-name
interface-peer interface-type interface-number advertise-policy advertise-policy-name exist-policy exist-policy-name
本命令仅支持在BGP IPv6单播地址族视图和BGP-VPN IPv6单播地址族视图下配置。
¡ 通过不存在策略对BGP发布路由进行控制。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
interface-peer interface-type interface-number advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
本命令仅支持在BGP IPv6单播地址族视图和BGP-VPN IPv6单播地址族视图下配置。
¡ 为对等体/对等体组设置基于路由策略的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } route-policy route-policy-name export
interface-peer interface-type interface-number route-policy route-policy-name export
¡ 为对等体/对等体组设置基于ACL的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } filter-policy { ipv6-acl-number | name ipv6-acl-name } export
interface-peer interface-type interface-number filter-policy { ipv6-acl-number | name ipv6-acl-name } export
¡ 为对等体/对等体组设置基于AS路径过滤列表的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } as-path-acl { as-path-acl-number | as-path-acl-name } export
interface-peer interface-type interface-number as-path-acl { as-path-acl-number | as-path-acl-name } export
¡ 为对等体/对等体组设置基于IPv6地址前缀列表的路由发布过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } prefix-list ipv6-prefix-list-name export
interface-peer interface-type interface-number prefix-list ipv6-prefix-list-name export
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
缺省情况下,BGP不要求发布一条路由时,必须另有一条路由存在于本地。但是在某些特殊条件下,网络管理员希望只在某些特殊的路由存在时(这些路由被称为依赖路由),才宣告某些路由,conditional-network dependent-filter命令用于实现此功能。
conditional-network dependent-filter命令指定的dependent-filter用于匹配依赖路由。配置conditional-network dependent-filter命令后,只有指定的BGP路由表中存在依赖路由时,指定的BGP前缀路由才能发布,否则不允许发布。
针对同一个要发布的IPv6路由前缀,可以在不同VPN实例/公网实例下通过多次执行conditional-network dependent-filter命令并指定不同的参数来设置多个组合生效的依赖路由。需要注意的是,这样配置以后,BGP路由表中需要存在能够满足所有匹配条件的依赖路由,要发布的IPv6路由前缀匹配的路由才能被成功发布。例如,同时配置了以下命令:
· conditional-network 2001:: 64 dependent-filter ip-prefix-list abc ipv6-prefix-list bcd
· conditional-network 2001:: 64 dependent-filter vpn-instance vpna ip-prefix-list abc
则需要BGP公网实例路由表中存在能够匹配地址前缀列表abc和bcd的路由,以及BGP-VPN实例vpna的路由表中存在能够匹配地址前缀列表abc的路由时,BGP前缀路由2001::/64才能被发布出去。
peer default-route-advertise命令不受conditional-network dependent-filter命令的影响,即使不存在能够匹配conditional-network dependent-filter命令的依赖路由,设备也可以发布缺省路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
(4) 配置BGP路由发布的依赖路由。
conditional-network ipv6-address prefix-length dependent-filter [ vpn-instance vpn-instance-name ] { ip-prefix-list ipv4-prefix-list-name | ipv6-prefix-list ipv6-prefix-list-name } *
缺省情况下,不使用依赖路由对BGP路由发布进行控制。
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,这样会造成网络设备上的BGP路由数目庞大,不利于维护。通过配置本功能,可以减少EBGP对等体接收到的路由条目。配置本功能后,BGP向EBGP对等体发布EBGP路由时,会检查AS_Path属性中的第一个AS号,不会向EBGP对等体发布第一个AS号与该EBGP对等体所在的AS相同的路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置根据EBGP路由的第一个AS号来过滤发布对象。
peer-as-check enable
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,不会根据EBGP路由的第一个AS号来过滤发布对象。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置根据EBGP路由的第一个AS号来过滤发布对象。
peer-as-check enable
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,不会根据EBGP路由的第一个AS号来过滤发布对象。
网络中新增路由数量较大时,如果在短时间内发布大量路由,可能会导致BGP对等体已接收到新增路由并添加对应的转发表项,本地设备上的转发表项却尚未添加,从而导致流量转发失败。通过本功能合理地配置BGP发送新增路由的速率可以避免上述情况发生。
请根据设备的性能合理配置BGP发送新增路由的速率,如果设备的性能较高,可以将BGP发送新增路由的速率适当调大;如果设备的性能一般,建议将BGP发送新增路由的速率适当调小。
当网络发生震荡时,建议不要将BGP新增路由发布速率配置为0或过小,否则可能会导致失效路由无法及时撤销。
目前,仅支持对新增IPv4单播和IPv6单播路由的发送速率进行限制。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP新增路由发布速率。
route-rate-limit rate
缺省情况下,不限制BGP发送新增路由的发布速率。
配置了本功能时,在经过了重启且BGP进程恢复后,设备不能立刻向邻居发布更新消息,而是在一段延迟时间之后才能发送。这段延迟时间的作用是,设备重启后可以等待路由接收完成并优选后再向其他设备发布,以避免设备重启后路由信息不全,就发布给其他设备导致流量丢失的情况。
配置BGP更新消息延迟发布后,如果需要部分路由前缀不受延迟发布控制,可以使用前缀列表进行控制,通过前缀列表过滤的路由不受延迟发布的影响。
对于BGP EVPN路由,路由更新消息延迟发布功能仅对IP前缀路由以及携带了IP路由信息的MAC/IP发布路由生效,无法对其他类型的BGP EVPN路由生效。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置设备重启且BGP进程恢复后,经过一段延迟时间才能发送更新消息。
bgp update-delay on-startup seconds
缺省情况下,设备重启且BGP进程恢复后,立刻向Established状态的BGP邻居发布路由更新消息。
(4) (可选)配置通过前缀列表控制BGP延迟发布IPv4路由更新消息。
bgp update-delay on-startup prefix-list ipv4-prefix-list-name
缺省情况下,未配置通过前缀列表控制BGP延迟发布IPv4路由更新消息。
(5) (可选)配置通过前缀列表控制BGP延迟发布IPv6路由更新消息。
bgp update-delay on-startup ipv6-prefix-list ipv6-prefix-list-name
缺省情况下,未配置通过前缀列表控制BGP延迟发布IPv6路由更新消息。
BGP路由发生变化时,BGP路由器会发送Update消息通知对等体。如果同一路由频繁变化,BGP路由器会频繁发送Update消息更新路由,导致路由震荡。通过本配置,可以抑制向对等体/对等体组发布同一路由更新频率,从而避免每次路由变化都发送Update消息,降低路由震荡造成的影响。
本功能可以通过以下两种方式实现:
· 配置发布同一路由的时间间隔:
配置发布同一路由的时间间隔后,设备根据固定的时间间隔向对等体/对等体组发布同一路由的Update消息。
· 引用智能定时器:
引用智能定时器后,设备将根据网络震荡情况灵活控制向对等体/对等体组发布同一路由的时间间隔,减少路由变化时发送Update消息的次数。
智能定时器的工作机制为:设备在发送过一次Update消息后,将进入计算出的抑制周期。在抑制周期持续时间内,设备发送同一路由的次数将会受到限制。并且,当前抑制周期内的路由震荡次数将会影响下一个抑制周期的持续时间。路由震荡的次数增多时,抑制周期的持续时间增长;路由震荡次数减少时,抑制周期的持续时间不变或减少。当前抑制周期结束后,设备可以再发送一次Update消息,然后进入动态计算的下一个抑制周期。
抑制周期的计算方式以及作用的具体过程,请参见命令手册。
route-update-interval intelligent-timer命令必须与peer route-update-interval intelligent-timer命令配合使用。否则,智能定时器不会生效。
向某一对等体发布同一路由时,最小间隔时间为peer route-update-interval命令和route-update-delay命令中配置的较大的时间(若未配置peer route-update-interval命令,则使用缺省值与route-update-delay的配置值比较)。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置向指定对等体/对等体组发布同一路由的时间间隔。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } route-update-interval interval
interface-peer interface-type interface-number route-update-interval interval
缺省情况下,向IBGP对等体发布同一路由的时间间隔为15秒,向EBGP对等体发布同一路由的时间间隔为30秒。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置发布同一路由的智能定时器的参数。
route-update-interval intelligent-timer min-update-interval [ max-update-interval [ ignore-delay-count [ incremental-interval ] ] ]
缺省情况下,发布同一路由的智能定时器时间参数为:最小抑制周期为5秒,最大抑制周期为30秒,允许发布同一路由的次数为3次,抑制周期的惩罚增量为1。
(4) 配置使用智能定时器来抑制同一路由的发布频率。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-update-interval intelligent-timer
缺省情况下,向IBGP对等体发布同一路由的时间间隔为15秒,向EBGP对等体发布同一路由的时间间隔为30秒。
缺省情况下,设备会立即向邻居发送用于撤销路由的Update消息,如果同一路由频繁变化,BGP路由器会频繁发送Update消息来撤销和更新路由,导致路由震荡。配置本功能后,设备将抑制撤销路由的发送,抑制后Update撤销消息每隔一段时间定期发送,发送的时间间隔由peer route-update-interval命令配置,从而避免频繁发送Update消息造成的路由震荡。
对于配置本功能前已经存在的路由,需要撤销时仍会立即发送Update消息,不受本功能控制。
(1) 进入BGP实例视图
bgp as-number [ instance instance-name ]
(2) 开启抑制发送撤销路由功能。
route-update-interval withdrawn enable
缺省情况下,抑制发送撤销路由功能处于关闭状态,即BGP路由器会立即向邻居发送撤销路由的更新消息。
BGP路由发生变化以及BGP会话成功建立时,设备会发送Update消息通知对等体,当短时间内需要更新的路由数量较多时,可能出现本端还未将更新后的BGP路由刷新到FIB表项中,就已经通过Update消息将BGP路由发送给了对等体的情形,导致部分流量转发到本机时,由于无法找到转发路径而被丢弃。
配置本功能后,BGP路由发生变化以及BGP会话成功建立时,不会立即发送Update消息通知对等体,而是等待一段指定的时间后再发送Update消息。根据设备的性能合理配置BGP路由延迟发布时间,可以避免由于路由下发FIB表项不及时导致的流量丢失。
向某一对等体发送BGP路由时,BGP路由延迟发布时间为route-update-delay命令和peer route-update-interval命令中配置的较大的时间(若未配置peer route-update-interval命令,则与其缺省值比较)。
目前,本功能仅支持对BGP IPv4单播路由、BGP IPv6单播路由、BGP VPNv4路由和BGP VPNv6路由的发布进行延迟。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置BGP路由延迟发布功能,并指定延迟发布时间。
route-update-delay delay-value
缺省情况下,BGP路由延迟发布功能处于关闭状态,即BGP路由不延迟发布。
设备在启动时,通过为BGP路由应用启动策略,修改发送的BGP路由的属性值,使得接收端优选其他设备发送的路由,可以减少设备重启造成的流量丢失。
如图2-1所示,Router B重启过程中,在路由没有完全收敛之前对外发布路由更新消息,可能会导致Router A通过Router B去往目的地的流量丢失。配置本功能后,在RouterB重启过程中,发送应用通过命令bgp policy on-startup med配置的MED属性值的路由更新消息,即修改路由更新消息中携带的属性值,使RouterA优选RouterC作为去往目的地的路由,从而减少设备重启造成的流量丢失。
图2-1 设备启动时为BGP路由应用启动策略示意图
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置设备在重启后发送应用启动策略的路由更新消息的时间。
bgp apply-policy on-startup duration seconds
缺省情况下,设备重启后发布未应用启动策略的路由更新消息。
(4) 配置启动策略中的MED值。
bgp policy on-startup med med-value
缺省情况下,启动策略中的MED值为4294967295。
当设备短时间内向邻居发送大量BGP消息(通常为Update类型消息)时,如果本端发送缓冲区太小,可能造成部分BGP消息在发送前丢失,从而导致BGP收敛时间过长。通过本功能为设备设置合理的发送缓冲区大小,可提高BGP收敛性能。
本功能仅对配置后新建立或重建的BGP会话生效。
本功能可以针对所有BGP会话配置,或仅针对特定的对等体/对等体组配置。对于特定的对等体/对等体组,与设备间BGP会话的发送缓冲区大小以peer send-buffer-size命令的配置为准,如果设备未指定该对等体/对等体组配置过peer send-buffer-size命令,则采用send-buffer-size命令的配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局配置BGP会话发送缓冲区的大小。
send-buffer-size size
缺省情况下,BGP会话发送缓冲区大小为32768字节。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置与指定对等体/对等体组间BGP会话的发送缓冲区大小。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } send-buffer-size size
缺省情况下,未指定与对等体/对等体组间BGP会话的发送缓冲区大小,以send-buffer-size命令的配置为准。
本命令与send-buffer-size命令同时配置时,以本命令的配置为准。
BGP发言者需要在路由更新时通过Update消息向对等体发布更新的路由。适当调整本地设备向外发送BGP Update消息的参数,可以避免短时间内发布大量Update消息过度占用本地设备和对等体设备系统资源的问题,同时提升BGP网络收敛性能。
可通过以下配置调整BGP Update消息的发送参数:
· 配置BGP会话发送Update消息的时间间隔和每次发送Update消息的最大数目
BGP Update消息发送参数的相关配置仅对配置后新建立或重建的BGP会话生效。
配置本功能后,设备会按照Update消息的发送时间间隔将需要更新的路由组装成Update消息,并发送给对等体。同时,通过本配置可以指定每个Update消息中允许携带的最大路由更新数量。
本功能可以针对所有BGP会话配置,或仅针对特定的对等体/对等体组配置。对于特定的对等体/对等体组,设备发送Update消息的时间间隔和每次发送Update消息的最大数目以peer advertisement-interval命令的配置为准,如果设备未指定该对等体/对等体组配置过peer advertisement-interval命令,则采用advertisement-interval命令的配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局配置BGP会话发送Update消息的时间间隔和每次发送Update消息的最大数目。
advertisement-interval interval count
缺省情况下,未配置BGP会话发送Update消息的时间间隔以及每次发送的Update消息最大数目,需要更新路由时BGP会话立即发送Update消息,每次发送的Update消息数量不受限制。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置向指定对等体/对等体组发送Update消息的时间间隔和每次发送Update消息的最大数目。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertisement-interval interval count
缺省情况下,未配置向指定对等体/对等体组配置发送Update消息的时间间隔以及每次发送的Update消息最大数目,以advertisement-interval命令的配置为准。
本命令与advertisement-interval命令同时配置时,以本命令的配置为准。
各BGP会话将组装好的Update消息按顺序放入待发送队列,每当设备轮询到本BGP会话发送报文时,发送队首指定数量的报文(由send-count参数决定),当待发送队列中的报文达到上限(由packet-count参数决定)时,此会话将暂停组装Update消息。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) BGP Update消息的发送队列参数
bgp queue-limit { packet packet-count | send send-count } *
缺省情况下,BGP处理Update报文时,最大报文组装数量为100个,每次发送报文数量为5个。
通过本配置可以避免攻击者向路由器发送大量的BGP路由,对路由器进行攻击。
当路由器从指定对等体/对等体组接收的路由数量超过指定的最大值时,可以选择以下处理方式:
· 路由器中断与该对等体/对等体组的BGP会话,不再尝试重建会话。
· 路由器保持与该对等体/对等体组的BGP会话,可以继续接收路由,仅打印日志信息。
· 路由器保持与该对等体/对等体组的BGP会话,丢弃超出限制的路由,并打印日志信息。
· 路由器中断与该对等体/对等体组的BGP会话,经过指定的时间后自动与对等体/对等体组重建会话。
执行本配置任务时,还可以指定路由器产生日志信息的阈值,即路由器接收的路由数量与配置的最大值的百分比达到指定的阈值时,路由器将产生日志信息。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置允许从对等体/对等体组接收的路由的最大数量。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
interface-peer interface-type interface-number route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置允许从对等体/对等体组接收的路由的最大数量。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
interface-peer interface-type interface-number route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
可以通过以下几种方式配置BGP路由信息的接收策略:
· 使用访问控制列表或地址前缀列表对从所有对等体接收的路由信息进行过滤。
· 从指定对等体或对等体组接收路由时,使用路由策略、访问控制列表、AS路径过滤列表或地址前缀列表对从该对等体或对等体组接收的路由信息进行过滤。
用户可以根据需求选择过滤策略。如果同时配置了几种过滤策略,则按照如下顺序过滤接收的路由:
· filter-policy import
· peer filter-policy import
· peer as-path-acl import
· peer prefix-list import
· peer route-policy import
只有通过前面的过滤策略,才能继续执行后面的过滤策略;只有通过所有配置的过滤策略后,路由信息才能被接收。
配置BGP路由信息的发布/接收策略前,根据采取的策略,需要配置下列过滤器:
· 访问控制列表,详细配置过程请参见“ACL和QoS配置指导”中的“ACL”。
· 地址前缀列表,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
· 路由策略,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
· AS路径过滤列表,详细配置过程请参见“三层技术-IP路由配置指导”中的“路由策略”。
使用了ACL、前缀列表以及路由策略过滤器来应用BGP路由的发布/接收策略时,三者具有以下特征:
· 在过滤策略指定了以上三种过滤器时,如果指定的是不存在的过滤器,则所有BGP路由均可以通过该过滤策略的过滤。
· 过滤策略通过ACL或者前缀列表进行过滤时(例如配置filter-policy export命令时指定通过ACL或前缀列表匹配BGP路由信息):
¡ BGP路由只有能够通过ACL或前缀列表permit动作的匹配,该路由才能通过过滤策略的过滤。即如果一个过滤策略指定的是全部为deny动作的ACL或前缀列表,那么所有BGP路由均无法通过该过滤策略的过滤。
¡ ACL按照配置顺序进行匹配时,设备根据规则编号从小到大的顺序进行匹配;前缀列表按照表项索引号从小到大的顺序进行匹配。在该匹配顺序下,路由匹配到了一个ACL规则或者前缀列表的表项后,就不会继续再往下匹配。所以在配置多个规则/表项的ACL/前缀列表时,请尽量将先匹配的规则/表项的匹配范围设置为较小一些,以免后匹配的规则/表项不生效。
¡ 指定高级ACL作为过滤器时,rule [ rule-id ] permit ip source sour-addr sour-wildcard destination dest-addr dest-wildcard中的source sour-addr sour-wildcard用来匹配路由的目的网络地址,destination dest-addr dest-wildcard用来匹配路由的掩码。需要注意的是,需要指定路由掩码的点分十进制格式,例如,如果需要匹配3.3.3.0/24的路由,指定的规则应为rule [ rule-id ] permit ip source 3.3.3.0 0.0.0.255 destination 255.255.255.0 0.0.0.255。
· 使用路由策略作为过滤器时:
¡ BGP路由只有能够通过路由策略的permit模式节点的匹配,才能通过过滤策略的过滤。
¡ 路由策略按照节点序号从小到大的顺序进行匹配。在该匹配顺序下,路由匹配到了一个节点后,就不会继续往下进行匹配(配置了continue子句的情况除外)。
¡ 如果路由策略中通过if-match命令指定了ACL或前缀列表,则BGP路由需要先通过ACL或前缀列表permit动作的匹配,再通过路由策略permit模式节点的匹配,才能通过过滤策略的过滤。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由信息的接收策略。请至少选择其中一项进行配置。
¡ 对从所有对等体接收的路由信息进行过滤。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list ipv4-prefix-list-name } import
¡ 为对等体/对等体组设置基于路由策略的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name import
interface-peer interface-type interface-number route-policy route-policy-name import
¡ 为对等体/对等体组设置基于ACL的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy { ipv4-acl-number | name ipv4-acl-name } import
interface-peer interface-type interface-number filter-policy { ipv4-acl-number | name ipv4-acl-name } import
¡ 为对等体/对等体组设置基于AS路径过滤列表的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl { as-path-acl-number | as-path-acl-name } import
interface-peer interface-type interface-number as-path-acl { as-path-acl-number | as-path-acl-name } import
¡ 为对等体/对等体组设置基于IPv4地址前缀列表的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv4-prefix-list-name import
interface-peer interface-type interface-number prefix-list ipv4-prefix-list-name import
缺省情况下,不对接收的路由信息进行过滤。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP路由信息的接收策略。请至少选择其中一项进行配置。
¡ 对从所有IPv6 BGP对等体接收的路由信息进行过滤。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-list-name } import
¡ 为对等体/对等体组设置基于路由策略的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } route-policy route-policy-name import
interface-peer interface-type interface-number route-policy route-policy-name import
¡ 为对等体/对等体组设置基于ACL的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } filter-policy { ipv6-acl-number | name ipv6-acl-name } import
interface-peer interface-type interface-number filter-policy { ipv6-acl-number | name ipv6-acl-name } import
¡ 为对等体/对等体组设置基于AS路径过滤列表的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } as-path-acl { as-path-acl-number | as-path-acl-name } import
interface-peer interface-type interface-number as-path-acl { as-path-acl-number | as-path-acl-name } import
¡ 为对等体/对等体组设置基于IPv6地址前缀列表的路由接收过滤策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } prefix-list ipv6-prefix-list-name import
interface-peer interface-type interface-number prefix-list ipv6-prefix-list-name import
缺省情况下,不对接收的路由信息进行过滤。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
为BGP对等体/对等体组配置SoO属性后,从该BGP对等体/对等体组接收路由时设备会为路由增加SoO属性,并且向该BGP对等体/对等体组发布路由时设备会检查路由的SoO属性,如果路由中携带的SoO属性与为对等体/对等体组配置的SoO属性相同,则不会将该路由发布给对等体/对等体组,从而避免路由环路。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 为BGP对等体/对等体组配置SoO属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
interface-peer interface-type interface-number soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 为BGP对等体/对等体组配置SoO属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } soo site-of-origin
interface-peer interface-type interface-number soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
当对等体间建立了BGP会话后,它们定时向对端发送Keepalive消息,以防止路由器认为BGP会话已中断。Keepalive消息的发送时间间隔称为存活时间间隔。
若路由器在设定的会话保持时间(Holdtime)内未收到对端的Keepalive消息或Update消息,则认为此BGP会话已中断,从而断开此BGP会话。
用户可以全局配置当前路由器上所有BGP会话的存活时间间隔与保持时间,也可以配置与指定对等体/对等体组建立的BGP会话的存活时间间隔和保持时间。如果同时配置了两者,则为指定对等体/对等体组配置的值具有较高的优先级。
存活时间间隔、会话保持时间的协商及计算方法如下:
· 如果当前路由器上配置的保持时间与对端设备(对等体)上配置的保持时间不一致,则数值较小者作为协商后的保持时间。协商的保持时间为0时,不向对等体发送Keepalive消息,与对等体之间的会话永远不会超时断开。
· 存活时间间隔不为0时,将协商的保持时间的三分之一与配置的存活时间间隔比较,取最小值作为存活时间间隔。
配置的保持时间必须大于或等于存活时间的三倍。
本功能可以针对所有BGP会话配置,或仅针对特定的对等体/对等体组配置。对于特定的对等体/对等体组,与设备间BGP会话的存活时间间隔和保持时间以peer timer命令的配置为准,如果设备未指定该对等体/对等体组配置过peer timer命令,则采用timer命令的配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP会话的存活时间间隔和保持时间。请至少选择其中一项进行配置。
¡ 配置所有BGP会话的存活时间间隔和保持时间。
timer keepalive keepalive hold holdtime
配置本命令后,不会影响已建立的BGP会话,只对新建立的会话生效。
¡ 配置本地路由器与指定对等体/对等体组之间BGP会话的存活时间间隔和保持时间。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } timer keepalive keepalive hold holdtime
interface-peer interface-type interface-number timer keepalive keepalive hold holdtime
缺省情况下,BGP会话的存活时间间隔为60秒,保持时间为180秒。
配置timer或peer timer命令后,不会马上断开会话,而是等到其他条件触发会话重建(如复位BGP会话)时,再以配置的保持时间协商建立会话。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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秒。
配置timer或peer timer命令后,不会马上断开会话,而是等到其他条件触发会话重建(如复位BGP会话)时,再以配置的保持时间协商建立会话。
通过配置本功能可以控制重新建立BGP会话的速度:
· 当邻居关系建立失败,可以将定时器时间间隔的值调小,从而加快BGP会话建立的速度,便于路由快速收敛。
· 当邻居关系震荡时,可以将定时器时间间隔的值调大,从而减轻路由震荡。
配置本地路由器与指定对等体/对等体组之间重新建立BGP会话的时间间隔比配置本地路由器与所有对等体之间重新建立BGP会话的时间间隔的优先级高。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-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秒。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置本地路由器与对等体之间重新建立BGP会话的时间间隔。请选择其中一项进行配置。
¡ 配置本地路由器与所有对等体之间重新建立BGP会话的时间间隔。
timer connect-retry retry-time
¡ 配置本地路由器与指定IPv6 BGP对等体/对等体组之间重新建立BGP会话的时间间隔。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } timer connect-retry retry-time
interface-peer interface-type interface-number timer connect-retry retry-time
缺省情况下,本地路由器与对等体/对等体组之间重新建立BGP会话的时间间隔为32秒。
BGP会话首次建立、对等体切换所属打包组以及本地设备接收到对等体发送的Route-refresh消息等情况下,设备会将本端所有的BGP路由信息发送给相关对等体。这些路由信息称为Refresh路由。Refresh路由延迟发布定时器在设备首次需要向某一对等体发送Refresh路由时启动计时,在此期间,设备需向任意对等体发送的Refresh路由都将被延迟至计时器超时后统一按打包组进行发送。通过本功能配置适当的Refresh路由发送延迟时间,使尽可能多的Refresh路由统一按打包组进行发送,避免设备对同一条路由反复进行打包,以达到提升打包效率,节省系统资源的目的。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置Refresh路由的延迟发布时间。
refresh delay delay-value
缺省情况下,设备向BGP对等体发布Refresh路由的延迟时间为5秒。
本地标签是指本地设备通过VPNv4路由、VPNv6路由、带标签的IPv4单播路由或带标签的IPv6单播路由分配给其他BGP对等体的MPLS标签。为路由分配的本地标签发生变化时,如果立即删除本地标签,则BGP对等体可能尚未收到新的标签,仍然采用旧的标签转发报文,从而导致流量中断。为了避免上述情况发生,BGP需要延迟一段时间再删除本地标签。通过本配置可以调整本地标签的延迟删除时间。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置删除本地标签的延迟时间。
retain local-label retain-time
缺省情况下,删除本地标签的延迟时间为60秒。
全局使能BGP日志记录功能,并使能与指定对等体/对等体组之间BGP会话的日志记录功能后,与该对等体/对等体组之间的BGP会话建立以及断开时会生成日志信息,通过display bgp peer ipv4 unicast log-info命令或display bgp peer ipv6 unicast log-info命令可以查看记录的日志信息。生成的日志信息还将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。
有关信息中心参数的配置请参见“设备管理配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日志记录功能。
log-peer-change
缺省情况下,全局BGP日志记录功能处于开启状态。
(4) (可选)进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(5) 使能与指定对等体/对等体组之间BGP会话的日志记录功能。
peer { group-name | ipv4-address [ mask-length ] } log-change
缺省情况下,与所有对等体/对等体组之间BGP会话的日志记录功能均处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日志记录功能。
log-peer-change
缺省情况下,全局BGP日志记录功能处于开启状态。
(4) (可选)进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(5) 使能与指定对等体/对等体组之间BGP会话的日志记录功能。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } log-change
interface-peer interface-type interface-number log-change
缺省情况下,与所有对等体/对等体组之间BGP会话的日志记录功能均处于开启状态。
使能BGP对应地址族的路由抖动日志记录功能后,当该地址族的路由发生抖动并满足日志输出条件时会生成路由抖动日志信息。生成的日志信息还将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。
有关信息中心参数的配置请参见“设备管理配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 使能BGP的路由抖动日志记录功能。
log-route-flap monitor-time monitor-count [ log-count-limit | route-policy route-policy-name ] *
缺省情况下,BGP的路由抖动日志记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 使能BGP的路由抖动日志记录功能。
log-route-flap monitor-time monitor-count [ log-count-limit | route-policy route-policy-name ] *
缺省情况下,BGP的路由抖动日志记录功能处于关闭状态。
开启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”。
在执行snmp-agent trap enable bgp命令后:
· 是否生成peer-addrfamily-routeexceed、peer-addrfamily-routeexceed-clear、peer-addrfamily-routethreshold-exceed、peer-addrfamily-routethreshold-clear、peer-routeexceed、peer-routeexceed-clear、peer-routethreshold-clear或peer-routethreshold-exceed参数指定的告警信息,受peer route-limit命令配置的允许路由器接收的路由的数量和路由器产生日志信息的阈值的影响。如果地址族下未配置peer route-limit命令,则触发产生告警信息的路由最大数目为4294967295,路由数量告警阈值为70%。
· 是否生成peer-rpkisession-roaexceed或peer-rpkisession-roaexceed-clear参数指定的告警信息,受rpki-limit命令配置的允许从指定RPKI服务器收到的ROA数量的影响。如果RPKI服务器视图下未配置rpki-limit命令,则触发产生告警信息的ROA最大数目为4294967295。
(1) 进入系统视图。
system-view
(2) 开启BGP模块的告警功能。
snmp-agent trap enable bgp [ instance instance-name ] [ peer-addrfamily-routeexceed | peer-addrfamily-routeexceed-clear | peer-addrfamily-routethreshold-clear | peer-addrfamily-routethreshold-exceed | peer-backward-transition | peer-established | peer-gr-status-change | peer-routeexceed | peer-routeexceed-clear | peer-routethreshold-clear | peer-routethreshold-exceed | peer-rpkisession-roaexceed | peer-rpkisession-roaexceed-clear ] *
缺省情况下,BGP模块的告警功能处于开启状态。
执行本命令时,若不指定任何告警信息参数,则BGP将生成所有类型的告警信息;若指定了告警信息参数,则BGP只会生成指定类型的告警信息。
(3) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(4) 配置BGP实例的SNMP上下文。
snmp context-name context-name
缺省情况下,未配置BGP实例的SNMP上下文。
可在任意视图下执行以下命令:
· 显示BGP IPv4单播对等体组的信息。
display bgp [ instance instance-name ] group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 显示BGP IPv4单播地址族下的对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | ipv6-address log-info | [ ipv6-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] vpn-instance-all [ verbose ]
· 显示通过network命令发布的路由信息和通过network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
· 显示BGP IPv4单播路由信息。
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | ipv4-address [ mask-length | mask ] { as-path | cluster-list | community | ext-community } | peer { ipv4-address | ipv6-address [ interface interface-type interface-number ] } { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] [ verbose ] | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] peer { ipv4-address | ipv6-address [ interface interface-type interface-number ] } { accepted-routes | not-accepted-routes }
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] as-path-acl { as-path-acl-number | as-path-acl-name }
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
· 显示BGP邻居断开的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 显示BGP IPv4单播地址族下打包组的相关信息。
display bgp [ instance instance-name ] update-group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address | ipv6-address ]
· 显示BGP对等体和BGP路由的汇总信息。
display bgp [ instance instance-name ] ipv4 vpn-instance vpn-instance-name summary
· 显示所有BGP实例的信息。
display bgp instance-info
可在任意视图下执行以下命令:
· 显示BGP IPv6单播对等体组的信息。
display bgp [ instance instance-name ] group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 显示BGP IPv6单播地址族下的对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ 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 ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] vpn-instance-all [ verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ [ link-local-address ] interface interface-type interface-number | link-local-address interface interface-type interface-number { log-info | verbose } ]
· 显示通过network命令发布的路由信息和通过network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv4-address mask-length | ipv4-address log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] vpn-instance-all [ verbose ]
· 显示BGP IPv6单播路由信息。
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length [ advertise-info ] | ipv6-address prefix-length { as-path | cluster-list | community | ext-community } | peer { ipv4-address | ipv6-address | link-local-address interface interface-type interface-number } { advertised-routes | received-routes } [ ipv6-address prefix-length [ verbose ] | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] peer { ipv4-address | ipv6-address | link-local-address interface interface-type interface-number } { accepted-routes | not-accepted-routes }
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] as-path-acl { as-path-acl-number | as-path-acl-name }
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
· 显示BGP邻居断开的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 显示BGP IPv6单播地址族下打包组的相关信息。
display bgp [ instance instance-name ] update-group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address | ipv6-address ]
· 显示BGP对等体和BGP路由的汇总信息。
display bgp [ instance instance-name ] ipv6 vpn-instance vpn-instance-name summary
· 显示所有BGP实例的信息。
display bgp instance-info
可在任意视图下执行以下命令:
· 显示BGP IPv4组播对等体组的信息。
display bgp [ instance instance-name ] group ipv4 multicast [ group-name group-name ]
· 显示BGP IPv4组播对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv4 multicast [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
· 显示通过network命令发布的路由信息和通过network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv4 multicast
· 显示BGP的路由属性信息。
display bgp [ instance instance-name ] paths [ as-regular-expression ]
· 显示BGP IPv4组播路由信息。
display bgp [ instance instance-name ] routing-table ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | ipv4-address [ mask-length | mask ] { as-path | cluster-list | community | ext-community } | peer ipv4-address { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] [ verbose ] | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table ipv4 multicast peer ipv4-address { accepted-routes | not-accepted-routes }
display bgp [ instance instance-name ] routing-table ipv4 multicast as-path-acl { as-path-acl-number | as-path-acl-name }
display bgp [ instance instance-name ] routing-table ipv4 multicast [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv4 multicast [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv4 multicast [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
· 显示BGP邻居断开的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 显示BGP IPv4组播地址族下打包组的相关信息。
display bgp [ instance instance-name ] update-group ipv4 multicast [ ipv4-address ]
· 显示所有BGP实例的信息。
display bgp instance-info
可在任意视图下执行以下命令:
· 显示BGP IPv6组播对等体组的信息。
display bgp [ instance instance-name ] group ipv6 multicast [ group-name group-name ]
· 显示BGP IPv6组播对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv6 multicast [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
· 显示通过network命令发布的路由信息和通过network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv6 multicast
· 显示BGP的路由属性信息。
display bgp [ instance instance-name ] paths [ as-regular-expression ]
· 显示BGP IPv6组播路由信息。
display bgp [ instance instance-name ] routing-table ipv6 multicast [ ipv6-address prefix-length [ advertise-info ] | ipv6-address prefix-length { as-path | cluster-list | community | ext-community } | peer ipv6-address { advertised-routes | received-routes } [ ipv6-address prefix-length [ verbose ] | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table ipv6 multicast peer ipv6-address { accepted-routes | not-accepted-routes }
display bgp [ instance instance-name ] routing-table ipv6 multicast as-path-acl { as-path-acl-number | as-path-acl-name }
display bgp [ instance instance-name ] routing-table ipv6 multicast [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 multicast [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 multicast [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
· 显示BGP邻居断开的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 显示BGP IPv6组播地址族下打包组的相关信息。
display bgp [ instance instance-name ] update-group ipv6 multicast [ ipv6-address ]
· 显示所有BGP实例的信息。
display bgp instance-info
当BGP路由策略或协议发生变化后,可以通过复位BGP会话使新的配置生效。执行复位BGP相关命令后,设备会断开并重新建立BGP邻居关系,以便更新BGP路由信息。
复位BGP会话时,会造成短暂的BGP会话中断。
请在用户视图下执行以下命令:
· 复位IPv4单播地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
reset bgp ipv6-address [ mask-length ] ipv4 [ unicast ]
· 复位IPv4组播地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 multicast
· 复位IPv6单播地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number | all | external | group group-name | internal } ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
reset bgp ipv4-address [ mask-length ] ipv6 [ unicast ]
· 复位IPv6组播地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 multicast
· 复位所有BGP会话。
reset bgp [ instance instance-name ] all
可在任意视图下执行以下命令:
· 显示BGP IPv4单播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv6单播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv4组播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv6组播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
请在用户视图下执行以下命令:
· 清除BGP IPv4单播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ mask-length | mask ] | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv4组播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv4 multicast [ ipv4-address [ mask-length | mask ] | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv6单播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
· 清除BGP IPv6组播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
如图2-2所示,所有路由器均运行BGP协议。要求Router A和Router B之间建立EBGP连接,Router B和Router C之间建立IBGP连接,使得Router C能够访问Router A直连的8.1.1.0/24网段。
图2-2 BGP基本配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置IBGP连接
¡ 为了防止端口状态不稳定引起路由震荡,本举例使用Loopback接口来创建IBGP对等体。
¡ 使用Loopback接口创建IBGP对等体时,因为Loopback接口不是两对等体实际连接的接口,所以,必须使用peer connect-interface命令将Loopback接口配置为BGP连接的源接口。
¡ 在AS 65009内部,使用OSPF协议,保证Router B到Router C的Loopback接口路由可达。
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.3.3.3 as-number 65009
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.3.3.3 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 2.2.2.2 as-number 65009
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 2.2.2.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
[RouterC] ospf 1
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
[RouterC] display bgp peer ipv4
BGP local router ID : 3.3.3.3
Local AS number : 65009
Total number of peers : 1 Peers in established state : 1
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2.2.2.2 65009 7 10 0 0 00:06:09 Established
以上显示信息表明Router B和Router C之间的IBGP连接已经建立。
(3) 配置EBGP连接
¡ EBGP邻居关系的两台路由器(通常属于两个不同运营商),处于不同的AS域,对端的Loopback接口一般路由不可达,所以一般使用直连地址建立EBGP邻居。
¡ 因为要求Router C能够访问Router A直连的8.1.1.0/24网段,所以,建立EBGP连接后,需要将8.1.1.0/24网段路由通告到BGP路由表中。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 查看Router B的BGP对等体的连接状态。
[RouterB] display bgp peer ipv4
BGP local router ID : 2.2.2.2
Local AS number : 65009
Total number of peers : 2 Peers in established state : 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.3 65009 12 10 0 3 00:09:16 Established
3.1.1.2 65008 3 3 0 1 00:00:08 Established
可以看出,Router B与Router C、Router B与Router A之间的BGP连接均已建立。
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 8.1.1.0/24 8.1.1.1 0 32768 i
# 显示Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 8.1.1.0/24 3.1.1.2 0 0 65008i
# 显示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
从路由表可以看出,Router A没有学到AS 65009内部的任何路由,Router C虽然学到了AS 65008中的8.1.1.0的路由,但因为下一跳3.1.1.2不可达,所以也不是有效路由。
(4) 配置BGP引入直连路由
在Router B上配置BGP引入直连路由,以便Router A能够获取到网段9.1.1.0/24的路由,Router C能够获取到网段3.1.1.0/24的路由。
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] import-route direct
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 显示Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 2.2.2.2/32 3.1.1.1 0 0 65009?
* >e 3.1.1.0/24 3.1.1.1 0 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.1.0/24 3.1.1.1 0 0 65009?
以上显示信息表明,在Router B上引入直连路由后,Router A新增了到达2.2.2.2/32和9.1.1.0/24的两条路由。
# 显示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 2.2.2.2/32 2.2.2.2 0 100 0 ?
* >i 3.1.1.0/24 2.2.2.2 0 100 0 ?
* >i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
* >i 9.1.1.0/24 2.2.2.2 0 100 0 ?
以上显示信息表明,到8.1.1.0的路由变为有效路由,下一跳为Router A的地址。
# 使用Ping进行验证。
[RouterC] ping 8.1.1.1
Ping 8.1.1.1 (8.1.1.1): 56 data bytes, press CTRL+C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=255 time=1.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/2.000/0.800 ms
如图2-3所示,公司A的所有设备在AS 65008内,公司B的所有设备在AS 65009内,AS 65008和AS 65009通过设备Router A和Router B相连。
现要求实现Router A能够访问AS 65009内的网段9.1.2.0/24,Router C能够访问AS 65008内的网段8.1.1.0/24。
图2-3 BGP与IGP交互配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF
在AS 65009内配置OSPF,使得Router B能获取到到9.1.2.0/24网段的路由。
# 配置Router B。
<RouterB> system-view
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf 1
[RouterC-ospf-1] import-route direct
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
(3) 配置EBGP连接
配置EBGP连接,并在Router A上将8.1.1.0/24网段通告到BGP路由表中,以便Router B获取到网段8.1.1.0/24的路由。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
(4) 配置BGP与IGP交互
¡ 在Router B上配置BGP引入OSPF路由,以便Router A能够获取到到9.1.2.0/24网段的路由。
¡ 在Router B上配置OSPF引入BGP路由,以便Router C能够获取到到8.1.1.0/24网段的路由。
# 在Router B上配置BGP和OSPF互相引入路由。
[RouterB-bgp-default-ipv4] import-route ospf 1
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] import-route bgp
[RouterB-ospf-1] quit
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 3
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 3.3.3.3/32 3.1.1.1 1 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.2.0/24 3.1.1.1 1 0 65009?
# 查看Router C的OSPF路由表。
[RouterC] display ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
9.1.1.0/24 1 Transit 9.1.1.2 3.3.3.3 0.0.0.0
2.2.2.2/32 1 Stub 9.1.1.1 2.2.2.2 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
8.1.1.0/24 1 Type2 1 9.1.1.1 2.2.2.2
Total Nets: 3
Intra Area: 2 Inter Area: 0 ASE: 1 NSSA: 0
# 使用Ping进行验证。
[RouterA] ping -a 8.1.1.1 9.1.2.1
Ping 9.1.2.1 (9.1.2.1) from 8.1.1.1: 56 data bytes, press CTRL+C to break
56 bytes from 9.1.2.1: icmp_seq=0 ttl=254 time=10.000 ms
56 bytes from 9.1.2.1: icmp_seq=1 ttl=254 time=12.000 ms
56 bytes from 9.1.2.1: icmp_seq=2 ttl=254 time=2.000 ms
56 bytes from 9.1.2.1: icmp_seq=3 ttl=254 time=7.000 ms
56 bytes from 9.1.2.1: icmp_seq=4 ttl=254 time=9.000 ms
--- Ping statistics for 9.1.2.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.000/8.000/12.000/3.406 ms
[RouterC] ping -a 9.1.2.1 8.1.1.1
Ping 8.1.1.1 (8.1.1.1) from 9.1.2.1: 56 data bytes, press CTRL+C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=254 time=9.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=254 time=4.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=254 time=3.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.000/4.400/9.000/2.332 ms
所有路由器均运行BGP协议。Router A需要分别与Router B、Router C和Router D建立IBGP连接。在Router A上配置BGP动态对等体,以简化配置。
配置Router A作为路由反射器,在Router B、Router C和Router D之间反射路由。
图2-4 BGP动态对等体配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置IBGP连接
# 在Router A上配置BGP动态对等体。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10.1.0.0 16 as-number 200
[RouterA-bgp-default] address-family ipv4
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 enable
# 在Router B上配置与Router A建立IBGP连接。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 10.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
# 在Router C上配置与Router A建立IBGP连接。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.1.2.1 as-number 200
[RouterC-bgp-default] address-family ipv4
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
# 在Router D上配置与Router A建立IBGP连接。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.1.3.1 as-number 200
[RouterD-bgp-default] address-family ipv4
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
# 查看Router A的BGP对等体的连接状态。
[RouterA] display bgp peer ipv4
BGP local router ID : 1.1.1.1
Local AS number : 200
Total number of peers : 3 Peers in established state : 3
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
*10.1.1.2 200 7 10 0 0 00:06:09 Established
*10.1.2.2 200 7 10 0 0 00:06:09 Established
*10.1.3.2 200 7 10 0 0 00:06:09 Established
以上显示信息表明Router A与Router B、Router C和Router D之间的IBGP连接已经建立。
(3) 配置路由反射器
# 配置Router A作为路由反射器,将网段10.1.0.0/16中的对等体作为路由反射的客户机。
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 reflect-client
(4) 配置发布网段路由
# 在Router C上配置发布网段路由9.1.1.0/24。
[RouterC-bgp-default-ipv4] network 9.1.1.0 24
# 在Router A、Router B和Router D上查看BGP路由表,可以看到均已学习到路由9.1.1.0/24。以Router A为例:
[RouterA-bgp-default] display bgp routing-table ipv4
Total Number of Routes: 1
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* i 9.1.1.0/24 10.1.2.2 0 100 0 ?
通过在边界设备Router C和外部网络设备Router D之间建立EBGP连接,实现公司内部网络与外部网络的互通。
在公司内部,核心层设备Router B与汇聚层设备Router A之间配置静态路由,Router B与Router C之间配置OSPF,并在OSPF路由中引入静态路由,以实现公司内部网络的互通。
公司内部网络包括三个网段:192.168.64.0/24、192.168.74.0/24和192.168.99.0/24。在Router C上配置路由聚合,将这三个网段的路由聚合为一条路由,以减少通过BGP发布的路由数量。
图2-5 BGP路由聚合组网图
(1) 配置各接口的IP地址(略)
(2) 在Router A和Router B之间配置静态路由
# 在Router A上配置缺省路由,下一跳为Router B。
<RouterA> system-view
[RouterA] ip route-static 0.0.0.0 0 192.168.212.1
# 在Router B上配置静态路由,到达目的网络192.168.64.0/24、192.168.74.0/24和192.168.99.0/24的路由下一跳均为Router A。
<RouterB> system-view
[RouterB] ip route-static 192.168.64.0 24 192.168.212.161
[RouterB] ip route-static 192.168.74.0 24 192.168.212.161
[RouterB] ip route-static 192.168.99.0 24 192.168.212.161
(3) 在Router B和Router C之间配置OSPF,并引入静态路由
# 在Router B上配置OSPF发布本地网段路由,并引入静态路由。
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] import-route static
[RouterB-ospf-1] quit
# 在Router C上配置OSPF发布本地网段路由。
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 10.220.2.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 在Router C上查看路由表信息,可以看到Router C通过OSPF学习到了到达192.168.64.0/24、192.168.74.0/24和192.168.99.0/24网段的路由。
[RouterC] display ip routing-table protocol ospf
Summary count : 5
OSPF Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
OSPF Routing table Status : <Inactive>
Summary count : 2
Destination/Mask Proto Pre Cost NextHop Interface
10.220.2.0/24 O_INTRA 10 1 10.220.2.16 GE0/0/2
172.17.100.0/24 O_INTRA 10 1 172.17.100.2 GE0/0/1
(4) 在Router C和Router D之间配置BGP,并引入OSPF路由
# 在Router C上配置Router D为其EBGP对等体,并引入OSPF路由。
[RouterC] bgp 65106
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.220.2.217 as-number 64631
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.220.2.217 enable
[RouterC-bgp-default-ipv4] import-route ospf
# 在Router D上配置Router C为其EBGP对等体。
[RouterD] bgp 64631
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.220.2.16 as-number 65106
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.220.2.16 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 在Router D上查看路由表信息,可以看到Router D通过BGP学习到了到达192.168.64.0/24、192.168.74.0/24和192.168.99.0/24三个网段的路由。
[RouterD] display ip routing-table protocol bgp
Summary count : 3
BGP Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interfac
192.168.64.0/24 BGP 255 1 10.220.2.16 GE0/0/1
192.168.74.0/24 BGP 255 1 10.220.2.16 GE0/0/1
192.168.99.0/24 BGP 255 1 10.220.2.16 GE0/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置后,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24网段内的主机。
(5) 在Router C上配置路由聚合
# 在Router C上将路由192.168.64.0/24、192.168.74.0/24和192.168.99.0/24聚合为192.168.64.0/18,并抑制发布具体路由。
[RouterC-bgp-default-ipv4] aggregate 192.168.64.0 18 detail-suppressed
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 在Router C上查看路由表信息,可以看到Router C上产生了一条聚合路由192.168.64.0/18,该聚合路由的出接口为Null0。
[RouterC] display ip routing-table | include 192.168
192.168.64.0/18 BGP 130 0 127.0.0.1 NULL0
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 GE0/0/1
# 在Router D上查看路由表信息,可以看到Router D上到达公司内部三个网络的路由聚合为一条路由192.168.64.0/18。
[RouterD] display ip routing-table protocol bgp
Summary count : 1
BGP Routing table Status : <Active>
Summary count : 1
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/18 BGP 255 0 10.220.2.16 GE0/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置后,成功实现了路由聚合。并且,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24网段内的主机。
· 网络中存在两个自治系统:PIM-SM 1属于AS 100,PIM-SM 2属于AS 200。各AS内部采用OSPF交换路由信息,AS之间采用MBGP交换用于RPF检查的IPv4单播路由信息。
· 组播源属于AS 100内的PIM-SM 1,接收者则属于AS 200内的PIM-SM 2。
· 将Router A和Router B各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP。
· 在Router A与Router B之间通过MBGP建立MSDP(Multicast Source Discovery Protocol,组播源发现协议)对等体关系。
图2-6 MBGP配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Source |
- |
10.110.1.100/24 |
Router C |
GE0/0/1 |
10.110.2.1/24 |
Router A |
GE0/0/1 |
10.110.1.1/24 |
|
GE0/0/2 |
192.168.2.2/24 |
|
GE0/0/2 |
192.168.1.1/24 |
|
GE0/0/3 |
192.168.4.1/24 |
|
Loop0 |
1.1.1.1/32 |
|
Loop0 |
3.3.3.3/32 |
Router B |
GE0/0/1 |
192.168.1.2/24 |
Router D |
GE0/0/1 |
192.168.3.2/24 |
|
GE0/0/2 |
192.168.3.1/24 |
|
GE0/0/2 |
192.168.4.2/24 |
|
GE0/0/3 |
192.168.2.1/24 |
|
Loop0 |
4.4.4.4/32 |
|
Loop0 |
2.2.2.2/32 |
|
(1) 配置各路由器接口的IP地址和单播路由协议
¡ 请按照图2-6配置各接口的IP地址和子网掩码,具体配置过程略。
¡ 配置AS 200内的各路由器之间采用OSPF路由协议交换路由信息(AS内各路由器使用的OSPF进程号为1),确保各AS内部在网络层互通,能学到彼此Loopback接口的路由,具体配置过程略。
(2) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Router A上使能IP组播路由,在各接口上使能PIM-SM。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] pim sm
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] pim sm
[RouterA-GigabitEthernet0/0/2] quit
Router B和Router D上的配置与Router A相似,配置过程略。
# 在Router C上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口GigabitEthernet0/0/1上使能IGMP。
<RouterC> system-view
[RouterC] multicast routing
[RouterC-mrib] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] pim sm
[RouterC-GigabitEthernet0/0/2] quit
[RouterC] interface gigabitethernet 0/0/3
[RouterC-GigabitEthernet0/0/3] pim sm
[RouterC-GigabitEthernet0/0/3] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] pim sm
[RouterC-GigabitEthernet0/0/1] igmp enable
[RouterC-GigabitEthernet0/0/1] quit
# 在Router A上配置BSR的服务边界。
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] pim bsr-boundary
[RouterA-GigabitEthernet0/0/2] quit
# 在Router B上配置BSR的服务边界。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] pim bsr-boundary
[RouterB-GigabitEthernet0/0/1] quit
(3) 配置Loopback0接口和C-BSR、C-RP的位置
# 在Router A上配置Loopback0接口和C-BSR、C-RP的位置。
[RouterA] interface loopback 0
[RouterA-LoopBack0] ip address 1.1.1.1 32
[RouterA-LoopBack0] pim sm
[RouterA-LoopBack0] quit
[RouterA] pim
[RouterA-pim] c-bsr 1.1.1.1
[RouterA-pim] c-rp 1.1.1.1
[RouterA-pim] quit
# 在Router B上配置Loopback0接口和C-BSR、C-RP的位置。
[RouterB] interface loopback 0
[RouterB-LoopBack0] ip address 2.2.2.2 32
[RouterB-LoopBack0] pim sm
[RouterB-LoopBack0] quit
[RouterB] pim
[RouterB-pim] c-bsr 2.2.2.2
[RouterB-pim] c-rp 2.2.2.2
[RouterB-pim] quit
(4) 配置BGP协议,建立BGP IPv4组播对等体,并引入路由
# 在Router A上配置其与Router B建立EBGP会话,使能Router A与Router B交换用于RPF检查的IPv4单播路由的能力,并引入直连路由。
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 192.168.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 multicast
[RouterA-bgp-default-mul-ipv4] peer 192.168.1.2 enable
[RouterA-bgp-default-mul-ipv4] import-route direct
[RouterA-bgp-default-mul-ipv4] quit
[RouterA-bgp-default] quit
# 在Router B上配置其与Router A建立EBGP会话,使能Router A与Router B交换用于RPF检查的IPv4单播路由的能力,并引入OSPF路由。
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 192.168.1.1 as-number 100
[RouterB-bgp-default] address-family ipv4 multicast
[RouterB-bgp-default-mul-ipv4] peer 192.168.1.1 enable
[RouterB-bgp-default-mul-ipv4] import-route ospf 1
[RouterB-bgp-default-mul-ipv4] quit
[RouterB-bgp-default] quit
(5) 配置MSDP对等体
# 在Router A上配置MSDP对等体。
[RouterA] msdp
[RouterA-msdp] peer 192.168.1.2 connect-interface gigabitethernet 0/0/2
[RouterA-msdp] quit
# 在Router B上配置MSDP对等体。
[RouterB] msdp
[RouterB-msdp] peer 192.168.1.1 connect-interface gigabitethernet 0/0/1
[RouterB-msdp] quit
# 执行display bgp peer ipv4 multicast命令查看BGP IPv4组播对等体。以Router B为例:
[RouterB] display bgp peer ipv4 multicast
BGP local router ID : 2.2.2.2
Local AS number : 200
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
192.168.1.1 100 56 56 0 0 00:40:54 Established
# 执行display msdp brief命令查看路由器之间MSDP对等体的建立情况。以Router B为例:
[RouterB] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
192.168.1.1 Established 00:07:17 100 1 0
Router A位于AS 100,同时与组播源以及Internet网络相连;Router B和Router C位于AS 200,接入Internet用户以及组播用户。需要实现组播流量和单播流量分离,使得从AS 100进入AS 200的Internet数据通过Router B转发给Internet用户,组播数据通过Router C转发给组播用户。
(1) 配置各路由器接口的IP地址和单播路由协议
¡ 请按照图2-7配置各接口的IP地址和子网掩码,具体配置过程略。
¡ 配置AS 200内的各路由器之间采用OSPF路由协议交换路由信息(AS内各路由器使用的OSPF进程号为1),确保各AS内部在网络层互通,能学到彼此Loopback接口的路由,具体配置过程略。
(2) 配置BGP会话建立
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10.1.1.2 as-number 200
[RouterA-bgp-default] peer 10.2.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 multicast
[RouterA-bgp-default-mul-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-mul-ipv4] peer 10.2.1.2 enable
[RouterA-bgp-default-mul-ipv4] quit
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 10.2.1.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 10.1.1.1 as-number 100
[RouterB-bgp-default] peer 10.10.1.2 as-number 200
[RouterB-bgp-default] address-family ipv4 multicast
[RouterB-bgp-default-mul-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-mul-ipv4] peer 10.10.1.2 enable
[RouterB-bgp-default-mul-ipv4] quit
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 10.10.1.2 enable
[RouterB-bgp-default-ipv4] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.2.1.1 as-number 100
[RouterC-bgp-default] peer 10.10.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 multicast
[RouterC-bgp-default-mul-ipv4] peer 10.2.1.1 enable
[RouterC-bgp-default-mul-ipv4] peer 10.10.1.1 enable
[RouterC-bgp-default-mul-ipv4] quit
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.2.1.1 enable
[RouterC-bgp-default-ipv4] peer 10.10.1.1 enable
[RouterC-bgp-default-ipv4] quit
(3) 配置用于单播流量转发的BGP单播路由信息,以及用于组播RPF检查的BGP单播路由信息
# 配置Router B。
[RouterB-bgp-default] address-family ipv4 multicast
[RouterB-bgp-default-mul-ipv4] network 2.2.2.2 32
[RouterB-bgp-default-mul-ipv4] network 10.10.1.0 24
[RouterB-bgp-default-mul-ipv4] quit
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] network 10.10.1.0 24
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC-bgp-default] address-family ipv4 multicast
[RouterC-bgp-default-mul-ipv4] network 2.2.2.2 32
[RouterC-bgp-default-mul-ipv4] network 10.10.1.0 24
[RouterC-bgp-default-mul-ipv4] quit
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] network 10.10.1.0 24
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(4) 通过路由策略来修改Router B和Router C发布的路由信息的MED值,使得Router A优选来自Router B的用于单播流量转发的BGP单播路由信息,并优选来自Router C的用于组播RPF检查的BGP单播路由信息,以实现单播流量优先发往Router B,组播流量优先发往Router C。
# 配置Router B。
[RouterB] acl basic 2077
[RouterB-acl-ipv4-basic-2077] rule permit source 10.10.1.0 0.0.0.255
[RouterB-acl-ipv4-basic-2077] quit
[RouterB] route-policy b2a permit node 10
[RouterB-route-policy-b2a-10] if-match ip address acl 2077
[RouterB-route-policy-b2a-10] apply cost 200
[RouterB-route-policy-b2a-10] quit
[RouterB] route-policy b2a permit node 20
[RouterB-route-policy-b2a-20] quit
[RouterB] bgp 200
[RouterB-bgp-default] address-family ipv4 multicast
[RouterB-bgp-default-mul-ipv4] peer 10.1.1.1 route-policy b2a export
[RouterB-bgp-default-mul-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC] acl basic 2077
[RouterC-acl-ipv4-basic-2077] rule permit source 10.10.1.0 0.0.0.255
[RouterC-acl-ipv4-basic-2077] quit
[RouterC] route-policy b2a permit node 10
[RouterC-route-policy-b2a-10] if-match ip address acl 2077
[RouterC-route-policy-b2a-10] apply cost 200
[RouterC-route-policy-b2a-10] quit
[RouterC] route-policy b2a permit node 20
[RouterC-route-policy-b2a-20] quit
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.2.1.1 route-policy b2a export
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(5) 配置IP组播功能
# 配置Router A。
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] pim sm
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] pim sm
[RouterA-GigabitEthernet0/0/2] quit
[RouterA] interface loopback 0
[RouterA-LoopBack0] pim sm
[RouterA-LoopBack0] quit
[RouterA] pim
[RouterA-pim] c-bsr 1.1.1.1
[RouterA-pim] c-rp 1.1.1.1
[RouterA-pim] quit
# 配置Router B。
[RouterB] multicast routing
[RouterB-mrib] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] pim sm
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] pim sm
[RouterB-GigabitEthernet0/0/2] igmp enable
[RouterB-GigabitEthernet0/0/2] quit
[RouterB] interface loopback 0
[RouterB-LoopBack0] pim sm
[RouterB-LoopBack0] quit
# 配置Router C。
[RouterC] multicast routing
[RouterC-mrib] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] pim sm
[RouterC-GigabitEthernet0/0/1] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] pim sm
[RouterC-GigabitEthernet0/0/2] igmp enable
[RouterC-GigabitEthernet0/0/2] quit
[RouterC] interface loopback 0
[RouterC-LoopBack0] pim sm
[RouterC-LoopBack0] quit
[RouterC] pim
[RouterC-pim] c-bsr 3.3.3.3
[RouterC-pim] c-rp 3.3.3.3
[RouterC-pim] quit
(6) 配置BSR的服务边界
# 配置Router A。
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] pim bsr-boundary
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] pim bsr-boundary
[RouterA-GigabitEthernet0/0/2] quit
# 配置Router B。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] pim bsr-boundary
[RouterB-GigabitEthernet0/0/1] quit
# 配置Router C。
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] pim bsr-boundary
[RouterC-GigabitEthernet0/0/1] quit
(7) 配置MSDP对等体
# 配置Router A。
[RouterA] msdp
[RouterA-msdp] peer 10.1.1.2 connect-interface gigabitethernet 0/0/1
[RouterA-msdp] peer 10.2.1.2 connect-interface gigabitethernet 0/0/2
[RouterA-msdp] quit
# 配置Router B。
[RouterB] msdp
[RouterB-msdp] peer 10.1.1.1 connect-interface gigabitethernet 0/0/1
[RouterB-msdp] quit
# 配置Router C。
[RouterC] msdp
[RouterC-msdp] peer 10.2.1.1 connect-interface gigabitethernet 0/0/1
[RouterC-msdp] quit
# 在Router A上,查看BGP IPv4单播路由信息,以及BGP IPv4组播路由信息。
[RouterA] display bgp routing-table ipv4 unicast
Total number of routes: 2
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 10.10.1.0/24 10.1.1.2 0 0 200i
* e 10.2.1.2 200 0 200i
[RouterA] display bgp routing-table ipv4 multicast
Total number of routes: 6
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 2.2.2.2/32 10.1.1.2 0 0 200i
* e 10.2.1.2 0 200i
* >e 3.3.3.3/32 10.2.1.2 0 0 200i
* e 10.1.1.2 0 200i
* >e 10.10.1.0/24 10.2.1.2 0 0 200i
* e 10.1.1.2 200 0 200i
可以看到,Device A优选了来自Router B的用于单播流量转发的BGP单播路由信息,并优选了来自Router C的用于组播RPF检查的BGP单播路由信息
# 在Device A上,查看MSDP对等体的建立情况。
[RouterA] display msdp brief
Configured Established Listen Connect Shutdown Disabled
2 2 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
10.1.1.2 Established 00:40:17 200 0 0
10.2.1.2 Established 00:41:17 200 0 0
为了实现路由的分开管理和维护,Router A使用不同的BGP实例与Router B以及Router C建立BGP会话,使得Router A可以获得Router B以及Router C的路由的同时,也不会向它们传播对方的路由。
图2-8 BGP多实例配置组网图
(1) 配置各接口的IP地址(略)。
(2) 配置BGP连接。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 10.1.1.1
[RouterA-bgp-default] peer 10.1.1.2 as-number 100
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
[RouterA] bgp 200 instance toc
[RouterA-bgp-toc] router-id 10.2.1.1
[RouterA-bgp-toc] peer 10.2.1.2 as-number 200
[RouterA-bgp-toc] address-family ipv4 unicast
[RouterA-bgp-toc-ipv4] peer 10.2.1.2 enable
[RouterA-bgp-toc-ipv4] quit
[RouterA-bgp-toc] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 100
[RouterB-bgp-default] peer 10.1.1.1 as-number 100
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] peer 10.2.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.2.1.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 配置路由发布
# 配置Router B。
[RouterB] ip route-static 192.168.10.10 32 null 0
[RouterB] bgp 100
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] import-route static
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC] ip route-static 192.168.20.20 32 null 0
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] import-route static
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router A、Router B以及Router C的IP路由表。
[RouterA] display ip routing-table
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 GE0/0/1
10.1.1.255/32 Direct 0 0 10.1.1.1 GE0/0/1
10.2.1.0/24 Direct 0 0 10.2.1.1 GE0/0/2
10.2.1.1/32 Direct 0 0 127.0.0.1 GE0/0/2
10.2.1.255/32 Direct 0 0 10.2.1.1 GE0/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.10/32 BGP 255 0 10.1.1.2 GE0/0/1
192.168.20.20/32 BGP 255 0 10.2.1.2 GE0/0/2
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
[RouterB] display ip routing-table
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.2 GE0/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 GE0/0/1
10.1.1.255/32 Direct 0 0 10.1.1.2 GE0/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.10.10/32 Static 60 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
[RouterC] display ip routing-table
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.2.1.0/24 Direct 0 0 10.2.1.2 GE0/0/1
10.2.1.2/32 Direct 0 0 127.0.0.1 GE0/0/1
10.2.1.255/32 Direct 0 0 10.2.1.2 GE0/0/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
192.168.20.20/32 Static 60 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,Router A同时接收到了来自Router B和Router C的路由,而Router B和Router C的路由表中只存在自己发布的路由,不存在对方发布的路由。
如图2-9所示,所有路由器均运行IPv6 BGP协议。Router A位于AS 65008;Router B和Router C位于AS 65009。要求Router A和Router B之间建立EBGP连接,Router B和Router C之间建立IBGP连接,使得Router C能够访问Router A直连的50::/64网段。
图2-9 IPv6 BGP基本配置组网图
(1) 配置各接口的IPv6地址及Loopback接口的IPv4地址(略)
(2) 配置IBGP连接
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 9::2 as-number 65009
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 9::2 enable
[RouterB-bgp-default-ipv6] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 9::1 as-number 65009
[RouterC-bgp-default] address-family ipv6
[RouterC-bgp-default-ipv6] peer 9::1 enable
(3) 配置EBGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10::1 as-number 65009
[RouterA-bgp-default] address-family ipv6
[RouterA-bgp-default-ipv6] peer 10::1 enable
# 配置Router B。
[RouterB-bgp-default] peer 10::2 as-number 65008
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 10::2 enable
(4) 配置通过IPv6 BGP发布的网段路由
# 配置Router A。
[RouterA-bgp-default-ipv6] network 10:: 64
[RouterA-bgp-default-ipv6] network 50:: 64
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB-bgp-default-ipv6] network 10:: 64
[RouterB-bgp-default-ipv6] network 9:: 64
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC-bgp-default-ipv6] network 9:: 64
[RouterC-bgp-default-ipv6] quit
[RouterC-bgp-default] quit
# 在Router B上查看IPv6 BGP对等体的信息。可以看出,Router A和Router B之间建立了EBGP连接,Router B和Router C之间建立了IBGP连接。
[RouterB] display bgp peer ipv6
BGP local router ID: 2.2.2.2
Local AS number: 65009
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
9::2 65009 41 43 0 1 00:29:00 Established
10::2 65008 38 38 0 2 00:27:20 Established
# 在Router A上查看IPv6 BGP路由表信息。可以看出,Router A学习到了AS 65009内的路由信息。
[RouterA] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 9:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 10:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* e Network : 10:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 50:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
# 在Router C上查看IPv6 BGP路由表信息。可以看出,Router C学习到了到达50::/64网段的路由。
[RouterC] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* > Network : 9:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* i Network : 9:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 10:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 50:: PrefixLen : 64
NextHop : 10::2 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65008i
# 在Router C上可以ping通50::/64网段内的主机。(略)
· 网络中存在两个自治系统:IPv6 PIM-SM 1属于AS 100,IPv6 PIM-SM 2属于AS 200。各AS内部采用OSPFv3交换路由信息,AS之间采用IPv6 MBGP交换用于RPF检查的IPv6单播路由信息。
· IPv6组播源属于AS 100内的IPv6 PIM-SM 1,接收者则属于AS 200内的IPv6 PIM-SM 2。
· 在Router A 和Router B上使能Anycast-RP功能。
图2-10 IPv6 MBGP配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Source |
- |
1002::100/64 |
Router B |
GE0/0/1 |
1001::2/64 |
Router A |
GE0/0/1 |
1002::1/64 |
|
GE0/0/2 |
2002::1/64 |
|
GE0/0/2 |
1001::1/64 |
|
GE0/0/3 |
2001::1/64 |
|
Loop0 |
1:1::1/128 |
|
Loop0 |
1:1::1/128 |
|
Loop1 |
1:1::2/128 |
|
Loop1 |
2:2::2/128 |
Router C |
GE0/0/1 |
3002::1/64 |
Router D |
GE0/0/1 |
2002::2/64 |
|
GE0/0/2 |
2001::2/64 |
|
GE0/0/2 |
3001::2/64 |
|
GE0/0/3 |
3001::1/64 |
|
|
|
(1) 配置IPv6地址和IPv6单播路由协议
¡ 按照图2-10配置各接口的IPv6地址和前缀长度,具体配置过程略。
¡ 配置AS 200内的各路由器之间采用OSPFv3路由协议交换路由信息(AS内各路由器使用的OSPFv3进程号为1),确保各AS内部在网络层互通,具体配置过程略。
(2) 使能IPv6组播路由,使能IPv6 PIM-SM和MLD,并配置BSR的服务边界
# 在Router A上使能IPv6组播路由,在各接口上使能IPv6 PIM-SM。
<RouterA> system-view
[RouterA] ipv6 multicast routing
[RouterA-mrib6] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] ipv6 pim sm
[RouterA-GigabitEthernet0/0/1] quit
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ipv6 pim sm
[RouterA-GigabitEthernet0/0/2] quit
[RouterA] interface loopback 0
[RouterA-LoopBack0] ipv6 pim sm
[RouterA-LoopBack0] quit
Router B和Router D上的配置与Router A相似,配置过程略。
# 在Router C上使能IPv6组播路由,在各接口上使能IPv6 PIM-SM,并在主机侧接口GigabitEthernet0/0/1上使能MLD。
<RouterC> system-view
[RouterC] ipv6 multicast routing
[RouterC-mrib6] quit
[RouterC] interface gigabitethernet 0/0/2
[RouterC-GigabitEthernet0/0/2] ipv6 pim sm
[RouterC-GigabitEthernet0/0/2] quit
[RouterC] interface gigabitethernet 0/0/3
[RouterC-GigabitEthernet0/0/3] ipv6 pim sm
[RouterC-GigabitEthernet0/0/3] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] ipv6 pim sm
[RouterC-GigabitEthernet0/0/1] mld enable
[RouterC-GigabitEthernet0/0/1] quit
# 在Router A上配置BSR的服务边界。
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ipv6 pim bsr-boundary
[RouterA-GigabitEthernet0/0/2] quit
# 在Router B上配置BSR的服务边界。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] ipv6 pim bsr-boundary
[RouterB-GigabitEthernet0/0/1] quit
(3) 使能Anycast-RP功能,并指定C-BSR和C-RP
# 配置Router A。
[RouterA] ipv6 pim
[RouterA-pim6] anycast-rp 1:1::1 1:1::2
[RouterA-pim6] anycast-rp 1:1::1 2:2::2
[RouterA-pim6] c-bsr 1:1::1
[RouterA-pim6] c-rp 1:1::1
[RouterA-pim6] quit
# 配置Router B。
[RouterB] ipv6 pim
[RouterB-pim6] anycast-rp 1:1::1 1:1::2
[RouterB-pim6] anycast-rp 1:1::1 2:2::2
[RouterB-pim6] c-bsr 1:1::1
[RouterB-pim6] c-rp 1:1::1
[RouterB-pim6] quit
(4) 配置BGP协议,建立BGP IPv6组播对等体,并引入路由
# 在Router A上配置其与Router B建立EBGP会话,使能Router A与Router B交换用于RPF检查的IPv6单播路由的能力,并引入直连路由。
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 1001::2 as-number 200
[RouterA-bgp-default] address-family ipv6 multicast
[RouterA-bgp-default-mul-ipv6] peer 1001::2 enable
[RouterA-bgp-default-mul-ipv6] import-route direct
[RouterA-bgp-default-mul-ipv6] quit
# 在Router B上配置其与Router A建立EBGP会话,使能Router A与Router B交换用于RPF检查的IPv6单播路由的能力,并引入OSPFv3路由。
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 1001::1 as-number 100
[RouterB-bgp-default] address-family ipv6 multicast
[RouterB-bgp-default-mul-ipv6] peer 1001::1 enable
[RouterB-bgp-default-mul-ipv6] import-route ospfv3 1
[RouterB-bgp-default-mul-ipv6] quit
(5) 在Router A和Router B之间建立BGP IPv6单播对等体,并引入路由,以便在不同域的两个RP之间转发注册报文
# 在Router A上使能与Router B交换IPv6单播路由的能力,并引入直连路由。
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] peer 1001::2 enable
[RouterA-bgp-default-ipv6] import-route direct
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 在Router B上使能与Router A交换IPv6单播路由的能力,并引入直连路由。
[RouterB-bgp-default] address-family ipv6 unicast
[RouterB-bgp-default-ipv6] peer 1001::1 enable
[RouterB-bgp-default-ipv6] import-route direct
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 执行display bgp peer ipv6 multicast命令查看BGP IPv6组播对等体。以Router B为例:
[RouterB] display bgp peer ipv6 multicast
BGP local router ID : 2.2.2.2
Local AS number : 200
Total number of peers : 3 Peers in established state : 3
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
1001::1 100 56 56 0 0 00:40:54 Established
# 执行display ipv6 multicast rpf-info命令查看组播源的RPF信息。以Router B为例:
[RouterB] display ipv6 multicast rpf-info 1002::1
RPF information about source 1002::1:
RPF interface: GE0/0/1, RPF neighbor: 1001::1
Referenced prefix/prefix length: 1002::/64
Referenced route type: mbgp
Route selection rule: preference-preferred
Load splitting rule: disable
使用display bgp peer ipv4 unicast命令或display bgp peer ipv6 unicast命令查看BGP对等体的信息,发现与对端的连接无法进入Established状态。
BGP邻居的建立需要能够使用179端口建立TCP会话,以及能够正确交换Open消息。
(1) 执行display current-configuration命令查看当前配置,检查邻居的AS号配置是否正确。
(2) 执行display bgp peer ipv4 unicast命令或display bgp peer ipv6 unicast命令检查邻居的IP地址/IPv6地址是否正确。
(3) 如果使用Loopback接口,检查是否配置了peer connect-interface命令。
(4) 如果是物理上非直连的EBGP邻居,检查是否配置了peer ebgp-max-hop命令。
(5) 如果配置了peer ttl-security hops命令,请检查对端是否也配置了该命令,且保证双方配置的hop-count不小于两台设备实际需要经过的跳数。
(6) 检查路由表中是否存在到邻居的可用路由。
(7) 使用ping命令检查链路是否畅通。
(8) 使用display tcp verbose命令或display ipv6 tcp verbose命令检查TCP连接是否正常。
检查是否配置了禁止TCP端口179的ACL。
大规模BGP网络配置任务如下:
· 配置BGP团体
· 配置BGP联盟
¡ (可选)配置联盟兼容性
通过配置BGP路由衰减,可以抑制不稳定的路由信息,不允许这类路由参与路由选择。
本配置只对EBGP路由生效,对IBGP路由无效。
配置本功能后,EBGP邻居down了之后,来自该邻居的路由不会被删除,而是进行路由衰减。
主备倒换后,BGP路由的衰减过程和衰减信息会被重置,设备需要重新计算BGP路由的衰减机制。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由衰减。
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
缺省情况下,未配置BGP路由衰减。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置IPv6 BGP路由衰减。
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
缺省情况下,未配置IPv6 BGP路由衰减。
缺省情况下,本地路由器不向对等体/对等体组发布团体属性和扩展团体属性。如果接收到的路由中携带团体属性或扩展团体属性,则本地路由器删除该团体属性或扩展团体属性后,再将路由发布给对等体/对等体组。
通过本配置可以允许本地路由器在向对等体发布路由时携带团体属性或扩展团体属性,以便根据团体属性或扩展团体属性对路由进行过滤和控制。本配置和路由策略配合使用,可以灵活地控制路由中携带的团体属性和扩展团体属性值,例如在路由中添加团体属性或扩展团体属性、修改路由中原有的团体属性或扩展团体属性值。路由策略的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 创建路由策略,并进入该路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
有关本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(3) (可选)配置if-match子句。BGP路由只有能够被允许模式的路由策略节点匹配,才能够被添加或修改团体属性。
有关if-match子句的详细配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(4) 配置BGP路由的团体属性和扩展团体属性。
¡ 配置BGP路由的团体属性。
apply community { none | additive | { community-number&<1-32> | aa:nn&<1-32> | internet | no-advertise | no-export | no-export-subconfed } * [ additive ] }
¡ 删除BGP路由的团体属性。
apply comm-list { comm-list-number | comm-list-name } delete
¡ 配置BGP路由的链路带宽扩展团体属性或Route Target扩展团体属性。
apply extcommunity { bandwidth link-bandwidth-value | { rt route-target }&<1-32> } [ additive ]
¡ 配置BGP路由的Color扩展团体属性。
apply extcommunity color color [ additive ]
¡ 配置BGP路由的SoO扩展团体属性。
apply extcommunity soo site-of-origin&<1-32> [ additive ]
有关本步骤命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(5) 退回系统视图。
quit
(6) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(7) 配置向对等体/对等体组发布团体属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-community
interface-peer interface-type interface-number advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(8) 配置向对等体/对等体组发布扩展团体属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
interface-peer interface-type interface-number advertise-ext-community
缺省情况下,不向对等体/对等体组发布扩展团体属性。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(9) 对发布给对等体/对等体组的路由指定路由策略。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
interface-peer interface-type interface-number route-policy route-policy-name export
缺省情况下,不指定对等体/对等体组的路由策略。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 创建路由策略,并进入该路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
有关本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(3) (可选)配置if-match子句。BGP路由只有能够被允许模式的路由策略节点匹配,才能够被添加或修改团体属性。
有关if-match子句的详细配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(4) 配置BGP路由的团体属性和扩展团体属性。
¡ 配置BGP路由的团体属性。
apply community { none | additive | { community-number&<1-32> | aa:nn&<1-32> | internet | no-advertise | no-export | no-export-subconfed } * [ additive ] }
¡ 删除BGP路由的团体属性。
apply comm-list { comm-list-number | comm-list-name } delete
¡ 配置BGP路由的链路带宽扩展团体属性或Route Target扩展团体属性。
apply extcommunity { bandwidth link-bandwidth-value | { rt route-target }&<1-32> } [ additive ]
¡ 配置BGP路由的Color扩展团体属性。
apply extcommunity color color [ additive ]
¡ 配置BGP路由的SoO扩展团体属性。
apply extcommunity soo site-of-origin&<1-32> [ additive ]
有关本步骤命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(5) 退回系统视图。
quit
(6) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(7) 配置向对等体/对等体组发布团体属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } advertise-community
interface-peer interface-type interface-number advertise-community
缺省情况下,不向IPv6 BGP对等体/对等体组发布团体属性。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
(8) 配置向对等体/对等体组发布扩展团体属性。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } advertise-ext-community
interface-peer interface-type interface-number advertise-ext-community
缺省情况下,不向IPv6 BGP对等体/对等体组发布扩展团体属性。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
(9) 对发布给IPv6 BGP对等体/对等体组的路由指定路由策略。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } route-policy route-policy-name export
interface-peer interface-type interface-number route-policy route-policy-name export
缺省情况下,不指定对等体/对等体组的路由策略。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
如果同一个AS内有多个BGP路由器,为了减少在同一AS内建立的IBGP连接数,可以将一台BGP路由器配置为路由反射器,其他路由器作为前者的客户机,使反射器和它的客户机组成为一个集群。集群内部通过路由反射器在客户机之间反射路由,各客户机之间不需要建立BGP连接即可交换路由信息。
为了增加网络的可靠性和防止单点故障,可以在一个集群中配置一个以上的路由反射器,这时,网络管理员必须给位于相同集群中的每个路由反射器配置相同的集群ID,以避免路由环路。
当一台路由反射器可能连接网络中的多个集群时,可以为不同对等体/对等体组指定集群ID,以便对路由反射进行更精细控制。
BGP路由反射功能仅需在作为反射器的设备上进行配置,其他设备不需要感知本机在反射功能中作为客户机或是非客户机。
设备被配置为路由反射器后,发布路由的规则如下:
· 将从IBGP对等体中非客户机设备收到的路由,发布给本反射器的所有客户机;
· 将从IBGP对等体中客户机收到的路由,发布给本反射器所有的非客户机和客户机;
· 将从所有EBGP对等体收到的路由,发布给本反射器所有的非客户机和客户机。
针同一个对等体/对等体组同时配置reflector cluster-id和peer cluster-id命令,则以peer cluster-id命令为准。如果未配置peer cluster-id命令为对等体/对等体组指定集群ID,则该对等体/对等体组的集群ID以reflector cluster-id命令的配置为准。
为了防止路由循环,缺省情况下,路由反射器在反射路由时不允许修改任何BGP路由属性。但在某些特殊场景下,网络管理员需要对网络流量进行重新规划时,需要修改BGP路由的属性,此时可以配置reflect change-path-attribute命令,允许路由反射器在反射BGP路由时修改路由的属性。配置reflect change-path-attribute命令后,可以通过peer route-policy export命令修改发布路由的路由属性,在peer route-policy export命令指定的路由策略中,可以通过apply命令生效的路由属性修改包括:
· 通过apply origin命令修改路由的源属性。
· 通过apply ip-address next-hop或apply ipv6 next-hop命令修改路由的下一跳属性。
· 通过apply cost命令修改路由的MED属性。
· 通过apply local-preference命令修改路由的本地优先级属性。
· 通过apply community命令为路由添加、修改团体属性。如需向BGP对等体发布携带团体属性的路由,需要执行peer advertise-community命令开启向对等体发布携带团体属性路由的能力。
· 通过apply comm-list delete命令删除路由携带的团体属性。
· 通过apply extcommunity命令为路由添加、修改扩展团体属性中的链路带宽属性或Route Target属性。如需向BGP对等体发布携带扩展团体属性的路由,需要执行peer advertise-ext-community命令开启向对等体发布携带扩展团体属性路由的能力。
· 通过apply extcommunity color命令为路由添加、修改Color扩展团体属性。
· 通过apply extcommunity soo命令为路由添加、修改SoO扩展团体属性。
· 通过apply aigp命令为路由添加、修改AIGP属性。如需向BGP对等体发布携带AIGP属性的路由,需要执行peer aigp命令开启向对等体发布携带AIGP属性路由的能力。
有关上述apply命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 为对等体/对等体组配置路由反射器的集群ID。
peer { group-name | ipv4-address [ mask-length ] } cluster-id cluster-id
缺省情况下,没有为对等体/对等体组配置路由反射器的集群ID。
(4) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
仅BGP实例视图下支持本配置。
(5) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
interface-peer interface-type interface-number reflect-client
缺省情况下,未配置路由反射器及其客户机。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(6) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(7) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(8) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 为对等体/对等体组配置路由反射器的集群ID。
peer { group-name | ipv6-address [ prefix-length ] } cluster-id cluster-id
缺省情况下,没有为对等体/对等体组配置路由反射器的集群ID。
(4) 进入BGP IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
仅BGP实例视图下支持本配置。
(5) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } reflect-client
interface-peer interface-type interface-number reflect-client
缺省情况下,未配置路由反射器及其客户机。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
(6) (可选)允许路由反射器在客户机之间反射路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
(7) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(8) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
路由反射器从某个对等体接收到路由后,在反射该路由之前为其添加ORIGINATOR_ID属性,标识该路由在本AS内的起源。ORIGINATOR_ID属性的值为该对等体的Router ID。BGP路由器接收到路由后,将路由中的ORIGINATOR_ID属性值与本地的Router ID进行比较,如果二者相同则丢弃该路由,从而避免路由环路。
在某些特殊的组网中(如防火墙组网),如果需要接收ORIGINATOR_ID属性值与本地Router ID相同的路由,则需要通过本配置忽略BGP路由的ORIGINATOR_ID属性。
请谨慎使用本命令。如果无法确保执行本命令后网络中不会产生环路,请不要执行本命令。
执行本命令后,BGP路由的CLUSTER_LIST属性也会被忽略。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置忽略BGP路由的ORIGINATOR_ID属性。
peer { group-name | ipv4-address [ mask-length ] } ignore-originatorid
缺省情况下,BGP路由器不会忽略BGP路由的ORIGINATOR_ID属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置忽略BGP路由的ORIGINATOR_ID属性。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } ignore-originatorid
interface-peer interface-type interface-number ignore-originatorid
缺省情况下,BGP路由器不会忽略BGP路由的ORIGINATOR_ID属性。
在某些特殊组网中,需要在不同AS域中的边界设备间建立EBGP对等体的全连接关系。当对等体数目很多时,全连接对网络资源和设备性能的消耗很大。为了解决上述问题,配置一台设备作为Route Server,需要建立全连接的边界设备与Route Server建立对等体,这些边界设备将作为Route Server的客户机。
Route Server向客户机发送路由时,即使存在修改路由属性的相关配置,设备也不会修改EBGP路由的AS_Path、Next_Hop和MED属性。该机制使得客户机之间不需要建立EBGP全连接也能学习到彼此的路由,并且客户机之间的流量转发也不需要经过Route Server。
配置本功能时,如果未指定external参数,则Route Server向客户机发送路由时,也不会修改IBGP路由的AS_Path、Next_Hop和MED属性。这样可能会导致IBGP路由在EBGP对等体上不生效。为了解决这一问题,在Router Server需要向EBGP对等体发布IBGP路由时,请在配置本命令时指定external参数。指定external参数后,Router Server将可以对IBGP路由的AS_Path、Next_Hop和MED属性进行修改,例如在AS_Path属性中添加当前AS的AS号、将下一跳属性修改为本地设备的地址等。
在本机上配置Route Server功能后,向指定对等体发送的EBGP路由中不会携带自己的AS号,因此对端设备上需要配置peer ignore-first-as命令,不检查从指定EBGP对等体发来的更新消息中AS_Path属性的第一个AS号,否则邻居关系无法正常建立。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 在本机上开启Route Server功能,配置对等体/对等体组作为Route Server的客户机。
peer { group-name | ipv4-address [ mask-length ] } route-server-client [ external ]
缺省情况下,未配置Route Server功能及其客户机。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 在本机上开启Route Server功能,配置对等体/对等体组作为Route Server的客户机。
peer { group-name | ipv6-address [ prefix-length ] } route-server-client [ external ]
缺省情况下,未配置Route Server功能及其客户机。
联盟是处理AS内部的IBGP网络连接激增的另一种方法,它将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系,子自治系统之间建立EBGP连接关系。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置联盟的ID。
confederation id as-number
缺省情况下,未配置联盟的ID。
在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整体,联盟ID就是标识联盟这一整体的自治系统号。
(4) 配置联盟中的子自治系统。
confederation peer-as as-number-list
缺省情况下,未配置联盟中的子自治系统。一个联盟最多可包括32个子自治系统,配置属于联盟的子自治系统时使用的as-number仅在联盟内部有效。
如果路由器与联盟中的其它子自治系统建立EBGP邻居关系,需要在该路由器上指定该联盟体中除了自己还包含哪些子自治系统。
如果其他路由器的联盟实现机制不同于RFC 3065标准,可以通过如下配置与未采用RFC 3065配置的AS联盟兼容。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置设备可以与未遵循RFC 3065实现联盟的路由器互通。
confederation nonstandard
缺省情况下,设备不能与未遵循RFC 3065实现联盟的路由器互通。
可在任意视图下执行以下命令:
· 显示BGP IPv4单播路由的路由衰减参数。
display bgp [ instance instance-name ] dampening parameter ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
· 显示BGP IPv4单播对等体组的信息。
display bgp [ instance instance-name ] group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 显示BGP IPv4单播地址族下的对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ ipv6-address prefix-length | ipv6-address log-info | [ ipv6-address ] verbose ]
· 显示衰减的BGP IPv4单播路由信息。
display bgp [ instance instance-name ] routing-table dampened ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
可在任意视图下执行以下命令:
· 显示BGP IPv6单播路由的路由衰减参数。
display bgp [ instance instance-name ] dampening parameter ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
· 显示BGP IPv6单播对等体组的信息。
display bgp [ instance instance-name ] group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 显示BGP IPv6单播地址族下的对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ 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 dampened ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
可在任意视图下执行以下命令:
· 显示BGP IPv4组播对等体组的信息。
display bgp [ instance instance-name ] group ipv4 multicast [ group-name group-name ]
· 显示BGP IPv4组播对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv4 multicast [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
· 显示衰减的BGP IPv4组播路由信息。
display bgp [ instance instance-name ] routing-table dampened ipv4 multicast
· 显示BGP IPv4组播路由的路由衰减参数。
display bgp [ instance instance-name ] dampening parameter ipv4 multicast
可在任意视图下执行以下命令:
· 显示BGP IPv6组播对等体组的信息。
display bgp [ instance instance-name ] group ipv6 multicast [ group-name group-name ]
· 显示BGP IPv6组播对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv6 multicast [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
· 显示衰减的BGP IPv6组播路由信息。
display bgp [ instance instance-name ] routing-table dampened ipv6 multicast
· 显示BGP IPv6组播路由的路由衰减参数。
display bgp [ instance instance-name ] dampening parameter ipv6 multicast
可在任意视图下执行以下命令:
· 显示BGP IPv4单播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv6单播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv4组播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 显示BGP IPv6组播路由的震荡统计信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
请在用户视图下执行以下命令:
· 清除BGP IPv4单播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ mask-length | mask ] | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv4组播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv4 multicast [ ipv4-address [ mask-length | mask ] | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv6单播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
· 清除BGP IPv6组播路由的震荡统计信息。
reset bgp [ instance instance-name ] flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
Router B分别与Router A、Router C之间建立EBGP连接。
通过在Router A上配置NO_EXPORT团体属性,使得AS 10发布到AS 20中的路由,不会再被AS 20发布到其他AS。
图3-1 BGP团体组网图
(1) 配置各接口的IP地址(略)
(2) 配置EBGP
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 10
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 200.1.2.2 as-number 20
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 enable
[RouterA-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 20
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 200.1.2.1 as-number 10
[RouterB-bgp-default] peer 200.1.3.2 as-number 30
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 200.1.2.1 enable
[RouterB-bgp-default-ipv4] peer 200.1.3.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 30
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 200.1.3.1 as-number 20
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 200.1.3.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由发送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Advertised to peers (1 in total):
200.1.3.2
可以看出,Router B能够把到达目的地址9.1.1.0/24的路由通过BGP发布出去。
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 9.1.1.0/24 200.1.3.1 0 20 10i
可以看出,Router C从Router B那里学到了目的地址为9.1.1.0/24的路由。
(3) 配置BGP团体属性
# 配置路由策略。
[RouterA] route-policy comm_policy permit node 0
[RouterA-route-policy-comm_policy-0] apply community no-export
[RouterA-route-policy-comm_policy-0] quit
# 应用路由策略。
[RouterA] bgp 10
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 route-policy comm_policy export
[RouterA-bgp-default-ipv4] peer 200.1.2.2 advertise-community
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
Community : No-Export
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由发送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Not advertised to any peers yet
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 0
在Router B的BGP路由表中可以看到配置的团体属性,Router B不会通过BGP将到达目的地址9.1.1.0/24的路由发布出去。
所有路由器运行BGP协议,Router A与Router B建立EBGP连接,Router C与Router B和Router D之间建立IBGP连接。
Router C作为路由反射器,Router B和Router D为Router C的客户机。
Router D能够通过Router C学到路由20.0.0.0/8。
图3-2 配置BGP路由反射器的组网图
(1) 配置各接口的IP地址,并在AS 200内配置OSPF(略)
(2) 配置BGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
# 通告20.0.0.0/8网段路由到BGP路由表中。
[RouterA-bgp-default-ipv4] network 20.0.0.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 193.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 next-hop-local
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 193.1.1.2 as-number 200
[RouterC-bgp-default] peer 194.1.1.2 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 enable
[RouterC-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 194.1.1.1 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(3) 配置路由反射器
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] peer 194.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 20.0.0.0/8 192.1.1.1 0 0 100i
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 20.0.0.0/8 193.1.1.2 0 100 0 100i
可以看出,Router D从Router C已经学到了20.0.0.0/8路由。
AS 200中有多台BGP路由器,为了减少IBGP的连接数,现将他们划分为3个子自治系统:AS 65001、AS 65002和AS 65003。其中AS 65001内的三台路由器建立IBGP全连接。
图3-3 配置联盟组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Router A |
GE0/0/1 |
10.1.2.1/24 |
Router D |
GE0/0/1 |
10.1.5.1/24 |
|
GE0/0/2 |
10.1.3.1/24 |
|
GE0/0/2 |
10.1.3.2/24 |
|
GE0/0/3 |
10.1.4.1/24 |
Router E |
GE0/0/1 |
10.1.5.2/24 |
|
GE0/0/4 |
200.1.1.1/24 |
|
GE0/0/2 |
10.1.4.2/24 |
|
GE0/0/5 |
10.1.1.1/24 |
Router F |
GE0/0/1 |
9.1.1.1/24 |
Router B |
GE0/0/1 |
10.1.1.2/24 |
|
GE0/0/2 |
200.1.1.2/24 |
Router C |
GE0/0/1 |
10.1.2.2/24 |
|
(1) 配置各接口的IP地址(略)
(2) 配置BGP联盟
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65001
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] confederation id 200
[RouterA-bgp-default] confederation peer-as 65002 65003
[RouterA-bgp-default] peer 10.1.1.2 as-number 65002
[RouterA-bgp-default] peer 10.1.2.2 as-number 65003
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.2.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.1.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.2.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65002
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] confederation id 200
[RouterB-bgp-default] confederation peer-as 65001 65003
[RouterB-bgp-default] peer 10.1.1.1 as-number 65001
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65003
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] confederation id 200
[RouterC-bgp-default] confederation peer-as 65001 65002
[RouterC-bgp-default] peer 10.1.2.1 as-number 65001
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 配置AS 65001内的IBGP连接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 10.1.3.2 as-number 65001
[RouterA-bgp-default] peer 10.1.4.2 as-number 65001
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.3.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.4.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.3.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.4.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 65001
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] confederation id 200
[RouterD-bgp-default] peer 10.1.3.1 as-number 65001
[RouterD-bgp-default] peer 10.1.5.2 as-number 65001
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
[RouterD-bgp-default-ipv4] peer 10.1.5.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 配置Router E。
<RouterE> system-view
[RouterE] bgp 65001
[RouterE-bgp-default] router-id 5.5.5.5
[RouterE-bgp-default] confederation id 200
[RouterE-bgp-default] peer 10.1.4.1 as-number 65001
[RouterE-bgp-default] peer 10.1.5.1 as-number 65001
[RouterE-bgp-default] address-family ipv4 unicast
[RouterE-bgp-default-ipv4] peer 10.1.4.1 enable
[RouterE-bgp-default-ipv4] peer 10.1.5.1 enable
[RouterE-bgp-default-ipv4] quit
[RouterE-bgp-default] quit
(4) 配置AS 100和AS 200之间的EBGP连接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 200.1.1.2 as-number 100
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.1.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router F。
<RouterF> system-view
[RouterF] bgp 100
[RouterF-bgp-default] router-id 6.6.6.6
[RouterF-bgp-default] peer 200.1.1.1 as-number 200
[RouterF-bgp-default] address-family ipv4 unicast
[RouterF-bgp-default-ipv4] peer 200.1.1.1 enable
[RouterF-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterF-bgp-default-ipv4] quit
[RouterF-bgp-default] quit
# 查看Router B的BGP路由表。Router C的BGP路由表与此类似。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.1.1 0 100 0 (65001)
100i
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 65002
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.1.1 (1.1.1.1)
Rely nexthop : 10.1.1.1
Original nexthop: 10.1.1.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : (65001) 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, external-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.3.1 0 100 0 100i
[RouterD] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 4.4.4.4
Local AS number: 65001
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.3.1 (1.1.1.1)
Rely nexthop : 10.1.3.1
Original nexthop: 10.1.3.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
通过以上显示信息可以看出:
· Router F只需要和Router A建立EBGP连接,而不需要和Router B、Router C建立连接,同样可以通过联盟将路由信息传递给Router B和Router C。
· Router B和Router D在同一个联盟里,但是属于不同的子自治系统,它们都是通过Router A来获取外部路由信息,生成的BGP路由表项也是一致的,等效于在同一个自治系统内,但是又不需要物理上全连接。
BGP具有很多路由属性,通过配置这些属性可以控制BGP路径的选择。
控制BGP路径选择的配置任务如下:
(1) 配置BGP的路由优先级
(2) 配置NEXT_HOP属性
¡ 配置向IPv6 BGP对等体发布路由时下一跳信息只携带全球单播地址
(3) 为接收路由分配首选值
(4) 配置本地优先级的缺省值
(5) 配置AS_PATH属性
¡ 配置发送BGP更新消息时AS_PATH属性中不携带私有AS号
(6) 配置MED属性
¡ 配置MED缺省值
¡ 配置允许比较来自同一联盟不同子自治系统邻居路由的MED属性值
¡ 配置BGP选路时综合考虑MED值与到达路由下一跳的IGP Metric值
(7) 配置链路带宽属性
(9) 配置AIGP属性
(10) 修改BGP的选路规则
本配置步骤对BGP选路规则的具体影响,请参见“BGP的选路规则”。
¡ 配置BGP在选择最优路由时忽略IGP Metric的比较
(11) 配置BGP与Track联动
(12) 配置来自指定对等体/对等体组的BGP路由中如果携带了Graceful-Shutdown团体属性,则将该路由的优先级调整至最低
路由器上可能同时运行多个动态路由协议,存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优先选择。路由的优先级数值越小表明路由的优先级越高。
用户可以通过preference命令修改EBGP路由、IBGP路由以及本地产生的BGP路由的优先级,或应用路由策略为通过匹配规则过滤的特定路由配置优先级,没有通过过滤的路由使用缺省优先级。
缺省情况下,EBGP路由的优先级低于本地产生的BGP路由的优先级。设备上存在到达某一目的网络的EBGP路由和本地产生的BGP路由时,不会选择EBGP路由。通过执行network short-cut命令将一条EBGP路由配置成short-cut,可以使得指定EBGP路由的优先级与本地产生的BGP路由的优先级相同,从而提高该EBGP路由成为最佳路由的可能性。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由的优先级。
preference { external-preference internal-preference local-preference | route-policy route-policy-name }
缺省情况下,EBGP路由的优先级为255,IBGP路由的优先级为255,本地产生的BGP路由的优先级为130。
使用preference命令为本地产生的BGP路由配置的优先级,目前仅影响通过aggregate命令手动聚合生成的路由。
(4) (可选)提高接收到的指定EBGP路由的路由优先级。
network ipv4-address [ mask-length | mask ] short-cut
缺省情况下,接收到的EBGP路由的路由优先级为255。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP路由的优先级。
preference { external-preference internal-preference local-preference | route-policy route-policy-name }
缺省情况下,EBGP路由的优先级为255,IBGP路由的优先级为255,本地产生的BGP路由的优先级为130。
使用preference命令为本地产生的BGP路由配置的优先级,目前仅影响通过aggregate命令手动聚合生成的路由。
(4) (可选)提高接收到的指定EBGP路由的路由优先级。
network ipv6-address prefix-length short-cut
(5) 缺省情况下,接收到的EBGP路由的路由优先级为255。
(6)
缺省情况下,路由器向IBGP对等体/对等体组发布路由时,不将自身地址作为下一跳,但有的时候为了保证IBGP邻居能够找到下一跳,可以配置将自身地址作为下一跳。以下图为例,Router A与Router B建立EBGP邻居关系,Router B与Router C建立IBGP邻居关系,Router B在向Router C发布从Router A学到的BGP路由时,如果Router C上没有到达1.1.1.1/24的路由,可以在Router B上配置peer next-hop-local命令将3.1.1.1/24作为下一跳,这样,Router C就能找到下一跳。
图4-1 配置BGP NEXT_HOP属性应用组网图一
在一些比较特殊的组网环境中(即两个BGP连接在同一网段的广播网),路由器向EBGP对等体/对等体组发布路由时不会将自身地址作为下一跳,以下图为例:Router A与Router B建立EBGP邻居关系,Router B与Router C建立IBGP邻居关系,两个BGP连接都位于同一个广播网1.1.1.0/24中,Router B向Router A发布EBGP路由时不会将自身地址1.1.1.2/24作为下一跳,但如果用户有需要,也可以通过配置peer next-hop-local命令实现将自身地址1.1.1.2/24作为下一跳。
图4-2 配置BGP NEXT_HOP属性应用组网图二
如果配置了BGP负载分担,则不论是否配置了peer next-hop-local命令,本地路由器向IBGP对等体/对等体组发布路由时都先将下一跳地址改变为自身地址。
如果当前设备是路由反射器,则在未配置reflect change-path-attribute命令的情况下,即使配置了peer next-hop-local命令,该设备也无法修改反射路由的下一跳属性。同时配置了reflect change-path-attribute和peer next-hop-local命令时,路由反射器才能修改反射路由的下一跳属性。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-local
interface-peer interface-type interface-number next-hop-local
缺省情况下,设备向EBGP对等体发布路由时,如果建立的是直连EBGP会话,且路由的下一跳与建立EBGP会话使用的直连接口在同一网段,则不修改路由的下一跳属性;其他情况下,都将下一跳属性修改为自身的地址。设备向IBGP对等体/对等体组发布路由时,不修改下一跳属性。例外的是,设备向IBGP对等体发送形成了等价的BGP路由时,修改其中最优路由的下一跳地址为本地地址。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } next-hop-local
interface-peer interface-type interface-number next-hop-local
缺省情况下,设备向EBGP对等体发布路由时,如果建立的是直连EBGP会话,且路由的下一跳与建立EBGP会话使用的直连接口在同一网段,则不修改路由的下一跳属性;其他情况下,都将下一跳属性修改为自身的地址。设备向IBGP对等体/对等体组发布路由时,不修改下一跳属性。例外的是,设备向IBGP对等体发送形成了等价的BGP路由时,修改其中最优路由的下一跳地址为本地地址。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
配置本功能后,设备在向IBGP以及EBGP对等体发布BGP路由时均不会修改下一跳属性。本功能用于缺省的路由发布行为会对路由信息的发布产生阻碍的特殊组网。
例如,在多AS域组网场景下,需要设备跨AS域传递路由的时候不修改路由的下一跳属性。如图4-3所示,分属两个不同AS的接入网PE设备PE 1和PE 2之间有端对端的公网IP业务,且通过BGP IPv4/IPv6单播地址族传递BGP路由,此时需要两台PE上的BGP路由的下一跳均为对端PE,以实现端对端的业务调度。
接入网的PE设备均与骨干网的PE设备建立EBGP邻居,并通过骨干网设备传递路由。这种情况下,骨干网PE设备将BGP路由通过EBGP发送给PE 1或PE 2设备时会修改路由下一跳,导致接入网PE收到BGP路由的下一跳不为对端PE。要避免这种情况,需要在骨干网PE设备上配置peer next-hop-invariable命令,使其将路由传递出骨干网AS域时候不修改路由的下一跳属性。
对于直连EBGP会话,由于设备不会接收下一跳与本地接口地址不在同一网段的BGP路由,请谨慎配置本功能,以免直连EBGP对等体无法接收到路由。
配置本功能后,用户仍可以通过设置基于路由策略的BGP路由发布策略,来修改发布路由的下一跳。
无论是否配置本功能,设备向IBGP对等体发送本地引入的IGP路由时,都会将下一跳属性修改为自身的地址。
对于同一个对等体/对等体组,不能同时配置将下一跳属性修改为自身的地址功能和不修改下一跳属性功能。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置向指定对等体/对等体组发布路由时,不修改路由的下一跳属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情况下,设备向EBGP对等体/对等体组发布路由时,将下一跳属性修改为自身的地址;向IBGP对等体/对等体组发布路由时,不修改下一跳属性。例外的是,设备向IBGP对等体发送形成了等价的BGP路由时,修改其中最优路由的下一跳地址为本地地址。
BGP IPv4组播地址族视图下不支持IPv6参数。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(4) 配置向指定对等体/对等体组发布路由时,不修改路由的下一跳属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情况下,设备向EBGP对等体/对等体组发布路由时,将下一跳属性修改为自身的地址;向IBGP对等体/对等体组发布路由时,不修改下一跳属性。例外的是,设备向IBGP对等体发送形成了等价的BGP路由时,修改其中最优路由的下一跳地址为本地地址。
BGP IPv6组播地址族视图下不支持IPv4参数。
配置undo nexthop global-address-only命令后,本地设备向直连IPv6 EBGP对等体发布路由时,其携带的下一跳属性可能同时包含全球单播地址和链路本地地址,若对等体无法解析该路由更新报文,将导致对等体路由学习失败。为了避免上述情况的发生,需要在本地设备配置向IPv6 BGP对等体发布路由时下一跳信息只携带全球单播地址功能。配置本功能后,本端向对端发布的路由信息中将仅携带全球单播地址。
配置本功能后,存在一种例外情况:本端设备与对端设备使用直连接口建立EBGP邻居关系,且本端设备发布的路由信息的下一跳与建立EBGP邻居关系使用的直连接口地址在同一网段、直连接口为广播类型的接口时,本端向对端发布的路由信息中仍会同时携带全球单播地址和链路本地地址。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置向IPv6 BGP对等体发布路由时下一跳信息只携带全球单播地址。
nexthop global-address-only
缺省情况下,设备向IPv6 BGP对等体发布路由时,下一跳信息只携带全球单播地址。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置向IPv6 BGP对等体发布路由时下一跳信息只携带全球单播地址。
nexthop global-address-only
缺省情况下,设备向IPv6 BGP对等体发布路由时,下一跳信息只携带全球单播地址。
BGP选择路由时首先丢弃下一跳不可达的路由,其次优选Preferred-value值最大的路由。通过本配置,可以修改路由的Preferred-value,以便控制BGP路径的选择。
缺省情况下,从对等体/对等体组学到的路由的首选值为0,网络管理员可以为从某个对等体/对等体组接收的路由配置首选值,从而提高从指定对等体/对等体组学到的路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 为从对等体/对等体组接收的路由分配首选值。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
interface-peer interface-type interface-number preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 为从IPv6 BGP对等体/对等体组接收的路由分配首选值。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } preferred-value value
interface-peer interface-type interface-number preferred-value value
缺省情况下,从IPv6 BGP对等体/对等体组接收的路由的首选值为0。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
本地优先级用来判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择本地优先级较高的路由。
用户可以通过本配置改变BGP路由器向IBGP对等体发送的路由本地优先级的缺省值。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置本地优先级的缺省值。
default local-preference value
缺省情况下,本地优先级的缺省值为100。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置本地优先级的缺省值。
default local-preference value
缺省情况下,本地优先级的缺省值为100。
通常情况下,BGP会检查对等体发来的路由的AS_PATH属性,如果其中已存在本地AS号,则BGP会忽略此路由,以免形成路由环路。
但是,在某些特殊的组网环境下(如MPLS L3VPN的Hub&Spoke组网),需要允许本地AS号在接收路由的AS_PATH属性中出现,否则无法正确发布路由。通过本配置,可以允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许出现的次数。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置允许本地AS号在对等体/对等体组接收路由的AS_PATH属性中出现,并配置允许出现的次数。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
interface-peer interface-type interface-number allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置允许本地AS号在对等体/对等体组接收路由的AS_PATH属性中出现,并配置允许出现的次数。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } allow-as-loop [ number ]
interface-peer interface-type interface-number allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
路由器在选择最优路由时会优选AS路径最短的路由,通过如下配置BGP在选择最优路由时会忽略AS_PATH属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在选择最优路由时忽略AS_PATH属性。
bestroute as-path-neglect [ all-instance ]
缺省情况下,BGP将AS_PATH属性作为选择最优路由的一个条件。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
进行系统移植时,例如,Router A原来位于AS 2,现在将它移植到AS 3里,网络管理员需要在Router A的所有EBGP对等体上修改Router A所在的AS号。通过在Router A上为EBGP对等体/对等体组配置一个虚拟的本地自治系统号2,可以将本地真实的AS号3隐藏起来。在EBGP对等体看来Router A始终位于AS 2,不需要改变EBGP对等体上的配置,如图4-4所示。
配置虚拟AS号的同时,还可以指定如下参数:
· dual-as:允许本地路由器通过真实AS号或虚拟AS号与对端建立连接。指定dual-as参数后,本地路由器将交替使用真实AS号和虚拟AS号尝试与对端建立连接,直至连接成功建立:
¡ 首次尝试建立连接时,优先使用真实AS号;
¡ 连接断开后尝试重新建立连接时,优先使用断开前的AS号。
· prepend-fake-as:从指定对等体接收路由时在AS_Path列表中增加虚拟AS号。
· prepend-global-as:向指定对等体发送路由时在AS_Path列表中增加真实AS号。
仅在设备使用虚拟AS号与对等体建立会话时,prepend-fake-as和prepend-global-as参数的配置才会生效。
只能为EBGP对等体和对等组配置peer fake-as命令。通过peer fake-as命令指定的虚拟本地自治系统号可以与对等体的AS号相同,此时:
· 如果使用虚拟AS号成功建立BGP连接,则认为对等体为IBGP对等体;如果使用真实AS号成功建立BGP,则认为对等体为EBGP对等体。
· 仅IBGP对等体支持的功能、仅EBGP对等体支持的功能均可以为该对等体配置,但仅与成功建立的对等体连接类型匹配的配置会生效。
· 执行peer fake-as命令将as-number参数修改为与peer as-number命令指定的as-number参数不同或执行undo peer fake-as命令后,设备会自动清除此对等体上所有仅对IBGP对等体生效的配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 为对等体/对等体组指定一个虚拟的本地自治系统号。
peer { group-name | ipv4-address [ mask-length ] } fake-as as-number [ dual-as | prepend-fake-as | prepend-global-as ] *
缺省情况下,对等体/对等体组未配置虚拟的本地自治系统号。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 为对等体/对等体组指定一个虚拟的本地自治系统号。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } fake-as as-number [ dual-as | prepend-fake-as | prepend-global-as ] *
interface-peer interface-type interface-number fake-as as-number
缺省情况下,对等体/对等体组未配置虚拟的本地自治系统号。
在MPLS L3VPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的站点分配不同的AS号。
如果物理位置不同的CE复用相同的AS号,则需要在PE上配置BGP的AS号替换功能。当PE向指定对等体(CE)发布路由时,如果路由的AS_PATH中存在CE所在的AS号,则PE将该AS号替换成PE的AS号后,再发布该路由,以保证私网路由能够正确发布。
图4-5 BGP AS号替换应用示意图(以IPv4为例)
如图4-5所示,CE 1和CE 2都使用AS号800,在PE 2上使能针对CE 2的AS号替换功能。当CE 1发来的Update信息从PE 2发布给CE 2时,PE 2发现AS_PATH中存在与CE 2相同的AS号800,就把它替换为自己的AS号100。如果需要完全的连接性,PE 1上也需要做类似的配置。
本配置仅用于特定的组网环境。通常情况下,建议不要使用本配置,否则可能会引起路由环路。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置用本地AS号替换AS_PATH属性中指定对等体/对等体组的AS号。
peer { group-name | ipv4-address [ mask-length ] } substitute-as
缺省情况下,不会用本地AS号替换AS_PATH属性中指定对等体/对等体组的AS号。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置用本地AS号替换AS_PATH属性中指定对等体/对等体组的AS号。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } substitute-as
interface-peer interface-type interface-number substitute-as
缺省情况下,不会用本地AS号替换AS_PATH属性中指定对等体/对等体组的AS号。
私有AS号是内部使用的AS号,范围为64512~65535。私有AS号主要用于测试网络,一般情况下不需要在公共网络中传播。
可以通过peer public-as-only命令,配置向EBGP对等体发送BGP更新消息时删除或替换AS_PATH属性的私有AS号。执行该命令后,设备将按照下列规则对AS_PATH属性中的私有AS号进行删除或替换:
· 如果配置peer public-as-only命令时未指定force和limited参数,则AS_PATH属性中私有AS号的删除或替换原则如下。
¡ 如果向EBGP对等体/对等体组发送的BGP更新消息中AS_PATH属性只包括私有AS号,则删除私有AS号后,将BGP更新消息发送给对等体/对等体组。
¡ 如果AS_PATH属性中同时带有公有AS号和私有AS号,则本功能不生效,即不删除私有AS号,直接将BGP更新消息发送给对等体/对等体组。
¡ 如果AS_PATH属性中包括对等体/对等体组的AS号,则本功能不生效,即不删除私有AS号,直接将BGP更新消息发送给对等体/对等体组。
· 如果配置peer public-as-only命令时指定了force或limited参数,则AS_PATH属性中私有AS号的删除或替换原则如下。
¡ 配置了force参数时:
参数 |
使用说明 |
replace |
如果配置了replace参数,则强制将AS_Path属性中的私有AS号替换为本地AS号;如果未配置replace参数,则强制删除AS_Path属性中的私有AS号 |
include-peer-as |
如果配置了include-peer-as参数,则本功能指定的对等体/对等体组的AS号为私有AS号时,强制删除或替换AS_Path属性中的该AS号;如果未配置include-peer-as参数,则本功能指定的对等体/对等体组的AS号为私有AS号时,保留AS_Path属性中的该AS号 |
¡ 配置了limited参数时:
参数 |
使用说明 |
replace |
如果配置了replace参数,则从AS_Path属性的左边开始替换私有AS号为本地AS号,遇到本地或公有AS号时停止替换;如果未配置replace参数,则从AS_Path属性的左边开始删除私有AS号,遇到本地或公有AS号时停止删除 |
include-peer-as |
如果配置了include-peer-as参数,则本功能指定的对等体/对等体组的AS号为私有AS号时,从AS_Path属性的左边开始,删除或替换AS_Path属性中的该AS号,遇到本地或公有AS号时停止删除或替换。如果未配置include-peer-as参数,则本功能指定的对等体/对等体组的AS号为私有AS号时,保留AS_Path属性中的该AS号 |
本功能只适用于EBGP对等体和对等体组。
修改AS_Path属性,可能会引发路由环路,请谨慎使用本功能。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
interface-peer interface-type interface-number public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。请选择其中一项进行配置。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
interface-peer interface-type interface-number public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
本命令只适用于EBGP对等体和对等体组。
缺省情况下,从EBGP邻居学到路由后,会检测路由的第一个AS号。如果此AS号不是EBGP对等体的AS号,且不是私有AS号,则断开与该对等体的BGP会话。
通过本配置,可以忽略对EBGP路由第一个AS号的检测。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置不检测EBGP路由的第一个AS号。
ignore-first-as
缺省情况下,从EBGP邻居学到路由后,会检测路由的第一个AS号。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置不检测从指定对等体/对等体组收到的EBGP路由的第一个AS号。
peer { group-name | ipv4-address [ mask-length ] } ignore-first-as
缺省情况下,从EBGP邻居学到路由后,会检测路由的第一个AS号。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置不检测从指定对等体/对等体组收到的EBGP路由的第一个AS号。请选择其中一项进行配置。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } ignore-first-as
interface-peer interface-type interface-number ignore-first-as
缺省情况下,从EBGP邻居学到路由后,会检测路由的第一个AS号。
本功能用来配置BGP根据AS_Path属性中的AS号数量对BGP路由进行过滤,配置本功能后:
· 如果接收到的BGP路由中AS号数量超过配置的上限值,则该路由不会添加到BGP路由表中。
· 如果已发布的BGP路由中AS号数量超过配置的上限值,则发送Update消息撤销该路由。
配置本功能前已经接收到的路由不受本功能影响;本地聚合路由不受本功能影响。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置根据AS号数量对BGP路由进行过滤。
as-path-limit [ as-numbers ]
缺省情况下,BGP不根据BGP路由AS_Path属性中的AS号数量对BGP路由进行过滤。
MED用来判断流量进入AS时的最佳路由。当一个BGP路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED属性值较小者作为最佳路由。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置MED的缺省值。
default med med-value
缺省情况下,MED的缺省值为0。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置MED的缺省值。
default med med-value
缺省情况下,MED的缺省值为0。
缺省情况下,BGP只比较来自同一个AS的路由的MED属性值。通过配置本功能,可以强制BGP比较来自不同AS的路由的MED属性值。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置允许比较来自不同AS路由的MED属性值。
compare-different-as-med
缺省情况下,不允许比较来自不同AS路由的MED属性值,只比较来自同一个AS的路由的MED属性值。
缺省情况下,BGP选择最优路由时是将新的路由和当前BGP路由表中的最优路由进行比较,只要新的路由比当前BGP路由表中的最优路由更优,新的路由将成为最优路由,路由学习的顺序有可能会影响最优路由的选择结果。
图4-6 MED排序优选示意图(以IPv4为例)
如图4-6所示,Device D和Device A、Device B、Device C之间建立非直连EBGP邻居,通过OSPF学习到邻居地址1.1.1.1/32、2.2.2.2/32、3.3.3.3/32(设置不同的开销值)。在Device D上查看IP路由表信息:
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 O_INTRA 10 10 11.1.1.2 Interface D1
2.2.2.2/32 O_INTRA 10 20 12.1.1.2 Interface D2
3.3.3.3/32 O_INTRA 10 30 13.1.1.2 Interface D3
当Device D分别从Device A和Device B学习到到达网段10.0.0.0的路由时,由于来自Device B的路由的下一跳Metric值(即下一跳在IP路由表中的Cost值)较小,因此,从Device B学来的路由被选为最优路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
当Device D再从Device C学习到到达10.0.0.0网段的路由时,它只和当前路由表的最优路由进行比较。由于Device C和Device B位于不同的AS,选择路由时不会比较MED值,而来自Device C的路由的下一跳Metric值更小,相对更优,它将成为最优路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 1.1.1.1 60 0 200 400e
* e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
但是如果将这条路由与从Device A学习到的路由进行比较,那么由于两条路由来自同一个AS,且从Device C学习到的路由MED值更大,则从Device C学习到的路由应该视为无效路由。
在Device D上配置bestroute compare-med命令后,Device D学习到新的路由时,会首先按照路由来自的AS分组,对来自同一AS的路由根据MED值的大小进行优选,选出MED值最小的路由,然后再对优选出来的、来自不同AS的路由进行优选,从而避免路由优选结果的不确定性。配置对来自同一AS的路由进行MED排序优选后,从Device B学习到的到达10.0.0.0 网段的路由将成为最优路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
* e 1.1.1.1 60 0 200 400e
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置对来自同一AS的路由进行MED排序优选。
bestroute compare-med [ all-instance ]
缺省情况下,不会对来自同一AS的路由进行MED排序优选。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
只有AS_PATH里不包含联盟体外的自治系统编号时,才会比较来自同一联盟不同子自治系统邻居路由的MED属性值。例如,联盟中包含的子自治系统为65006、65007和65009。如果存在三条路由,它们的AS-PATH值分别为65006 65009、65007 65009和65008 65009,MED值分别为2、3、1,由于第三条路由包含了联盟体外的自治系统编号,因此在选择最优路由时第一条路由将成为最优路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置允许比较来自同一联盟不同子自治系统邻居路由的MED属性值。
bestroute med-confederation [ all-instance ]
缺省情况下,不比较来自同一联盟不同子自治系统邻居路由的MED属性值。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
缺省情况下,BGP在选路时,MED属性与到达路由下一跳的IGP Metric值分别作为单独的选路条件参与选路。配置本功能后,BGP在需要比较MED值进行选路时,将MED值与IGP Metric值分别乘以对应系数后,将二者相加,BGP会优选相加数值最小的路由。例如,在缺省情况下,MED属性不同的路由之间无法形成负载分担,配置本功能后,通过使用合适的参数,可以使路由的MED值与IGP Metric值乘以系数并相加后的数值相同,达到负载分担的目的。
如果BGP路由未携带MED属性,则在计算时将MED值视为0。
本功能对BGP L2VPN地址族下的路由优选不生效。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP选路时综合考虑MED值与到达路由下一跳的IGP Metric值。
bestroute med-plus-igp [ igp-multiplier igp-multiplier | med-multiplier med-multiplier ] * [ all-instance ]
缺省情况下,BGP通过MED值优选路由时,优选MED值最小的路由。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
缺省情况下,设备收到路由后,其中的MED属性只能被传递给IBGP对等体,不能被传递给EBGP对等体。
在某些需要进行特殊网络设计和精细路由策略控制的场景中,可能需要将路由的MED属性传递给EBGP对等体。
配置interface-peer/peer transmit-med-to-ebgp命令后,设备可以将收到的路由中的MED属性传递给指定的EBGP对等体/对等体组。
执行interface-peer/peer transmit-med-to-ebgp命令时,如果指定的对等体/对等体组为IBGP对等体/对等体组,则此命令无实际效果。
如果同时通过引用路由策略和interface-peer/peer transmit-med-to-ebgp命令为同一对等体/对等体组配置了向其发布路由时携带的MED属性,则以引用的路由策略中配置的apply cost为准。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置设备将BGP路由的MED属性传递给指定的EBGP对等体/对等体组。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } transmit-med-to-ebgp
interface-peer interface-type interface-number transmit-med-to-ebgp
缺省情况下,设备无法将收到的BGP路由中的MED属性传递给任何EBGP对等体。
BGP IPv4组播地址族视图下不支持IPv6参数和interface-peer命令。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置设备将BGP路由的MED属性传递给指定的EBGP对等体/对等体组。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } transmit-med-to-ebgp
interface-peer interface-type interface-number transmit-med-to-ebgp
缺省情况下,设备无法将收到的BGP路由中的MED属性传递给任何EBGP对等体。
BGP IPv6组播地址族视图下不支持IPv4参数、link-local-address interface interface-type interface-number参数和interface-peer命令。
流量在多条链路上进行负载分担时,如果不考虑链路带宽的差异,在等价链路上平均分配流量,就容易导致高速链路的带宽不能得到有效应用,低速链路的流量出现拥塞。通过BGP路由的链路带宽属性,可以实现UCMP(Unequal Cost Multiple Path,非等价多路径)负载分担,以解决上述问题。
链路带宽属性用来标识路由出接口的链路带宽。在设备上为EBGP对等体配置本功能后,设备收到来自该EBGP对等体的路由时,会为路由添加链路带宽属性,该属性携带当前BGP进程的AS号以及建立直连EBGP会话的接口带宽。如果通过balance命令配置了负载分担,且形成负载分担的所有BGP路由均携带了链路带宽属性,那么这些BGP路由会形成UCMP。在指导流量转发时,每条BGP路由承担的流量比例为该路由的链路带宽占所有UCMP路由链路带宽总和的比例。如图4-7所示,Device A从三个EBGP对等体分别接收到同一目的网络地址的路由,为这三条BGP路由添加的链路带宽分别为500kbps、1000kbps以及500kbps,则这三条BGP路由承担的流量比例为25%、50%以及25%。
图4-7 携带链路带宽属性的BGP路由指导UCMP负载分担转发
配置为对等体/对等体组添加链路带宽属性后,缺省情况下,添加链路带宽属性的BGP路由仅会发布给IBGP对等体,且为路由添加的链路带宽属性为可选非过渡属性。通过如下配置,可以调整携带链路带宽属性的BGP路由的发布:
· 如需将链路带宽属性发布给EBGP对等体,请配置peer advertise ebgp bandwidth命令。
· 如需让无法识别链路带宽属性的BGP对等体也能在转发BGP路由时携带链路带宽属性,请配置peer advertise bandwidth transitive命令将路由中携带的链路带宽属性转换成可选过渡属性。
在通过本功能为BGP路由添加链路带宽属性时,存在如下限制:
· 本功能仅对直连EBGP对等体/对等体组生效,如果指定的对等体/对等体组由直连EBGP邻居变为非直连EBGP邻居,则从该邻居接收到路由时,不再添加链路带宽属性。
· 只有同一目的网络地址的所有BGP路由均携带了链路带宽属性,这些路由才能形成UCMP负载分担,否则只能形成等价路径负载分担。
· BGP路由最多只能携带一个链路带宽属性,即接收到的路由已经携带了链路带宽属性时,无法再通过本功能为该路由添加链路带宽属性。
在发布携带链路带宽属性的BGP路由时,存在如下限制:
· 如果为指定BGP对等体/对等体组配置了peer route-policy export命令,且在该命令应用的路由策略中,通过apply extcommunity命令配置了BGP路由的链路带宽属性。则发送给该BGP对等体/对等体组的BGP路由中携带的链路带宽属性以peer route-policy export命令的配置为准。
· 设备接收到携带了链路带宽属性的BGP路由后,如果在将该路由转发出去时需要修改路由的下一跳地址,由于该路由指导转发的链路已经变化,携带的链路带宽不再是实际转发链路的带宽,因此,设备会删除链路带宽属性后再转发该路由。而设备接收到不带链路带宽属性的路由并为其添加链路带宽属性时,则无此限制。
· 在转发形成了UCMP的路由时,如果未通过Add-Path功能配置发布多条路由,则发布出去的最优路由会携带所有形成UCMP路由的链路带宽值之和;如果通过Add-Path功能配置发布了超过一条路由,则发布出去的路由的链路带宽值不会改变。
为BGP对等体/对等体组配置peer advertise-ext-community命令后,设备为路由添加的链路带宽属性才能发布给BGP对等体/对等体组。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 为对等体/对等体组配置链路带宽属性。
peer { group-name | ipv4-address [ mask-length ] } bandwidth [ bandwidth-value ]
缺省情况下,没有为对等体/对等体组配置链路带宽属性。
(4) (可选)配置将链路带宽属性发布给EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] } advertise ebgp bandwidth
缺省情况下,设备不会将链路带宽属性发布给EBGP对等体。
(5) (可选)配置将发布给指定对等体的BGP路由中携带的链路带宽属性转换为可选过渡属性。
peer { group-name | ipv4-address [ mask-length ] } advertise bandwidth transitive
缺省情况下,BGP路由中携带的链路带宽属性为可选非过渡属性。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 为对等体/对等体组配置链路带宽属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } bandwidth [ bandwidth-value ]
缺省情况下,没有为对等体/对等体组配置链路带宽属性。
仅BGP IPv6单播地址族支持IPv4参数。
(4) (可选)配置将链路带宽属性发布给EBGP对等体。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise ebgp bandwidth
缺省情况下,设备不会将链路带宽属性发布给EBGP对等体。
仅BGP IPv6单播地址族支持IPv4参数。
(5) (可选)配置将发布给指定对等体的BGP路由中携带的链路带宽属性转换为可选过渡属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise bandwidth transitive
缺省情况下,BGP路由中携带的链路带宽属性为可选非过渡属性。
仅BGP IPv6单播地址族支持IPv4参数。
缺省情况下,邻居Up后,设备会立即向该邻居发送BGP路由。如果此时设备的ARP/ND表项未收敛,匹配这些BGP路由的流量可能无法正常转发,造成丢包。可以通过配置本功能,使得设备在建立邻居后的一段时间之内发送低优先级的BGP路由,其他设备不会优选本设备发送的路由。等到本设备收敛完成后,再恢复路由的优先级,从而避免ARP/ND表收敛期间造成的丢包问题。
配置了本功能时,BGP邻居Up后,设备会将发送给邻居的BGP路由的本地优先级值调整为最小值0、MED值调整为最大值4294967295,并持续一段时间;持续时间结束后,设备会恢复路由原始的本地优先级值和MED值,并立即发送这些路由。之后,设备发送给邻居的BGP路由均携带原始的本地优先级值和MED值。
如需在发布最低优先级路由的持续时间内恢复发送的BGP路由的优先级,可以执行以下操作:
· 执行reset bgp advertise lowest-priority on-peer-up命令。执行该命令后,设备会立即发送一次携带原始本地优先级值和MED值的BGP路由给邻居,并且不再发送最低优先级的路由。但是,BGP邻居再次从Down变为Up后,设备仍会发布最低优先级的路由给邻居。
· 执行undo advertise lowest-priority on-peer-up duration命令。执行该命令后,设备会立即发送一次携带原始本地优先级值和MED值的BGP路由给邻居,并且后续发送的路由均携带原始本地优先级值和MED值。
本功能可以在BGP实例视图或在地址族视图下配置。在BGP实例视图下配置时,本功能对该BGP实例下所有的地址族生效;在地址族视图下配置时,本功能只对当前地址族生效。对于特定的地址族,以该地址族视图下的配置为准。
可以通过多次执行advertise lowest-priority on-peer-up duration命令,修改发送最低优先级路由的持续时间,配置该命令修改发送最低优先级路由的持续时间时:
· 如果已经处在发送最低优先级路由的持续时间内,则该配置会立即生效并刷新持续时间。例如,配置advertise lowest-priority on-peer-up duration 10命令后,邻居状态由Down变为Up的6秒后,如果再执行advertise lowest-priority on-peer-up duration 6命令,则接下来的6秒内,设备仍会向该邻居发送最低优先级的路由。
· 如果未处在发送最低优先级路由的持续时间内,则该配置在下一个邻居状态由Down变为Up时生效。
advertise lowest-priority on-peer-up duration、advertise lowest-priority on-startup duration、bgp update-delay on-startup和route-update-delay命令同时配置时会互相影响,具体的配置效果如表4-1所示。
命令行A |
命令行B |
配置效果 |
bgp update-delay on-startup |
BGP实例视图下配置advertise lowest-priority on-startup duration |
命令行A和命令行B的配置相互覆盖,最后一次执行的命令行生效 |
BGP实例视图下配置advertise lowest-priority on-peer-up duration |
假设命令行A指定的时间为TA,命令行B指定的时间为TB,设备重启且BGP进程恢复后,命令行A和命令行B的生效关系如下: · 如果TA≥TB,则仅命令行A生效 · 如果TA<TB,则设备先在TA时间内无法向邻居发送BGP路由,然后在(TB-TA)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 |
|
route-update-delay |
命令行A和命令行B的配置效果叠加,设备重启且BGP进程恢复后,需要等待命令行A指定的时间和TS时间之和,才能向BGP邻居发布路由。其中TS时间为peer route-update-interval命令和命令行B中配置的较大时间(如果对于要发送BGP路由的邻居,未指定该邻居配置peer route-update-interval命令,则比较peer route-update-interval命令的缺省值与命令行B中指定的值) |
|
在地址族视图下配置advertise lowest-priority on-startup duration |
在配置了命令行B的地址族下,仅命令行B的配置生效,命令行A的配置不生效,在未配置命令行B的地址族下,命令行A的配置生效 |
|
在地址族视图下配置advertise lowest-priority on-peer-up duration |
在未配置命令行B的地址族下,仅命令行A的配置生效。在配置了命令行B的地址族下,假设命令行A指定的时间为TA,命令行B指定的时间为TB,设备重启且BGP进程恢复后,命令行A和命令行B的生效关系如下: · 如果TA≥TB,则仅命令行A生效 · 如果TA<TB,则设备先在TA时间内无法向邻居发送BGP路由,然后在(TB-TA)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 |
|
route-update-delay |
BGP实例视图下配置advertise lowest-priority on-startup duration |
在BGP IPv4单播地址族、BGP-VPN IPv4单播地址族、BGP IPv6单播地址族和BGP-VPN IPv6单播地址族中,假设命令行B指定的时间为TB,设备重启且BGP进程恢复后,命令行A和命令行B的生效关系如下: · 如果TS≥TB,则仅命令行A生效 · 如果TS<TB,则设备先在TS时间内无法向邻居发送BGP路由,然后在(TB-TS)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 其中TS时间为peer route-update-interval命令和命令行A中配置的较大时间(如果对于要发送BGP路由的邻居,未指定该邻居配置peer route-update-interval命令,则比较peer route-update-interval命令的缺省值与命令行A中指定的值) |
BGP实例视图下配置advertise lowest-priority on-peer-up duration |
在BGP IPv4单播地址族、BGP-VPN IPv4单播地址族、BGP IPv6单播地址族和BGP-VPN IPv6单播地址族中,假设命令行B指定的时间为TB,BGP邻居状态由Down变为Up后,命令行A和命令行B的生效关系如下: · 如果TS≥TB,则仅命令行A生效 · 如果TS<TB,则设备先在TS时间内无法向邻居发送BGP路由,然后在(TB-TS)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 其中TS时间为peer route-update-interval命令和命令行A中配置的较大时间(如果对于要发送BGP路由的邻居,未指定该邻居配置peer route-update-interval命令,则比较peer route-update-interval命令的缺省值与命令行A中指定的值) |
|
在BGP IPv4单播地址族、BGP-VPN IPv4单播地址族、BGP IPv6单播地址族或BGP-VPN IPv6单播地址族视图下配置advertise lowest-priority on-startup duration |
在未配置命令行B的地址族下,仅命令行A的配置生效。在配置了命令行B的地址族下,假设命令行B指定的时间为TB,设备重启且BGP进程恢复后,命令行A和命令行B的生效关系如下: · 如果TS≥TB,则仅命令行A生效 · 如果TS<TB,则设备先在TS时间内无法向邻居发送BGP路由,然后在(TB-TS)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 其中TS时间为peer route-update-interval命令和命令行A中配置的较大时间(如果对于要发送BGP路由的邻居,未指定该邻居配置peer route-update-interval命令,则比较peer route-update-interval命令的缺省值与命令行A中指定的值) |
|
在BGP IPv4单播地址族、BGP-VPN IPv4单播地址族、BGP IPv6单播地址族或BGP-VPN IPv6单播地址族视图下配置advertise lowest-priority on-peer-up duration |
在未配置命令行B的地址族下,仅命令行A的配置生效。在配置了命令行B的地址族下,假设命令行B指定的时间为TB,BGP邻居状态由Down变为Up后,命令行A和命令行B的生效关系如下: · 如果TS≥TB,则仅命令行A生效 · 如果TS<TB,则设备先在TS时间内无法向邻居发送BGP路由,然后在(TB-TS)的持续时间内只能向邻居发送最低优先级的BGP路由。上述时间结束后,设备立即发送原始优先级的BGP路由并不再发送最低优先级的BGP路由 其中TS时间为peer route-update-interval命令和命令行A中配置的较大时间(如果对于要发送BGP路由的邻居,未指定该邻居配置peer route-update-interval命令,则比较peer route-update-interval命令的缺省值与命令行A中指定的值) |
|
BGP实例视图下配置advertise lowest-priority on-startup duration |
BGP实例视图下配置advertise lowest-priority on-peer-up duration |
命令行A和命令行B互斥 |
地址族视图下配置advertise lowest-priority on-peer-up duration |
在配置了命令行B的地址族下,仅命令行B生效;在未配置命令行B的地址族下,仅命令行A生效 |
|
BGP实例视图下配置advertise lowest-priority on-peer-up duration |
地址族视图下配置advertise lowest-priority on-startup duration |
在配置了命令行B的地址族下,仅命令行B生效;在未配置命令行B的地址族下,仅命令行A生效 |
地址族视图下配置advertise lowest-priority on-peer-up duration |
地址族视图下配置advertise lowest-priority on-startup duration |
在同一地址族下,命令行A和命令行B互斥 |
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置邻居状态由Down变为Up后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-peer-up duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置邻居状态由Down变为Up后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-peer-up duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置邻居状态由Down变为Up后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-peer-up duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
缺省情况下,设备重启且BGP进程恢复后,设备会立即向邻居发送携带正常属性的BGP路由。如果此时设备的ARP/ND表项尚未收敛,匹配这些BGP路由的流量可能无法转发,导致丢包。可以通过配置本功能,使得设备在重启且BGP进程恢复后的一段时间之内向邻居发送低优先级的路由,等到本设备完成收敛后,再恢复路由的优先级,从而解决ARP/ND表项收敛期间造成的丢包问题。
配置了本功能时,设备重启且BGP进程恢复后,会将发布给邻居的BGP路由的本地优先级值调整为最小值0,并将MED值调整为最大值4294967295。设备发送低优先级的路由会持续一段时间,持续时间结束后,设备会恢复路由原始的本地优先级值和MED值,并立即发送这些路由。之后,设备发送给邻居的BGP路由均携带原始的本地优先级值和MED值。
如需在发布最低优先级路由的持续时间内恢复发送的BGP路由的优先级,可以执行以下操作:
· 执行reset bgp advertise lowest-priority on-startup命令。执行该命令后,设备会立即发送一次携带原始本地优先级值和MED值的BGP路由给邻居,并且不再发送最低优先级的路由。但是,设备再一次重启后,仍会发布最低优先级的路由给邻居。
· 执行undo advertise lowest-priority on-startup duration命令。执行该命令后,设备会立即发送一次携带原始本地优先级值和MED值的BGP路由给邻居,并且后续发送的路由均携带原始本地优先级值和MED值。
本功能可以在BGP实例视图或在地址族视图下配置。在BGP实例视图下配置时,本功能对该BGP实例下对所有的地址族生效;在地址族视图下配置时,本功能只对当前地址族生效。对于特定的地址族,以该地址族视图下的配置为准。
本功能配置后不会立即生效,设备保存配置并重启后才会生效。
advertise lowest-priority on-peer-up duration、advertise lowest-priority on-startup duration、bgp update-delay on-startup和route-update-delay命令同时配置时会互相影响,具体的配置效果请参见“配置邻居状态由Down变为Up后发送最低优先级路由”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置设备重启且BGP进程恢复后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-startup duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置设备重启且BGP进程恢复后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-startup duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置设备重启且BGP进程恢复后,在指定的持续时间内将发送给邻居的BGP路由调整为最低优先级。
advertise lowest-priority on-startup duration seconds
缺省情况下,设备不修改发送给邻居的BGP路由的优先级。
配置了邻居状态由Down变为Up后发送最低优先级路由功能,或设备重启后发送最低优先级路由功能后,如果网络管理员认为设备已经可以发布正常优先级的路由,且需要确保邻居再次Up或设备再次重启后调整路由优先级功能仍生效,则可以配置本功能,实现在邻居Up或设备再次重启时恢复向BGP邻居发送正常优先级路由。
配置本功能后,设备会立即发送一次携带原始路由优先级值和MED值的BGP路由给邻居,并且不再发送最低优先级的路由。但是在邻居再次Up或设备再次重启后,仍会发布最低优先级的路由给邻居。
在用户视图下,配置恢复发送正常优先级的路由。
reset bgp [ instance instance-name ] advertise lowest-priority { on-peer-up | on-startup }
如果BGP路由器上配置了peer aigp命令,则该设备可以从指定的对等体/对等体组接收或向该对等体/对等体组发布携带AIGP属性的BGP路由。如果未配置peer aigp命令,则当设备从指定的对等体/对等体组接收到携带AIGP属性的路由时,会忽略该属性;向该对等体/对等体组发布路由时也不会携带AIGP属性。
当BGP为路由添加AIGP属性后,如果AIGP属性发生变化,则BGP会向邻居发送Update报文更新路由信息。
建议不要在AIGP管理域的边界设备上配置peer aigp命令向AIGP管理域外的路由器发布AIGP属性。
BGP路由器向对等体发布路由时,如果该路由未携带AIGP属性,当仅配置peer aigp命令时,发送路由不会携带AIGP属性;当配置了peer aigp命令,且通过配置apply aigp命令为路由添加AIGP属性后,发布路由会携带AIGP属性。关于apply aigp命令的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置为对等体/对等体组配置AIGP属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } aigp
缺省情况下,没有为BGP对等体/对等体组配置AIGP属性。
(4) (可选)配置将AIGP属性值拷贝到MED属性中发送给对等体/对等体组。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } aigp send med
缺省情况下,AIGP属性值不会拷贝到MED属性中发送给对等体/对等体组。
当邻居设备不支持AIGP功能时,可以在本端使用该命令,将路由信息中AIGP属性的累加Metric值放到MED属性中发送给邻居。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置为对等体/对等体组配置AIGP属性。
peer { group-name | ipv6-address [ prefix-length ] | ipv6-address [ prefix-length ] } aigp
缺省情况下,没有为BGP对等体/对等体组配置AIGP属性。
(4) (可选)配置将AIGP属性值拷贝到MED属性中发送给对等体/对等体组。
peer { group-name | ipv6-address [ prefix-length ] | ipv6-address [ prefix-length ] } aigp send med
缺省情况下,AIGP属性值不会拷贝到MED属性中发送给对等体/对等体组。
当邻居设备不支持AIGP功能时,可以在本端使用该命令,将路由信息中AIGP属性的累加Metric值放到MED属性中发送给邻居。
缺省情况下,BGP不为指定对等体/对等体组设置对等体高优先级,按照“BGP的选路规则”进行路由优选。执行本配置后,从配置中指定的对等体/对等体组、其他对等体/对等体组学习到相同前缀的路由时,优选从本配置指定的对等体/对等体组学习到路由。该选路规则应用于“依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由”之后,“优选IGP Metric值最小的路由”之前。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图、BGP-VPN IPv4单播地址族视图或BGP IPv4组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv4组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
BGP IPv4组播地址族视图不支持IPv6参数。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图、BGP-VPN IPv6单播地址族视图或BGP IPv6组播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP IPv6组播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
BGP IPv6组播地址族视图不支持IPv4参数。
从多个邻居收到多条相同前缀但不同路径的路由时,BGP需要选择到达该前缀的最佳路由来指导报文转发。缺省情况下,BGP会比较这些路由下一跳的IGP路由的Metric值,并优选IGP Metric值最小的路由。
配置了本功能后,BGP在选择最优路由时忽略IGP Metric的比较。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在选择最优路由时忽略IGP Metric的比较。
bestroute igp-metric-ignore [ all-instance ]
缺省情况下,BGP将IGP Metric作为选择最优路由的一个条件。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
BGP路由器在选择最优路由时会优选Router ID最小的路由器发布的路由。执行本配置后,BGP在选择最优路由时会忽略Router ID的比较。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在选择最优路由时忽略Router ID。
bestroute router-id-ignore [ all-instance ]
缺省情况下,BGP在选择最优路由时会优选Router ID最小的路由器发布的路由。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
BGP路由的下一跳可以迭代到如下类型的隧道:
· 标签转发路径LSP或MPLS TE隧道
· 通过GRE、VXLAN等方式建立的Tunnel接口
· SRv6 TE Policy
BGP路由的下一跳迭代到的隧道通过隧道ID唯一标识。用户可以通过display bgp routing-table命令详细显示信息中的Rely tunnel IDs字段查看。
BGP路由的下一跳可以同时迭代到IP地址以及隧道。缺省情况下,只有下一跳迭代到IP地址的BGP路由可以参与路由优选。在某些特殊组网中,中间设备对下一跳属性的修改可能使得接收到BGP路由的设备无法将其的下一跳迭代到IP地址,但是能够迭代到隧道。此时,该路由的下一跳可达,但是无法参与优选,导致流量转发失败。可以通过bestroute nexthop-resolved tunnel命令配置BGP路由的下一跳仅迭代到隧道、未迭代到IP地址时也可以参与选路,以保障流量的正常转发。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP路由的下一跳仅迭代到隧道时仍能参与选路。
bestroute nexthop-resolved tunnel [ all-instance ]
缺省情况下,只有迭代出下一跳IP地址的BGP路由可以参与路由优选。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
缺省情况下,BGP路由的下一跳迭代到IP地址或迭代到隧道时,对于BGP选路的优先级相同。配置本功能后,BGP会根据路由的下一跳迭代结果的类型,优选下一跳迭代到隧道或IP地址的路由。
本功能在BGP选路规则中的具体优先级顺序,请参见“BGP的选路规则”。
BGP路由的下一跳无法迭代到IP地址时,不能参与选路。如果BGP路由的下一跳仅迭代到隧道,则即使配置了本功能,该路由仍然无法参与路由优选。如需该路由参与优选,则需要配置bestroute nexthop-resolved tunnel命令。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP路由的下一跳迭代到隧道或IP地址时影响路由优选。
bestroute nexthop-type { ip | tunnel } [ preferred ] [ all-instance ]
缺省情况下,BGP路由的下一跳迭代到IP地址或迭代到隧道时,对于BGP选路的优先级相同。
多次执行本命令时,以最后一次执行的命令为准。
仅BGP实例视图支持all-instance参数。指定all-instance参数时,本命令在BGP实例的公网实例和所有VPN实例下均生效;如果未指定all-instance参数,则本命令仅在BGP实例的公网实例下生效。
在BGP实例视图和BGP-VPN实例视图下同时配置本命令、且在BGP实例视图下指定了all-instance参数时,BGP-VPN实例以该实例视图下的配置为准。
配置本功能后,BGP路由优选规则中的“如果当前的最优路由为EBGP路由,则BGP路由器收到来自不同的EBGP邻居的路由后,不会改变最优路由”这一规则将失效。当设备收到来自不同EBGP邻居的路由时,重新优选过程不会在这一步停止,而是继续按照后续的BGP选路规则进行判断,直至选出最优路由。
本功能在BGP选路规则中的具体优先级顺序,请参见“BGP的选路规则”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 更改设备在收到来自不同EBGP邻居路由时的优选规则。
bestroute compare-ebgp
缺省情况下,BGP路由器收到来自不同的EBGP邻居的路由后,如果经过“优选迭代深度值小的路由”优选规则后,当前最优EBGP路由仍不变,则不再进行后续优选规则判断,不改变当前最优EBGP路由。
通过BGP与Track的联动,本地设备可以监测与对等体之间会话状况,如对等体之间的接口链路状况等。BGP根据Track返回的状态修改从对等体收到的BGP路由的优先级,从而使得设备可以对网络状态的变化进行快速响应,避免由于链路故障等问题造成的流量丢失。配置本功能后,BGP将指定对等体与Track项进行绑定:
(1) Track项的状态为Negative时,通知BGP将从该对等体接收到的路由的优先级调至最低(将路由的MED值调至最大并将本地优先级调至最小)。
(2) Track项的状态恢复Positive时,通知BGP将从该对等体接收到的路由的MED值及本地优先级恢复至原来的值。
配置本功能时,指定的Track项必须已经存在,否则本功能不生效。建议将BGP与监测接口链路状态的Track项关联,以便直接判断本地设备与对等体之间的接口链路状态,并在接口链路状态为DOWN时,通知BGP模块调整路由优先级。有关Track项的详细介绍,请参见“可靠性配置指导”中的“Track”。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv4单播地址族视图或BGP-VPN IPv4单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP通过与Track的联动来调整BGP路由的优先级。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-priority-track track-entry-number
缺省情况下,BGP不会通过与Track的联动来调整BGP路由的优先级。
(1) 进入系统视图。
system-view
(2) 进入BGP IPv6单播地址族视图或BGP-VPN IPv6单播地址族视图。
¡ 请依次执行以下命令进入BGP IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv6单播地址族视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置BGP通过与Track的联动来调整BGP路由的优先级。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-priority-track track-entry-number
缺省情况下,BGP不会通过与Track的联动来调整BGP路由的优先级。
graceful-shutdown属性是一类特殊的团体属性,对应的团体号为65535:0。当设备发送的BGP路由中携带Graceful-Shutdown团体属性时,通常意味着此设备可能即将进行维护或升级、网络重配置、故障预防等动作,不能再正常进行业务转发。
因此,网络管理员可以调整选路策略,不优选携带了Graceful-Shutdown团体属性的BGP路由,以避免流量转发失败。
配置interface-peer/peer graceful-shutdown lowest-priority命令后,设备将来自指定对等体/对等体组的所有携带Graceful-Shutdown团体属性的BGP路由优先级调整至最低,调整方式为:
· 如果指定的对等体/对等体组为IBGP对等体/对等体组,则将BGP路由的本地优先级属性值调整为0。
· 如果指定的对等体/对等体组为EBGP对等体/对等体组,则将BGP路由的MED属性值调整为4294967295。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图或BGP-VPN实例视图。
¡ 进入BGP实例视图。
bgp as-number [ instance instance-name ]
¡ 请依次执行以下命令进入BGP-VPN实例视图。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置来自指定对等体/对等体组的BGP路由中如果携带了Graceful-Shutdown团体属性,则将该路由的优先级调整至最低。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } graceful-shutdown lowest-priority
interface-peer interface-type interface-number graceful-shutdown lowest-priority
缺省情况下,设备收到携带Graceful-Shutdown团体属性的BGP路由时,不调整该路由的优先级。
可在任意视图下执行以下命令,显示BGP的路由属性信息:
display bgp [ instance instance-name ] paths [ as-regular-expression ]
可在用户视图下执行以下命令,在设备发送最低优先级BGP路由的持续时间内,恢复发送正常优先级的路由:
reset bgp [ instance instance-name ] advertise lowest-priority { on-peer-up | on-startup }
所有路由器都运行BGP协议。Router A与Router B和Router C之间运行EBGP;Router D与Router B和Router C之间运行IBGP。
AS 200中运行OSPF协议。
通过路由策略为BGP路由配置本地优先级属性,使得Router D优选从Router C学到的1.0.0.0/8路由。
图4-8 本地优先级属性控制路径选择组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Router A |
GE0/0/1 |
1.0.0.1/8 |
Router D |
GE0/0/1 |
195.1.1.1/24 |
|
GE0/0/2 |
192.1.1.1/24 |
|
GE0/0/2 |
194.1.1.1/24 |
|
GE0/0/3 |
193.1.1.1/24 |
Router C |
GE0/0/1 |
193.1.1.2/24 |
Router B |
GE0/0/1 |
192.1.1.2/24 |
|
GE0/0/2 |
195.1.1.2/24 |
|
GE0/0/2 |
194.1.1.2/24 |
|
(1) 配置各接口的IP地址(略)
(2) 配置Router B、Router C和Router D之间运行OSPF协议
# 配置Router B。
<RouterB> system-view
[RouterB] ospf
[RouterB-ospf] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf
[RouterC-ospf] area 0
[RouterC-ospf-1-area-0.0.0.0] network 193.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] ospf
[RouterD-ospf] area 0
[RouterD-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
(3) 配置BGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] peer 193.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 193.1.1.2 enable
# 将1.0.0.0/8网段通告到Router A的BGP路由表中。
[RouterA-bgp-default-ipv4] network 1.0.0.0 8
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 200
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 194.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] peer 193.1.1.1 as-number 100
[RouterC-bgp-default] peer 195.1.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterC-bgp-default-ipv4] peer 195.1.1.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
[RouterD] bgp 200
[RouterD-bgp-default] peer 194.1.1.2 as-number 200
[RouterD-bgp-default] peer 195.1.1.2 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterD-bgp-default-ipv4] peer 195.1.1.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(4) 通过配置本地优先级,使得Router D优选从Router C学到的路由。
# 在Router C上定义编号为2000的IPv4基本ACL,允许1.0.0.0/8路由通过。
[RouterC] acl basic 2000
[RouterC-acl-ipv4-basic-2000] rule permit source 1.0.0.0 0.255.255.255
[RouterC-acl-ipv4-basic-2000] quit
# 在Router C上定义名为localpref的Route-policy,设置路由1.0.0.0/8的本地优先级为200(缺省的本地优先级为100)。
[RouterC] route-policy localpref permit node 10
[RouterC-route-policy-localpref-10] if-match ip address acl 2000
[RouterC-route-policy-localpref-10] apply local-preference 200
[RouterC-route-policy-localpref-10] quit
# 为从BGP对等体193.1.1.1的路由应用名为localpref的Route-policy。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 route-policy localpref import
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 2
BGP local router ID is 195.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 1.0.0.0/8 193.1.1.1 200 0 100i
* i 192.1.1.1 100 0 100i
可以看到,Router D从Router C学到1.0.0.0/8的路由是最优的。
所有路由器都运行BGP协议。Router A与Router B、Router C之间运行EBGP,Router A处于AS 100,Router B和Router C均处于AS 200。
Router A发往10.1.1.0/24网段的流量可以从Router B或Router C进入AS 200。
通过路由策略为BGP路由配置MED属性,使得Router A选择Router C作为流量进入AS 200的入口设备。
图4-9 MED属性控制路径选择组网图
(1) 配置各接口的IP地址(略)
(2) 配置BGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] peer 192.1.2.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 193.1.2.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] network 10.1.1.0 24
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] peer 192.1.2.1 as-number 100
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 192.1.2.1 enable
[RouterC-bgp-default-ipv4] network 10.1.1.0 24
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 通过配置MED属性,使得Router A优选从Router C学到的路由
# 在Router A上定义编号为2000的IPv4基本ACL,允许10.1.1.0/24路由通过。
[RouterA] acl basic 2000
[RouterA-acl-ipv4-basic-2000] rule permit source 10.1.1.0 0.0.0.255
[RouterA-acl-ipv4-basic-2000] quit
# 在Router A上定义名为med的路由策略,设置路由10.1.1.0/24的本地优先级为100(缺省的MED值为0)。
[RouterA] route-policy med permit node 10
[RouterA-route-policy-med-10] if-match ip address acl 2000
[RouterA-route-policy-med-10] apply cost 100
[RouterA-route-policy-med-10] quit
# 在Router A上,配置为从Router B收到的BGP路由应用路由策略med。
[RouterA] bgp 100
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 route-policy med import
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4 unicast
Total number of routes: 2
BGP local router ID is 192.1.2.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a - additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 10.1.1.0/24 192.1.2.2 0 0 200i
* e 192.1.1.2 100 0 200i
可以看到,Router A从Router C学到的10.1.1.0/24网段路由是最优的。
Router A、Router B和Router C处于三个不同的AS,分属于不同的组织。其中Router B与其他两台路由器通过EBGP会话实现互通。处于安全性考虑,Router A和Router C都不希望各自发布给Router B的路由信息被对方学习到。
基于此需求,通过在Router B上设置基于AS路径过滤列表的BGP路由过滤策略,使得Router B不向Router A发布来自Router C的路由,亦不向Router C发布来自Router A的路由,以实现AS 100和AS 300的相互隔离。
图4-10 AS路径属性控制路径选择组网图
(1) 配置各接口的IP地址(略)
(2) 配置BGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 12.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 12.1.1.2 enable
[RouterA-bgp-default-ipv4] network 10.8.8.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 100
[RouterB-bgp-default] peer 12.1.1.1 as-number 100
[RouterB-bgp-default] peer 12.1.2.1 as-number 300
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 12.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 12.1.2.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 100
[RouterC-bgp-default] peer 12.1.2.2 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 12.1.2.2 enable
[RouterC-bgp-default-ipv4] network 10.9.9.0 24
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 在Router B上设置基于AS路径过滤列表的BGP路由发布策略。
# 创建名为deny100的AS路径过滤列表,拒绝包含AS号100的BGP路由。正则表达式“_100_”表示匹配任何包含AS 100的AS路径,“.*”表示匹配包含任何AS号的AS路径。AS路径过滤列表的含义为允许任何AS路径,但拒绝包含AS 100的AS路径。
[RouterB] ip as-path deny100 deny _100_
[RouterB] ip as-path deny100 permit .*
# 创建名为deny300的AS路径过滤列表,拒绝包含AS号300的BGP路由。正则表达式“_300_”表示匹配任何包含AS 300的AS路径,“.*”表示匹配包含任何AS号的AS路径。AS路径过滤列表的含义为允许任何AS路径,但拒绝包含AS 300的AS路径。
[RouterB] ip as-path deny300 deny _300_
[RouterB] ip as-path deny300 permit .*
# 在Router B上,分别为Router A和Router C设置基于AS路径过滤列表的BGP路由发布策略deny300和deny100。
[RouterB] bgp 100
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 12.1.1.1 as-path-acl deny 300 export
[RouterB-bgp-default-ipv4] peer 12.1.2.1 as-path-acl deny 100 export
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
在Router A、Router B和Router C上分别执行display bgp routing-table ipv4 unicast命令。可以发现Router B同时学习到了来自Router A的10.8.8.0/24网段路由以及来自Router C的10.9.9.0/24网段路由;但是Router A没有学习到来自Router C的10.9.9.0/24网段路由,Router C也没有学习到来自Router A的10.8.8.0/24网段路由。说明Route B没有把来自Router A的路由转发给Router C,也没有把来自Router C的路由转发给Router A。
Router A、Router C和Router D建立IBGP邻居关系,其中Router C为路由反射器。Router A、Router B和Router D建立OSPF邻居关系。Router D通过OSPF和BGP同时发布IPv4单播路由9.9.9.9/32,Router A收到后,通过修改来自BGP的9.9.9.9/32路由的优先级,从而使得Router A在IP路由表中优选来自BGP的路由9.9.9.9/32。
图4-11 修改BGP路由优先级配置举例组网图
(1) 配置各接口的IP地址(略)
(2) 配置Router A
# 配置OSPF协议。
[RouterA] ospf 1
[RouterA-ospf-1] area 0.0.0.0
[RouterA-ospf-1] quit
# 将接口IP发布到OSPF协议。
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] ospf 1 area 0.0.0.0
[RouterA-GigabitEthernet0/0/1] quit
# 配置BGP协议。
[RouterA] bgp 10
[RouterA-bgp-default] peer 13.1.1.3 as-number 10
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 13.1.1.3 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
(3) 配置Router B
# 配置OSPF协议。
[RouterB] ospf 1
[RouterB-ospf-1] area 0.0.0.0
[RouterB-ospf-1] quit
# 将接口IP发布到OSPF协议。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] ospf 1 area 0.0.0.0
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ospf 1 area 0.0.0.0
[RouterB-GigabitEthernet0/0/2] quit
(4) 配置Router C
# 配置BGP协议。
[RouterC] bgp 10
[RouterC-bgp-default] peer 13.1.1.1 as-number 10
[RouterC-bgp-default] peer 34.1.1.4 as-number 10
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 13.1.1.1 enable
[RouterC-bgp-default-ipv4] peer 13.1.1.1 reflect-client
[RouterC-bgp-default-ipv4] peer 13.1.1.1 next-hop-local
[RouterC-bgp-default-ipv4] peer 34.1.1.4 enable
[RouterC-bgp-default-ipv4] peer 34.1.1.4 reflect-client
[RouterC-bgp-default-ipv4] peer 34.1.1.4 next-hop-local
[RouterC-bgp-default-ipv4] reflect change-path-attribute
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(5) 配置Router D
# 配置OSPF协议。
[RouterD] ospf 1
[RouterD-ospf-1] area 0.0.0.0
[RouterD-ospf-1] quit
# 将接口IP发布到IGP协议。
[RouterD] interface LoopBack1
[RouterD-LoopBack1] ip address 9.9.9.9 255.255.255.255
[RouterD-LoopBack1] ospf 1 area 0.0.0.0
[RouterD-LoopBack1] quit
[RouterD] interface gigabitethernet 0/0/1
[RouterD-GigabitEthernet0/0/1] ospf 1 area 0.0.0.0
[RouterD-GigabitEthernet0/0/1] quit
# 配置BGP协议。
[RouterD] bgp 10
[RouterD-bgp-default] peer 34.1.1.3 as-number 10
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] network 9.9.9.9 255.255.255.255
[RouterD-bgp-default-ipv4] peer 34.1.1.3 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(6) 配置修改Router A收到的BGP路由在IP路由表中的优先级
# 在Router A上,查看IP路由表中9.9.9.9/32的详细信息。
[RouterA] displey ip routing-table 9.9.9.9 verbose
Summary count : 2
Destination: 9.9.9.9/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 06h34m02s
FlushedAge: 00h01m35s
Cost: 2 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x2 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x13000002 LastAs: 0
AttrID: 0xffffffffffffffff
BkAttrID: 0xffffffffffffffff Neighbor: 0.0.0.0
Flags: 0x10041 OrigNextHop: 12.1.1.2
Label: NULL RealNextHop: 12.1.1.2
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet0/0/1
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: GigabitEthernet0/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
InLabel: NULL ColorInterface: N/A
SIDIndex: NULL BkColorInterface: N/A
FtnIndex: 0x0 TunnelInterface: N/A
TrafficIndex: N/A BkTunnelInterface: N/A
Connector: 0.0.0.0 PathID: 0x0
UserID: 0xffffffff SRTunnelID: Invalid
SID Type: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid StatFlags: 0x0
SID: N/A
BkSID: N/A
CommBlockLen: 0 Priority: Medium
MemberPort: N/A ExtFlags: 0x0
UCMIndex: 0x0 UserVLAN: 65535
UCMMTU: 0 BrasHash: 0
SessionID: 0 UserGroupID: 0
IsoGroupID: 0 BkIsoGroupID: 0
Destination: 9.9.9.9/32
Protocol: BGP instance default
Process ID: 0
SubProtID: 0x1 Age: 00h01m35s
FlushedAge: 06h23m44s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Inactive Adv
OrigTblID: 0x2 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 10
NibID: 0x16000001 LastAs: 10
AttrID: 0x0
BkAttrID: 0xffffffffffffffff Neighbor: 3.3.3.3
Flags: 0x60 OrigNextHop: 4.4.4.4
Label: NULL RealNextHop: 13.1.1.3
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet0/0/2
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: GigabitEthernet0/0/2
BkTunnel ID: Invalid BkIPInterface: N/A
InLabel: NULL ColorInterface: N/A
SIDIndex: NULL BkColorInterface: N/A
FtnIndex: 0x0 TunnelInterface: N/A
TrafficIndex: N/A BkTunnelInterface: N/A
Connector: N/A PathID: 0x0
UserID: 0xffffffff SRTunnelID: Invalid
SID Type: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid StatFlags: 0x0
SID: N/A
BkSID: N/A
CommBlockLen: 0 Priority: Low
MemberPort: N/A ExtFlags: 0x0
UCMIndex: 0x0 UserVLAN: 65535
UCMMTU: 0 BrasHash: 0
SessionID: 0 UserGroupID: 0
IsoGroupID: 256 BkIsoGroupID: 256
可以看到,IP路由表中存在两条9.9.9.9/32路由,但由于来自OSPF协议的路由优先级为10,来自BGP协议的路由优先级为255,因此只有来自OSPF协议的路由为激活状态。
# 在Device A上配置ACL和路由策略,使得路由策略匹配前缀为9.9.9.9/32的路由,并为其设置在IP路由表中的路由优先级为5。
[RouterA] acl basic 2077
[RouterA-acl-ipv4-basic-2077] rule 5 permit source 9.9.9.9 0
[RouterA-acl-ipv4-basic-2077] quit
[RouterA] route-policy change-preference permit node 10
[RouterA-route-policy-change-preference-10] if-match ip address acl 2077
[RouterA-route-policy-change-preference-10] apply preference 5
[RouterA-route-policy-change-preference-10] quit
# 在Router A上配置BGP协议通过应用路由策略将收到的路由9.9.9.9/32的优先级修改为5。
[RouterA] bgp 10
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] preference route-policy change-preference
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 在Device A上,查看IP路由表中9.9.9.9/32的详细信息。
[RouterA] displey ip routing-table 9.9.9.9 verbose
Summary count : 2
Destination: 9.9.9.9/32
Protocol: BGP instance default
Process ID: 0
SubProtID: 0x1 Age: 00h00m08s
FlushedAge: 00h00m08s
Cost: 0 Preference: 5
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x2 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 10
NibID: 0x16000001 LastAs: 10
AttrID: 0x0
BkAttrID: 0xffffffffffffffff Neighbor: 3.3.3.3
Flags: 0x10060 OrigNextHop: 4.4.4.4
Label: NULL RealNextHop: 13.1.1.3
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet0/0/2
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: GigabitEthernet0/0/2
BkTunnel ID: Invalid BkIPInterface: N/A
InLabel: NULL ColorInterface: N/A
SIDIndex: NULL BkColorInterface: N/A
FtnIndex: 0x0 TunnelInterface: N/A
TrafficIndex: N/A BkTunnelInterface: N/A
Connector: N/A PathID: 0x0
UserID: 0xffffffff SRTunnelID: Invalid
SID Type: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid StatFlags: 0x0
SID: N/A
BkSID: N/A
CommBlockLen: 0 Priority: Low
MemberPort: N/A ExtFlags: 0x0
UCMIndex: 0x0 UserVLAN: 65535
UCMMTU: 0 BrasHash: 0
SessionID: 0 UserGroupID: 0
IsoGroupID: 256 BkIsoGroupID: 256
Destination: 9.9.9.9/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 06h54m06s
FlushedAge: 00h21m39s
Cost: 2 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Inactive Adv
OrigTblID: 0x2 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x13000002 LastAs: 0
AttrID: 0xffffffffffffffff
BkAttrID: 0xffffffffffffffff Neighbor: 0.0.0.0
Flags: 0x41 OrigNextHop: 12.1.1.2
Label: NULL RealNextHop: 12.1.1.2
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet0/0/1
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: GigabitEthernet0/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
InLabel: NULL ColorInterface: N/A
SIDIndex: NULL BkColorInterface: N/A
FtnIndex: 0x0 TunnelInterface: N/A
TrafficIndex: N/A BkTunnelInterface: N/A
Connector: 0.0.0.0 PathID: 0x0
UserID: 0xffffffff SRTunnelID: Invalid
SID Type: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid StatFlags: 0x0
SID: N/A
BkSID: N/A
CommBlockLen: 0 Priority: Medium
MemberPort: N/A ExtFlags: 0x0
UCMIndex: 0x0 UserVLAN: 65535
UCMMTU: 0 BrasHash: 0
SessionID: 0 UserGroupID: 0
IsoGroupID: 0 BkIsoGroupID: 0
可以看到,来自BGP协议的路由优先级被修改为了5,因此来自BGP协议的路由更优,成为激活路由。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!