12-IPv6 BGP配置
本章节下载 (607.99 KB)
目 录
1.3.9 记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息
1.4.4 配置向IPv6对等体/IPv6对等体组发送缺省路由
1.5.2 配置IPv6 BGP路由管理的优先级、缺省LOCAL_PREF及NEXT_HOP属性
1.6.8 配置IPv6 BGP建立TCP连接时进行MD5认证
本章只列出了IPv6 BGP专有的配置与操作,其他相关内容请参见“三层技术-IP路由配置指导”中的“BGP”。
传统的BGP-4只能管理IPv4的路由信息,对于使用其它网络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。
为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)。其中,针对IPv6地址族的BGP扩展,称为IPv6 BGP。
为了实现对IPv6协议的支持,IPv6 BGP需要将IPv6网络层协议的信息反映到NLRI(Network Layer Reachability Information,网络层可达性信息)及NEXT_HOP属性中。
IPv6 BGP中引入的两个NLRI属性分别是:
· MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
· MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
IPv6 BGP中的NEXT_HOP属性用IPv6地址来表示,可以是IPv6全球单播地址或者链路本地地址。
IPv6 BGP是利用BGP的多协议扩展属性,来达到在IPv6网络中应用的目的,BGP协议原有的消息机制和路由机制并没有改变。
表1-1 配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置IPv6 BGP基本功能 |
配置IPv6对等体 |
必选 |
|
配置IPv6 BGP发布本地IPv6路由 |
可选 |
||
配置路由首选值 |
可选 |
||
配置IPv6 BGP连接所使用的本地接口 |
可选 |
||
配置EBGP连接的最大跳数 |
可选 |
||
配置IPv6对等体/IPv6对等体组的描述信息 |
可选 |
||
禁止与IPv6对等体/IPv6对等体组建立会话 |
可选 |
||
记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息 |
可选 |
||
控制路由信息的发布与接收 |
配置IPv6 BGP引入其他路由 |
可选 |
|
配置IPv6 BGP路由聚合 |
可选 |
||
配置向IPv6对等体/IPv6对等体组发送缺省路由 |
可选 |
||
配置路由信息的发布策略 |
可选 |
||
配置路由信息的接收策略 |
可选 |
||
配置IPv6 BGP与IGP路由同步 |
可选 |
||
配置路由衰减 |
可选 |
||
配置IPv6 BGP的路由属性 |
配置IPv6 BGP路由管理的优先级、缺省LOCAL_PREF及NEXT_HOP属性 |
可选 |
|
配置MED属性 |
可选 |
||
配置AS_PATH属性 |
可选 |
||
调整和优化IPv6 BGP网络 |
配置IPv6 BGP的时钟 |
可选 |
|
配置IPv6 BGP软复位 |
可选 |
||
配置BGP ORF能力 |
可选 |
||
使能4字节AS号抑制功能 |
可选 |
||
配置最大等价路由的条数 |
可选 |
||
配置IPv6 BGP建立TCP连接时进行MD5认证 |
可选 |
||
配置IPv6 BGP IPsec安全策略 |
可选 |
||
配置BGP GTSM功能 |
可选 |
||
组建大型IPv6 BGP网络 |
配置IPv6 BGP对等体组 |
可选 |
|
配置IPv6 BGP团体 |
可选 |
||
配置IPv6 BGP路由反射器 |
可选 |
||
配置6PE |
配置6PE基本功能 |
必选 |
|
配置6PE可选功能 |
可选 |
||
配置IPv6 BGP与BFD联动 |
可选 |
在配置IPv6 BGP基本功能之前,需完成以下任务:
· 配置接口的网络层地址
· 在系统视图下通过ipv6命令使能IPv6报文转发功能
必须首先创建对等体组,才能配置对等体组的基本功能。关于对等体组的创建请参见“1.7.2 配置IPv6 BGP对等体组”。
表1-2 配置IPv6对等体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统没有运行BGP |
为路由器指定ID |
router-id router-id |
可选 如果Loopback和其它接口没有配置IP地址,则该任务为必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
配置对等体 |
peer ipv6-address as-number as-number |
必选 |
表1-3 配置IPv6 BGP发布本地IPv6路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
将路由通告到IPv6 BGP路由表中 |
network ipv6-address prefix-length [ route-policy route-policy-name | short-cut ] |
必选 缺省情况下,IPv6 BGP不通告任何路由 |
表1-4 配置路由首选值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
为从IPv6对等体/IPv6对等体组接收的路由分配首选值 |
peer { ipv6-group-name | ipv6-address } preferred-value value |
可选 缺省情况下,从IPv6对等体/IPv6对等体组接收的路由的首选值为0 IPv6 BGP-VPN实例视图下不支持ipv6-group-name参数 |
当通过路由策略过滤IPv6路由时,路由的首选值将优先选取路由策略中设置的首选值。只有当路由策略里设置的首选值为0时,才选取peer { ipv6-group-name | ipv6-address } preferred-value value命令里设置的值。通过路由策略配置BGP IPv6路由信息首选值的相关配置可参考命令peer { group-name | ipv4-address | ipv6-address } route-policy route-policy-name { import | export }和“三层技术-IP路由命令参考/路由策略”中的apply preferred-value preferred-value。
IPv6 BGP使用TCP作为其传输层协议,缺省情况下,IPv6 BGP使用到达对等体最佳路由的出接口作为与对等体/对等体组建立TCP连接的源接口。
当建立IPv6 BGP连接的路由器之间存在冗余链路时,如果路由器上的一个接口发生故障,链路状态变为down,建立TCP连接的源接口可能会随之发生变化,导致BGP需要重新建立TCP连接,造成网络振荡。为了避免该情况的发生,建议网络管理员使用Loopback接口建立IPv6 BGP连接,并将建立IPv6 BGP连接所使用的源接口配置为Loopback接口,来提高IPv6 BGP连接的可靠性和稳定性。
表1-5 配置IPv6 BGP连接所使用的源接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
指定与IPv6对等体/IPv6对等体组创建BGP会话时建立TCP连接使用的源接口 |
peer { ipv6-group-name | ipv6-address } connect-interface interface-type interface-number |
必选 缺省情况下,IPv6 BGP使用到达IPv6对等体的最佳路由的出接口作为与IPv6对等体/IPv6对等体组创建BGP会话时建立TCP连接的源接口 |
当建立BGP连接时,如果没有明确指定建立TCP连接的源接口,可能会由于无法根据到达BGP对等体的最优路由确定TCP连接源接口从而导致无法建立TCP连接,因此建议用户在此情况下配置BGP对等体时明确配置BGP会话建立TCP连接的源接口为指定接口。
表1-6 配置非直接相连的邻居建立EBGP连接
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置允许同非直接相连网络上的邻居建立EBGP连接 |
peer { ipv6-group-name | ipv6-address } ebgp-max-hop [ hop-count ] |
必选 缺省情况下,不允许同非直接相连网络上的邻居建立EBGP连接 |
通常情况下,EBGP对等体之间必须具有直连的物理链路,如果不满足这一要求,则必须使用peer ebgp-max-hop命令允许它们之间经过多跳建立TCP连接。但是,对于直连EBGP使用Loopback接口建立邻居关系,不需要peer ebgp-max-hop命令的配置。
表1-7 配置IPv6对等体/IPv6对等体组的描述信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置IPv6对等体/IPv6对等体组的描述信息 |
peer { ipv6-group-name | ipv6-address } description description-text |
可选 缺省情况下,IPv6对等体/IPv6对等体组无描述信息 |
如果配置对等体组的描述信息,需要先创建对等体组。
表1-8 禁止与IPv6对等体/IPv6对等体组建立会话
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
禁止与IPv6对等体/IPv6对等体组建立会话 |
peer { ipv6-group-name | ipv6-address } ignore |
必选 缺省情况下,允许与IPv6对等体/IPv6对等体组建立会话 |
表1-9 记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
全局使能BGP日志记录功能 |
log-peer-change |
可选 缺省情况下,使能BGP日志记录功能 |
进入IPv6地址族视图 |
ipv6-family |
- |
记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息 |
peer { ipv6-group-name | ipv6-address } log-change |
可选 缺省情况下,记录IPv6对等体/IPv6对等体组的会话状态和事件信息 |
有关log-peer-change命令的详细信息请参见“三层技术-IP路由命令参考”中的“BGP”。
控制IPv6 BGP的路由信息的发布和接收,包括对路由信息进行过滤,应用路由策略,路由衰减。
在控制路由信息的发布与接收之前,需完成以下任务:
· 使能IPv6功能
· 配置IPv6 BGP基本功能
表1-10 配置IPv6 BGP引入和过滤外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
允许将缺省路由引入到IPv6 BGP路由表中 |
default-route imported |
可选 缺省情况下,IPv6 BGP不允许将缺省路由引入到IPv6 BGP路由表中 |
配置引入其它协议路由信息并通告 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
必选 缺省情况下,IPv6 BGP不引入且不通告其它协议的路由 |
如果没有配置default-route imported命令,则使用import-route命令引入IGP路由时,不能引入IGP的缺省路由。
在中型或大型BGP网络中,在向对等体发布IPv6路由信息时,可以配置路由聚合,减小对等体路由表中的路由数量。BGP仅支持IPv6路由的手动聚合。
表1-11 配置IPv6路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入IPv6地址族视图 |
ipv6-family |
- |
配置手动路由聚合 |
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-12 配置向IPv6对等体/IPv6对等体组发送缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置向IPv6对等体/IPv6对等体组发送缺省路由 |
peer { ipv6-group-name | ipv6-address } default-route-advertise [ route-policy route-policy-name ] |
必选 缺省情况下,不向IPv6对等体/IPv6对等体组发布缺省路由 |
执行peer default-route-advertise命令后,不论本地路由表中是否存在缺省路由,都将向指定IPv6对等体/IPv6对等体组发布一条下一跳地址为本地地址的缺省路由。
表1-13 配置路由信息的发布策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
对发布的路由进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ protocol process-id ] |
必选 缺省情况下,没有对发布的路由信息进行过滤 |
配置出方向路由策略 |
peer { ipv6-group-name | ipv6-address } route-policy route-policy-name export |
必选 缺省情况下,没有指定IPv6对等体/IPv6对等体组的路由策略 IPv6 BGP-VPN实例视图下不支持ipv6-group-name参数 |
配置基于IPv6 ACL的路由过滤策略 |
peer { ipv6-group-name | ipv6-address } filter-policy acl6-number export |
必选 缺省情况下,没有为IPv6对等体/IPv6对等体组配置基于IPv6 ACL的过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
配置基于AS路径过滤列表的IPv6 BGP路由过滤策略 |
peer { ipv6-group-name | ipv6-address } as-path-acl as-path-acl-number export |
必选 缺省情况下,没有为IPv6对等体/IPv6对等体组配置基于AS路径过滤列表的IPv6 BGP路由过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
配置基于IPv6地址前缀列表的路由过滤策略 |
peer { ipv6-group-name | ipv6-address } ipv6-prefix ipv6-prefix-name export |
必选 缺省情况下,没有指定IPv6对等体/IPv6对等体组基于IPv6前缀列表的过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
IPv6 BGP对引入的路由信息进行过滤后,会将符合条件的路由信息发布给IPv6 BGP对等体(Export)。指定protocol参数可以只对特定路由协议的信息进行过滤,如果没有指定此参数,则对所有要发布的IPv6 BGP路由信息进行过滤,包括引入的路由和使用network命令发布的路由。
表1-14 配置路由信息的接收策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
对接收的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
必选 缺省情况下,不对接收的路由信息进行过滤 |
对接收的路由信息应用路由策略 |
peer { ipv6-group-name | ipv6-address } route-policy route-policy-name import |
必选 缺省情况下,没有指定IPv6对等体/IPv6对等体组的路由策略 IPv6 BGP-VPN实例视图下不支持ipv6-group-name参数 |
配置基于IPv6 ACL的路由过滤策略 |
peer { ipv6-group-name | ipv6-address } filter-policy acl6-number import |
必选 缺省情况下,没有为IPv6对等体/IPv6对等体组设置基于IPv6 ACL的路由过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
配置基于AS路径过滤列表的IPv6 BGP路由过滤策略 |
peer { ipv6-group-name | ipv6-address } as-path-acl as-path-acl-number import |
必选 缺省情况下,没有为IPv6对等体/IPv6对等体组设置基于AS路径过滤列表的IPv6 BGP路由过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
配置基于IPv6地址前缀列表的路由过滤策略 |
peer { ipv6-group-name | ipv6-address } ipv6-prefix ipv6-prefix-name import |
必选 缺省情况下,没有为IPv6对等体/IPv6对等体组设置基于IPv6前缀列表的路由过滤策略 IPv6 BGP-VPN实例视图下不支持本命令 |
配置允许从IPv6对等体/IPv6对等体组接收的最大IPv6地址前缀数 |
peer { ipv6-group-name | ipv6-address } route-limit limit [ percentage ] |
可选 缺省情况下,允许从IPv6对等体/IPv6对等体组接收的IPv6地址最大地址前缀数无限制 IPv6 BGP-VPN实例视图下不支持本命令 |
· 对IPv6 BGP接收的路由进行过滤,只有满足某些条件的路由才能被IPv6 BGP接收,并加到路由表中。
· 对等体组的成员可以与所在的组使用不同的入方向路由策略,即接收路由时,各对等体可以选择自己的策略。
IPv6 BGP路由器收到一条IBGP路由,缺省只检查该路由的下一跳是否可达。如果可达,IPv6 BGP路由器就将这条IBGP路由发布给EBGP对等体。如果配置了同步特性,则需要同时满足以下条件,IPv6 BGP路由器才会将该IBGP路由发布给EBGP对等体:
· 该路由的下一跳可达;
· 在IGP路由表中存在一条active的路由,与该IBGP路由的目的网段完全相同。(IGP路由是否为active状态可以通过display ipv6 routing-table protocol命令来查看)
表1-15 配置IPv6 BGP与IGP路由同步
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置IPv6 BGP与IGP路由同步 |
synchronization |
必选 缺省情况下,IPv6 BGP和IGP路由不同步 |
表1-16 配置路由衰减
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置IPv6 BGP路由衰减 |
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ]* |
可选 缺省情况下,没有配置路由衰减 |
本节主要介绍使用各类路由属性来改变IPv6 BGP的选路策略。包括如下属性:
· IPv6 BGP协议的优先级
· 缺省LOCAL_PREF属性值
· MED属性
· NEXT_HOP属性
· AS_PATH属性
在配置IPv6 BGP的路由属性之前,需完成以下任务:
· 使能IPv6功能
· 配置IPv6 BGP基本功能
表1-17 配置IPv6 BGP协议的优先级、缺省LOCAL_PREF及NEXT_HOP属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
设定IPv6 BGP路由管理的优先级 |
preference { external-preference internal-preference local-preference | route-policy route-policy-name } |
可选 缺省情况下,EBGP路由的管理优先级为255,IBGP路由的管理优先级为255,本地产生的IPv6 BGP路由的管理优先级为130 |
配置本地优先级的缺省值 |
default local-preference value |
可选 缺省情况下,本地优先级的缺省值为100 |
配置发布路由时将自身地址作为下一跳 |
peer { ipv6-group-name | ipv6-address } next-hop-local |
可选 缺省情况下,向EBGP IPv6对等体/IPv6对等体组发布路由时,将自身地址作为下一跳;向IBGP IPv6对等体/IPv6对等体发布路由时,下一跳不变 IPv6 BGP-VPN实例视图下不支持本命令 |
· 在某些组网环境中,为保证IBGP邻居能够找到正确的下一跳,可以配置在向IBGP IPv6对等体/IPv6对等体组发布路由时,改变下一跳地址为自身地址。如果配置了IPv6 BGP负载分担,则不论是否配置了peer next-hop-local命令,本地路由器向IBGP IPv6对等体/IPv6对等体组发布路由时都先将下一跳地址改变为自身地址。
· 在第三方下一跳(即两个BGP连接在同一网段的广播网)这种特殊的组网环境中,缺省情况下,向EBGP IPv6对等体/IPv6对等体组发布路由时,下一跳不变;只有配置了peer next-hop-local命令,才将自身地址作为下一跳。
表1-18 配置MED属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
配置系统的缺省MED值 |
default med med-value |
可选 缺省情况下,系统缺省的MED值为0 |
配置允许比较来自不同AS邻居的路由的MED属性值 |
compare-different-as-med |
可选 缺省情况下,不比较来自不同AS邻居的路由的MED属性值 IPv6 BGP-VPN实例视图下不支持本命令 |
配置根据路由来自的AS进行分组对MED排序优选 |
bestroute compare-med |
可选 缺省情况下,不根据路由来自的AS进行分组对MED排序优选 IPv6 BGP-VPN实例视图下不支持本命令 |
配置允许比较联盟对等体的路由按MED值进行优选 |
bestroute med-confederation |
可选 缺省情况下,比较联盟对等体的路由时不考虑MED值 IPv6 BGP-VPN实例视图下不支持本命令 |
表1-19 配置AS_PATH属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数 |
peer { ipv6-group-name | ipv6-address } allow-as-loop [ number ] |
可选 缺省情况下,不允许本地AS号重复 |
为IPv6对等体/IPv6对等体组配置一个虚拟的本地自治系统号 |
peer { ipv6-group-name | ipv6-address } fake-as as-number |
可选 缺省情况下,没有为IPv6对等体/IPv6对等体组配置虚拟的本地自治系统号 |
禁止路由器将AS_PATH当作选路算法中的一个因素 |
bestroute as-path-neglect |
可选 缺省情况下,路由器可以将AS_PATH当作选路算法中的一个因素 |
配置发送IPv6 BGP更新报文时不携带私有AS编号 |
peer { ipv6-group-name | ipv6-address } public-as-only |
可选 缺省情况下,发送IPv6 BGP更新报文时携带私有自治系统号 |
配置用本地AS号替换AS_PATH属性中指定IPv6对等体/IPv6对等体组的AS号 |
peer { ipv6-group-name | ipv6-address } substitute-as |
可选 缺省情况下,没有用本地AS号替换AS_PATH属性中指定IPv6对等体/IPv6对等体组的AS号 |
本节主要介绍配置IPv6 BGP时钟、软复位IPv6 BGP连接和配置最大等价路由的条数。
(1) IPv6 BGP时钟
当对等体间建立了IPv6 BGP连接后,它们定时向对端发送Keepalive消息,以防止路由器认为IPv6 BGP连接已中断。若路由器在设定的连接保持时间(Holdtime)内未收到对端的Keepalive消息或任何其它类型的报文,则认为此IPv6 BGP连接已中断,从而退出此IPv6 BGP连接。
路由器在与对等体建立IPv6 BGP连接时,将比较双方保持时间,以数值较小者做为协商后的保持时间。如果协商结果为0,则不发送Keepalive消息,且不检测Holdtime是否超时。
(2) 软复位IPv6 BGP连接
IPv6 BGP的选路策略改变后,为了使新的策略生效,必须复位IPv6 BGP连接,但这样会造成短暂的IPv6 BGP连接中断。在目前的实现中,IPv6 BGP支持Route-refresh功能。当策略改变后,系统可以在不中断IPv6 BGP连接的情况下,自动对IPv6 BGP路由表进行动态刷新。
在所有IPv6 BGP路由器使能Route-refresh功能的情况下,如果IPv6 BGP的路由策略发生了变化,本地路由器会向对等体发布Route-refresh消息,收到此消息的对等体会将其路由信息重新发给本地IPv6 BGP路由器。这样,在不中断IPv6 BGP连接的情况下,就可以对IPv6 BGP路由表进行动态更新,并应用新的策略。
如果网络中存在有不支持Route-Refresh的路由器,则需要配置peer keep-all-routes命令,将其所有路由更新保存在本地;当路由策略发生变化时,系统将对IPv6 BGP路由表进行动态更新,并应用新的策略。
在调整IPv6 BGP的时钟之前,需完成以下任务:
· 使能IPv6能力
· 配置IPv6 BGP基本功能
表1-20 配置IPv6 BGP的时钟
步骤 |
操作 |
命令 |
|
进入系统视图 |
system-view |
- |
|
进入BGP视图 |
bgp as-number |
必选 |
|
进入IPv6地址族视图 |
ipv6-family |
- |
|
配置IPv6 BGP定时器 |
配置IPv6 BGP的存活时间间隔与保持时间 |
timer keepalive keepalive hold holdtime |
可选 缺省情况下,存活时间间隔为60秒,保持时间为180秒 |
peer { ipv6-group-name | ipv6-address } timer keepalive keepalive hold holdtime |
|||
配置IPv6对等体/IPv6对等体组的发送同一路由更新报文的时间间隔 |
peer { ipv6-group-name | ipv6-address } route-update-interval interval |
可选 缺省情况下,向IBGP对等体发送同一路由更新的时间间隔为15秒,向EBGP对等体发送同一路由更新的时间间隔为30秒 配置时间间隔为0时,表示立即向BGP对等体发送同一路由更新报文。 |
· 使用timer命令配置的定时器比使用peer timer命令配置的定时器优先级要低。
· 设置的保持时间应该至少为存活时间间隔的三倍。
表1-21 使能Route-refresh功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
使能IPv6 BGP路由刷新功能 |
peer { ipv6-group-name | ipv6-address } capability-advertise route-refresh |
可选 缺省情况下,使能IPv6 BGP路由刷新功能 |
表1-22 手工软复位IPv6 BGP
步骤 |
操作 |
命令 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
保存所有来自IPv6对等体/IPv6对等体组的原始路由信息,即使这些路由没有通过已配置的入口策略 |
peer { ipv6-group-name | ipv6-address } keep-all-routes |
可选 缺省情况下,不保存IPv6对等体/IPv6对等体组的原始路由信息 |
返回用户视图 |
return |
- |
手工对IPv6 BGP连接进行软复位 |
refresh bgp ipv6 { all | ipv6-address | group ipv6-group-name | external | internal } { export | import } |
必选 |
配置命令peer keep-all-routes后,不论是否使用了过滤策略,都将保存指定对等体发来的所有路由更新。当软复位IPv6 BGP连接时,这些信息可以用来重新生成IPv6 BGP路由。
BGP ORF是将本地入口策略通过Route-refresh报文推给邻居,当邻居需要向BGP对等体发送Update更新报文时,通过本地的路由策略后最后还需要进行ORF策略的过滤,只有通过ORF策略的路由信息才会发给BGP对等体,以达到减少BGP邻居间Update更新报文的交互,节省网络资源的目的。
使能BGP ORF能力后,本地和BGP对等体会通过Open报文协商ORF能力(即收发的报文里是否允许携带ORF信息,如果允许携带,是否可以携带非标准的ORF信息),当协商完毕并成功建立邻居关系后,可以通过特殊的Route-refresh报文交互ORF信息。
ORF能力协商成功需要两端的配置来保证,关于两端参数的选择请参见表1-24。
表1-23 配置BGP ORF能力
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
使能BGP路由刷新功能 |
peer { group-name | ipv6-address } capability-advertise route-refresh |
必选 缺省情况下,BGP路由刷新功能处于使能状态 |
使能BGP ORF非标准功能 |
peer { group-name | ipv6-address } capability-advertise orf non-standard |
可选 缺省情况下,BGP ORF能力支持RFC5291,RFC5292的标准能力 |
使能BGP ORF地址前缀能力协商功能 |
peer { group-name | ip-address | ipv6-address } capability-advertise orf ipv6-prefix { both | receive | send } |
必选 缺省情况下,BGP 不支持ORF 地址前缀的能力协商 |
表1-24 both、send、receive参数选择以及配置效果描述表
本地选择参数 |
对端选择参数 |
协商成功后 |
send |
receive |
本端的ORF发送能力,对端的ORF接收能力 |
both |
||
receive |
send |
本端的ORF接收能力,对端的ORF发送能力 |
both |
||
both |
both |
双向的ORF发送和接收能力 |
通常情况下,设备在与对端设备建立IPv6 BGP对等体连接关系时会发送IPv6 BGP Open消息,在消息中的Optional parameters字段携带信息:说明AS号取值占用4字节(即取值范围为1~4294967295)。此时,如果对端设备不支持AS号取值为4字节(比如只支持2字节),则连接关系无法建立。
为了解决上述问题,您可以使能4字节AS号抑制功能:当对端设备不支持AS号取值为4字节时,设备发出的IPv6 BGP Open消息仍然可以被对端设备正常识别,从而IPv6 BGP对等体连接关系可以成功建立。
表1-25 使能4字节AS号抑制功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
使能4字节AS号抑制功能 |
peer { group-name | ipv6-address } capability-advertise suppress-4-byte-as |
必选 缺省情况下,设备没有使能4字节AS号抑制功能 |
如果对端设备支持AS号取值为4字节,请不要使能该功能,否则会导致IPv6 BGP对等体之间的连接关系无法建立。
表1-26 配置最大等价路由的条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
配置进行IPv6 BGP负载分担的路由条数 |
balance [ ebgp | ibgp ] number |
必选 缺省情况下,不进行负载分担 |
IPv6 BGP使用TCP作为传输层协议,可靠性有一定保证。为了提高IPv6 BGP的安全性,可以配置IPv6 BGP在建立TCP连接时进行MD5认证,认证通过后才能建立TCP连接。如果认证失败,则不能建立TCP连接。
表1-27 配置IPv6 BGP建立TCP连接时进行MD5认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置IPv6 BGP建立TCP连接时进行MD5认证 |
peer { ipv6-group-name | ipv6-address } password { cipher | simple } password |
可选 缺省情况下,IPv6 BGP建立TCP连接时不进行MD5认证 |
· IPv6 BGP的MD5认证并不能对BGP报文进行认证。
· 如果启用MD5认证,参与认证的双方必须配置完全一致的认证方式和密码,否则将因为无法通过认证而不能建立TCP连接。
从安全性角度来考虑,为了避免路由信息外泄或者对路由器进行恶意攻击,IPv6 BGP提供基于IPsec的报文验证功能。
路由器在发送的IPv6 BGP报文中会携带配置好的IPsec安全策略的SPI(Security Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全策略匹配:只有策略匹配的报文才能接收;否则将不会接收报文,不能正常建立邻居和学习路由。
配置IPv6 BGP IPsec安全策略之前,需要满足下面配置:
· 安全提议已经创建;
· IPsec安全策略已经创建。
关于安全提议和IPsec安全策略的详细配置过程,请参考“安全配置指导”中的“IPsec”。
表1-28 配置IPv6 BGP IPsec安全策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入IPv6地址族视图 |
ipv6-family |
- |
配置IPv6 BGP对等体/对等体组应用IPsec安全策略 |
peer { group-name | ip-address } ipsec-policy policy-name |
必选 缺省情况下,IPv6 BGP对等体/对等体组没有应用IPsec安全策略 |
IPv6 BGP IPsec安全策略只支持手工配置方式,具体配置请参见“安全配置指导”中的“IPsec”。
当攻击者向网络设备发送大量有效的报文对其进行攻击时,网络设备往往会因为有限资源(如CPU)消耗过大,而不能处理正常业务甚至瘫痪。例如,攻击者向某台路由器不断的发送仿真BGP协议报文,路由器收到这些报文后,发现是发送给本设备的,则不辨别其合法性,直接上送CPU处理,从而导致系统异常繁忙,CPU占用率高。GTSM(Generalized TTL Security Mechanism,通用TTL安全保护机制)功能能够帮助解决这个问题。
GTSM功能通过检查IPv6 BGP报文头中的Hop Limit值是否在一个预先定义好的范围内,对IP层以上业务进行保护,增强系统的安全性,避免设备受到CPU利用(CPU-utilization)类型的攻击(如CPU过载等)。其基本原理为:配置BGP GTSM功能时,用户可以指定GTSM的合法跳数为hop-count,则合法的TTL范围为255-“hop-count”+1到255。当底层检测到来自该邻居的报文Hop Limit值在该合法范围内时,才上送CPU处理;当底层检测到来自该邻居的报文Hop Limit值不在该合法范围内时,直接丢弃报文,不再上送CPU处理。
另外,当配置GTSM功能后,设备会将发送报文的初始Hop Limit设置为255。所以,GTSM主要用于检测直连EBGP邻居报文的有效性,此时可以提供最佳保护效果;对于非直连EBGP或IBGP邻居的保护效果依赖于组网中间设备的安全性(因为中间设备可能对Hop Limit值进行篡改)。
表1-29 配置BGP GTSM功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
- |
进入IPv6地址族视图 |
ipv6-family |
- |
配置对邻居的IPv6报文进行GTSM安全检测 |
peer { group-name | ipv6-address } ttl-security hops hop-count |
必选 缺省情况下,不对邻居的IPv6 BGP报文进行GTSM安全检测 |
· 该配置命令和peer ebgp-max-hop命令互斥,不能同时配置。
· 使用BGP GTSM功能时,要求本设备和邻居设备同时配置本特性,hop-count值可以不同,只要能够满足合法性检查。
为方便管理,减少重复配置操作,管理员将一些享有相同更新策略的IPv6 BGP对等体划分到一个逻辑组织,这些组织就称为对等体组。只须对一个对等体组配置策略,该策略对组内所有成员都有效。
当对等体组的配置变化时,每个组员的配置也相应变化。对某些属性可以指定组员的IPv6地址进行配置,从而使指定组员在这些属性上不受对等体组配置的影响。
通常将同一自治系统的对等体配置为一个对等体组,当然,也可以将其它自治系统的对等体加入到该组。所有IBGP对等体可配置为另一个对等体组,也可以根据业务逻辑创建对等体组。
对等体组可以使一组对等体共享相同的策略,而利用团体可以使多个AS中的一组IPv6 BGP路由器共享相同的策略。团体是一个路由属性,在IPv6 BGP对等体之间传播,它并不受到AS范围的限制。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,建立全连接网的开销很大。路由反射器和联盟是解决这个问题的两种方法。
IPv6 BGP联盟的配置方式与BGP相同,这里不再赘述。以下主要介绍:
· 配置IPv6 BGP对等体组
· 配置IPv6 BGP团体
· 配置IPv6 BGP路由反射器
在配置IPv6 BGP对等体组之前,需完成以下任务:
· 相邻节点网络层互通
· 启动BGP,配置Router ID
表1-30 创建IBGP对等体组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统没有运行BGP |
进入IPv6地址族视图 |
ipv6-family |
- |
创建IBGP对等体组 |
group ipv6-group-name [ internal ] |
必选 |
将对等体加入已存在的对等体组 |
peer ipv6-address group ipv6-group-name [ as-number as-number ] |
必选 缺省情况下,对等体不属于任何对等体组 |
表1-31 创建纯EBGP对等体组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统没有运行BGP |
进入IPv6地址族视图 |
ipv6-family |
- |
创建EBGP对等体组 |
group ipv6-group-name external |
必选 |
配置对等体组的AS号 |
peer ipv6-group-name as-number as-number |
必选 缺省情况下,对等体组无AS号 |
在已创建的对等体组中加入IPv6对等体 |
peer ipv6-address group ipv6-group-name |
必选 缺省情况下,对等体不属于任何对等体组 |
· 在创建纯EBGP对等体时,需要指定对等体组的自治系统号。
· 如果对等体组中已经加入了对等体,那么不能够为该对等体组指定自治系统号。
表1-32 创建混合EBGP对等体组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统没有运行BGP |
进入IPv6地址族视图 |
ipv6-family |
- |
创建EBGP对等体组 |
group ipv6-group-name external |
必选 |
设置IPv6对等体的AS号 |
peer ipv6-address as-number as-number |
必选 缺省情况下,IPv6对等体无AS号 |
加入已创建的IPv6对等体 |
peer ipv6-address group ipv6-group-name |
必选 缺省情况下,对等体不属于任何对等体组 |
在创建混合EBGP对等体组时,需要单独创建对等体,并可设置不同的自治系统号,但不能设置对等体组的自治系统号。
表1-33 配置向IPv6对等体/IPv6对等体组发布团体属性
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统没有运行BGP |
进入IPv6地址族视图 |
ipv6-family |
- |
配置将团体属性传给IPv6对等体/IPv6对等体组 |
peer { ipv6-group-name | ipv6-address } advertise-community |
必选 缺省情况下,不将团体属性发布给任何IPv6对等体/IPv6对等体组 |
配置将扩展团体属性传给IPv6对等体/IPv6对等体组 |
peer { ipv6-group-name | ipv6-address } advertise-ext-community |
必选 缺省情况下,不将扩展团体属性发布给任何IPv6对等体/IPv6对等体组 |
表1-34 对发布的路由信息应用路由策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置出方向路由策略 |
peer { ipv6-group-name | ipv6-address } route-policy route-policy-name export |
必选 缺省情况下,不指定IPv6对等体/IPv6对等体组的路由策略 |
· 配置IPv6 BGP团体时,必须使用路由策略来定义具体的团体属性,然后在发布路由信息时应用此路由策略。
· 关于路由策略的配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-35 配置IPv6 BGP路由反射器
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置将本机作为路由反射器,并将IPv6对等体/IPv6对等体组作为路由反射器的客户 |
peer { ipv6-group-name | ipv6-address } reflect-client |
必选 缺省情况下,没有配置路由反射器及其客户 |
使能客户机之间的路由反射 |
reflect between-clients |
可选 缺省情况下,允许客户到客户的路由反射 |
配置路由反射器的集群ID |
reflector cluster-id cluster-id |
可选 缺省情况下,每个路由反射器是使用自己的Router ID作为集群ID |
· 通常情况下,路由反射器的客户之间不要求是全连接的,路由缺省通过反射器从一个客户反射到其它客户;如果客户之间是全连接的,可以禁止客户间的反射,以便减少开销。
· 当一个集群里有多个路由反射器时,需要给所有位于同一个集群内的路由反射器配置相同的Cluster_ID,以避免路由循环。
6PE(IPv6 Provider Edge,IPv6供应商边缘)是一种过渡技术,ISP可以利用已有的IPv4骨干网为分散用户的IPv6网络提供接入能力,使得IPv6孤岛的CE(Customer Edge,用户网络边缘)路由器穿过当前已存在的IPv4 PE路由器进行通信。
6PE的主要思想是:
· 6PE路由器将用户的IPv6路由信息转换为带有标签的IPv6路由信息;
· 通过BGP会话扩散到ISP的IPv4骨干网中;
· 6PE路由器转发IPv6报文时,首先会将进入骨干网隧道的数据流打上标签。隧道可以是GRE隧道或者MPLS LSP等。
运营商网络的IGP协议可以是OSPF或IS-IS;CE和6PE之间可以是IPv6静态路由、IPv6 IGP协议或者IPv6 EBGP协议。
图1-1 6PE组网图
P(Provider)路由器:服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力。
当ISP想利用自己原有的IPv4/MPLS网络,使其通过MPLS具有IPv6流量交换能力时,只需要升级PE路由器就可以了。所以对于运营商来说,使用6PE技术作为IPv6过渡机制无疑是一个高效的解决方案,其操作风险也会小得多。
在配置6PE之前,需完成以下任务:
· IPv4 MPLS骨干网配置MPLS基本能力,具体配置请参见“MPLS配置指导”中的“MPLS基本”
· PE设备之间配置IPv6 BGP对等体,具体请参见“三层技术-IP路由配置指导”中的“BGP”
· 如果是对等体组,需要在BGP视图下创建该对等体组
在PE设备上做如下配置:
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统不运行BGP |
指定6PE对等体/对等体组的AS号 |
peer { ipv4-group-name | ipv4-address } as-number as-number |
必选 缺省情况下,6PE对等体/对等体组无AS号 |
进入IPv6地址族视图 |
ipv6-family |
- |
激活指定6PE对等体/对等体组 |
peer { ipv4-group-name | ipv4-address | ipv6-address } enable |
必选 缺省情况下,6PE对等体/对等体组是未被激活的 |
配置当前路由器能够与指定6PE对等体交换带标签的IPv6路由 |
peer { ipv4-group-name | ipv4-address } label-route-capability |
必选 缺省情况下,当前路由器不能够与指定6PE对等体交换带标签的IPv6路由 |
表1-37 配置6PE可选功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统不运行BGP |
指定6PE对等体/对等体组的AS号 |
peer { ipv4-group-name | ipv4-address } as-number as-number |
必选 缺省情况下,对等体/对等体组无AS号 |
进入IPv6地址族视图 |
ipv6-family |
- |
使能6PE对等体 |
peer { ipv4-group-name | ipv4-address | ipv6-address } enable |
必选 缺省情况下,没有使能6PE对等体/对等体组 |
配置将团体属性发布给6PE对等体/对等体组 |
peer { group-name | ipv4-address } advertise-community |
可选 缺省情况下,不将团体属性发布给任何6PE对等体/对等体组 |
配置将扩展团体属性发布给6PE对等体/对等体组 |
peer { group-name | ipv4-address } advertise-ext-community |
可选 缺省情况下,不将扩展团体属性发布给任何6PE对等体/对等体组 |
配置允许本地AS号在所接收的路由的AS_PATH属性中出现,并可同时配置允许重复的次数 |
peer { group-name | ipv4-address } allow-as-loop [ number ] |
可选 缺省情况下,不允许本地AS号重复 |
为6PE对等体/对等体组I配置基于AS路径过滤列表的IPv6 BGP路由过滤策略 |
peer { group-name | ipv4-address } as-path-acl as-path-acl-number { import | export } |
可选 缺省情况下,没有为6PE对等体/对等体组配置基于AS路径过滤列表的IPv6 BGP路由过滤策略 |
向6PE对等体/对等体组发送缺省路由 |
peer { group-name | ipv4-address } default-route-advertise [ route-policy route-policy-name ] |
可选 缺省情况下,不向6PE对等体/对等体组发送缺省路由 |
为6PE对等体/对等体组配置基于IPv6 ACL的过滤策略 |
peer { group-name | ipv4-address } filter-policy acl6-number { import | export } |
可选 缺省情况下,没有为6PE对等体/对等体组配置基于IPv6 ACL的过滤策略 |
将6PE对等体加入已存在的对等体组 |
peer ipv4-address group group-name [ as-number as-number ] |
可选 缺省情况下,6PE对等体不属于任何对等体组 |
配置6PE对等体/对等体组基于IPv6地址前缀列表的路由过滤策略 |
peer { group-name | ipv4-address } ipv6-prefix ipv6-prefix-name { import | export } |
可选 缺省情况下,没有6PE为对等体/对等体组配置基于IPv6前缀列表的路由过滤策略 |
保存所有来自6PE对等体/对等体组的原始路由信息,即使这些路由没有通过已配置的入口策略 |
peer { group-name | ipv4-address } keep-all-routes |
可选 缺省情况下,不保存6PE对等体/对等体组的原始路由信息 |
配置将本机作为路由反射器,并将6PE对等体/对等体组作为路由反射器的客户 |
peer { group-name | ipv4-address } reflect-client |
可选 缺省情况下,没有配置路由反射器及其客户 |
配置允许从6PE对等体/对等体组接收的最大IPv6地址前缀数 |
peer { group-name | ipv4-address } route-limit limit [ percentage ] |
可选 缺省情况下,允许从6PE对等体/对等体组接收的最大IPv6地址前缀数无限制 |
对来自6PE对等体/对等体组的路由或向对等体/对等体组发布的路由指定路由策略 |
peer { group-name | ipv4-address } route-policy route-policy-name { import | export } |
可选 缺省情况下,不指定6PE对等体/对等体组的路由策略 |
显示6PE对等体/对等体组信息 |
display bgp ipv6 peer [ group-name log-info | ipv4-address verbose ] [ | { begin | exclude | include } regular-expression ] |
可选 display命令可在任意视图下执行 |
显示向指定的6PE对等体发送或者从指定的对等体收到的路由信息 |
display bgp ipv6 routing-table peer ipv4-address { advertised-routes | received-routes } [ network-address prefix-length | statistic ] [ | { begin | exclude | include } regular-expression ] |
可选 display命令可在任意视图下执行 |
软复位指定的BGP 6PE连接 |
refresh bgp ipv6 ipv4-address { export | import } |
可选 refresh命令在用户视图下执行 |
复位指定的BGP 6PE连接 |
reset bgp ipv6 ipv4-address |
可选 reset命令在用户视图下执行 |
IPv6 BGP协议通过存活时间(Keepalive)定时器和保持时间(Holdtime)定时器来维护邻居关系。但这些定时器都是秒级的,而且根据协议规定,设置的保持时间应该至少为存活时间间隔的三倍。这样使得IPv6 BGP邻居关系的检测比较慢,对于报文收发速度快的接口会导致大量报文丢失。通过配置IPv6 BGP与BFD联动,使得BFD能够为IPv6 BGP邻居之间的链路提供更快速的检测。当邻居之间的链路出现故障时,能够加快IPv6 BGP协议的收敛速度。
表1-38 配置IPv6 BGP与BFD联动
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动BGP,进入BGP视图 |
bgp as-number |
必选 缺省情况下,系统不运行BGP |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
在指定邻居上使能BFD |
peer ipv6-address bfd |
必选 缺省情况下,IPv6 BGP的所有对等体邻居上都没有使能BFD链路检测功能 |
· 配置BFD之前,需要使能BGP功能。
· 在BGP使能GR能力后,请慎用BFD。因为当链路故障时,系统可能还没来得及启用GR处理流程,BFD已经检测到链路故障了,从而导致GR失败。
· 有关BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPv6 BGP的运行情况,通过查看显示信息验证配置的效果。
表1-39 显示IPv6 BGP的运行状态
当BGP路由策略或协议发生变化后,如果需要通过复位IPv6 BGP连接使新的配置生效,请在用户视图下进行下列配置。
操作 |
命令 |
手工软复位IPv6 BGP连接 |
refresh bgp ipv6 { ipv4-address | ipv6-address | all | external | group ipv6-group-name | internal } { export | import } |
复位所有IPv6 BGP连接 |
reset bgp ipv6 { as-number | ipv4-address | ipv6-address | all | external | group group-name | internal } |
在用户视图下执行reset命令可清除IPv6 BGP路由的统计信息。
操作 |
命令 |
清除IPv6 BGP路由的衰减信息并释放被抑制的路由 |
reset bgp ipv6 dampening [ ipv6-address prefix-length ] |
清除IPv6 BGP路由的振荡统计信息 |
reset bgp ipv6 flap-info [ ipv6-address/prefix-length | as-path-acl as-path-acl-number | regexp as-path-regexp ] reset bgp ipv6 peer-ipv6-address flap-info |
IPv6 BGP的配置举例多数与BGP的配置举例相似,本节不再一一列出。其他配置例请参见“三层技术-IP路由配置指导”中的“BGP”。
· 如图1-2所示,所有路由器均运行IPv6 BGP协议;
· Router A和Router B之间建立EBGP连接;
· Router B、Router C和Router D之间建立IBGP全连接。
图1-2 IPv6 BGP基本配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置IBGP连接
# 配置Router B。
<RouterB> system-view
[RouterB] ipv6
[RouterB] bgp 65009
[RouterB-bgp] router-id 2.2.2.2
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] peer 9:1::2 as-number 65009
[RouterB-bgp-af-ipv6] peer 9:3::2 as-number 65009
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ipv6
[RouterC] bgp 65009
[RouterC-bgp] router-id 3.3.3.3
[RouterC-bgp] ipv6-family
[RouterC-bgp-af-ipv6] peer 9:3::1 as-number 65009
[RouterC-bgp-af-ipv6] peer 9:2::2 as-number 65009
[RouterC-bgp-af-ipv6] quit
[RouterC-bgp] quit
# 配置Router D。
<RouterD> system-view
[RouterD] ipv6
[RouterD] bgp 65009
[RouterD-bgp] router-id 4.4.4.4
[RouterD-bgp] ipv6-family
[RouterD-bgp-af-ipv6] peer 9:1::1 as-number 65009
[RouterD-bgp-af-ipv6] peer 9:2::1 as-number 65009
[RouterD-bgp-af-ipv6] quit
[RouterD-bgp] quit
(3) 配置EBGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] ipv6
[RouterA] bgp 65008
[RouterA-bgp] router-id 1.1.1.1
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] peer 10::1 as-number 65009
[RouterA-bgp-af-ipv6] quit
[RouterA-bgp] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] peer 10::2 as-number 65008
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
# 查看Router B的对等体信息。
[RouterB] display bgp ipv6 peer
BGP local router ID : 2.2.2.2
Local AS number : 65009
Total number of peers : 3 Peers in established state : 3
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10::2 65008 3 3 0 0 00:01:16 Established
9:3::2 65009 2 3 0 0 00:00:40 Established
9:1::2 65009 2 4 0 0 00:00:19 Established
# 查看Router C的对等体信息。
[RouterC] display bgp ipv6 peer
BGP local router ID : 3.3.3.3
Local AS number : 65009
Total number of peers : 2 Peers in established state : 2
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
9:3::1 65009 4 4 0 0 00:02:18 Established
9:2::2 65009 4 5 0 0 00:01:52 Established
可以看出,Router A和Router B之间建立了EBGP连接,Router B、Router C和Router D之间建立了IBGP连接。
Router B接收了一个经过EBGP的更新报文并将之传给Router C。Router C被配置为路由反射器,它有两个客户机:Router B和Router D。
Router B和Router D间不需要建立IBGP连接,当Router C接收了来自Router B的路由更新时,它将此信息反射给Router D;反之,接收到的来自Router D的路由信息也会被反射给Router B。
图1-3 配置IPv6 BGP路由反射器组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置IPv6 BGP基本功能
# 配置Router A。
<RouterA> system-view
[RouterA] ipv6
[RouterA] bgp 100
[RouterA-bgp] router-id 1.1.1.1
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] peer 100::2 as-number 200
[RouterA-bgp-af-ipv6] network 1:: 64
# 配置Router B。
<RouterB> system-view
[RouterB] ipv6
[RouterB] bgp 200
[RouterB-bgp] router-id 2.2.2.2
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] peer 100::1 as-number 100
[RouterB-bgp-af-ipv6] peer 101::1 as-number 200
[RouterB-bgp-af-ipv6] peer 101::1 next-hop-local
# 配置Router C。
<RouterC> system-view
[RouterC] ipv6
[RouterC] bgp 200
[RouterC-bgp] router-id 3.3.3.3
[RouterC-bgp] ipv6-family
[RouterC-bgp-af-ipv6] peer 101::2 as-number 200
[RouterC-bgp-af-ipv6] peer 102::2 as-number 200
# 配置Router D。
<RouterD> system-view
[RouterD] ipv6
[RouterD] bgp 200
[RouterD-bgp] router-id 4.4.4.4
[RouterD-bgp] ipv6-family
[RouterD-bgp-af-ipv6] peer 102::1 as-number 200
(3) 配置路由反射器
# 配置Router C作为路由反射器,Router B和Router D是它的两个客户机。
[RouterC-bgp-af-ipv6] peer 101::2 reflect-client
[RouterC-bgp-af-ipv6] peer 102::2 reflect-client
在Router B上用命令display bgp ipv6 routing-table,可以看到Router B已知道网络1::/64的存在。
在Router D上用命令display bgp ipv6 routing-table,可以看到Router D也知道网络1::/64的存在。
· 路由器PE 1和PE 2支持6PE特性;
· 路由器CE 1和CE 2支持IPv6协议;
· PE路由器之间是运营商的IPv4/MPLS网络,PE之间需要建立IPv4的IBGP连接,IGP使用OSPF路由协议;
· CE路由器所在的网络为IPv6网络,CE与PE之间部署静态路由指导IPV6转发;
· 要求使用6PE特性将用户的IPv6网络通过运营商的IPv4/MPLS网络连接起来。
图1-4 配置6PE组网图
(1) 配置CE 1
# 使能IPv6报文转发功能。
<CE1> system-view
[CE1] ipv6
# 配置接口地址。
[CE1] interface serial 2/2/0
[CE1-Serial2/2/0] ipv6 address auto link-local
[CE1-Serial2/2/0] quit
[CE1] interface loopback0
[CE1-LoopBack0] ipv6 address 1::1/128
[CE1-LoopBack0] quit
# 配置静态路由,与PE 1建立IPv6连接。
[CE1] ipv6 route-static :: 0 serial2/2/0
(2) 配置PE 1
# 使能IPv6报文转发功能、MPLS和LDP协议。
<PE1> system-view
[PE1] ipv6
[PE1] mpls lsr-id 2.2.2.2
[PE1] mpls
[PE1-mpls] lsp-trigger all
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置接口Serial2/2/0的IPv6链路本地地址。
[PE1] interface serial 2/2/0
[PE1-Serial2/2/0] ipv6 address auto link-local
[PE1-Serial2/2/0] quit
# 配置接口Serial2/2/1地址,并使能MPLS和LDP协议。
[PE1] interface serial 2/2/1
[PE1-Serial2/2/1] ip address 1.1.1.1 16
[PE1-Serial2/2/1] mpls
[PE1-Serial2/2/1] mpls ldp
[PE1-Serial2/2/1] quit
# 配置接口Loopback0地址。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.2 32
[PE1-LoopBack0] ipv6 address 2::2/128
[PE1-LoopBack0] quit
# 配置IBGP,使能对等体的6PE能力,并引入IPv6的直连和静态路由。
[PE1] bgp 65100
[PE1-bgp] peer 3.3.3.3 as-number 65100
[PE1-bgp] peer 3.3.3.3 connect-interface loopback 0
[PE1-bgp] ipv6-family
[PE1-bgp-af-ipv6] import-route direct
[PE1-bgp-af-ipv6] import-route static
[PE1-bgp-af-ipv6] peer 3.3.3.3 enable
[PE1-bgp-af-ipv6] peer 3.3.3.3 label-route-capability
[PE1-bgp-af-ipv6] quit
[PE1-bgp] quit
# 配置到CE 1的静态路由。
[PE1] ipv6 route-static 1::1 128 serial2/2/0
# 配置OSPF,触发LSP的建立。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 1.1.0.0 0.0.255.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
[PE1]
(3) 配置PE 2
<PE2> system-view
[PE2] ipv6
[PE2] mpls lsr-id 3.3.3.3
[PE2] mpls
[PE2-mpls] lsp-trigger all
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface serial 2/2/1
[PE2-Serial2/2/1] ip address 1.1.1.2 16
[PE2-Serial2/2/1] mpls
[PE2-Serial2/2/1] mpls ldp
[PE2-Serial2/2/1] quit
[PE2] interface serial 2/2/0
[PE2-Serial2/2/0] ipv6 address auto link-local
[PE2-Serial2/2/0] quit
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.3 32
[PE2-LoopBack0] ipv6 address 3::3/128
[PE2-LoopBack0] quit
# 配置IBGP,使能对等体的6PE能力,并引入IPv6的直连和静态路由。
[PE2] bgp 65100
[PE2-bgp] peer 2.2.2.2 as-number 65100
[PE2-bgp] peer 2.2.2.2 connect-interface loopback 0
[PE2-bgp] ipv6-family
[PE2-bgp-af-ipv6] import-route direct
[PE2-bgp-af-ipv6] import-route static
[PE2-bgp-af-ipv6] peer 2.2.2.2 enable
[PE2-bgp-af-ipv6] peer 2.2.2.2 label-route-capability
[PE2-bgp-af-ipv6] quit
[PE2-bgp] quit
# 配置到CE 2的静态路由。
[PE1] ipv6 route-static 4::4 128 serial2/2/0
# 配置OSPF,触发LSP的建立。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 1.1.0.0 0.0.255.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
[PE1]
(4) 配置CE 2
# 使能IPv6报文转发功能,配置接口地址。
<CE2> system-view
[CE2] ipv6
[CE2] interface serial 2/2/0
[CE2-Serial2/2/0] ipv6 address auto link-local
[CE2-Serial2/2/0] quit
[CE2] interface loopback 0
[CE2-LoopBack0] ipv6 address 4::4/128
[CE2-LoopBack0] quit
# 配置到PE 2的静态路由。
[CE2] ipv6 route-static :: 0 serial2/2/0
# 显示路由器PE 1的LSP信息。
<PE1> display mpls lsp
--------------------------------------------------------------
LSP Information: BGP IPV6 LSP
--------------------------------------------------------------
FEC : 1::1
In Label : 1024 Out Label : -----
In Interface : ----- OutInterface : -----
Vrf Name :
FEC : 2::2
In Label : 1025 Out Label : -----
In Interface : ----- OutInterface : -----
Vrf Name :
---------------------------------------------------------------
LSP Information: LDP LSP
---------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
3.3.3.3/32 NULL/3 -/S2/1
2.2.2.2/32 3/NULL S2/1/-
# 显示路由器PE 1的IPv6路由信息。
<PE1> display bgp ipv6 routing-table
Total Number of Routes: 4
BGP Local router ID is 2.2.2.2
Status codes: * - valid, ^ - VPNv4 best, > - best, d - damped,
h - history, i - internal, s - suppressed, S – Stale
Origin : i - IGP, e - EGP, ? - incomplete
*> Network : 1::1 PrefixLen : 128
NextHop : FE80::E142:0:4607:1 LocPrf :
PrefVal : 0 Label : NULL
MED : 0
Path/Ogn: ?
*> Network : 2::2 PrefixLen : 128
NextHop : ::1 LocPrf :
PrefVal : 0 Label : NULL
MED : 0
Path/Ogn: ?
*>i Network : 3::3 PrefixLen : 128
NextHop : ::FFFF:3.3.3.3 LocPrf : 100
PrefVal : 0 Label : NULL
MED : 0
Path/Ogn: ?
*>i Network : 4::4 PrefixLen : 128
NextHop : ::FFFF:3.3.3.3 LocPrf : 100
PrefVal : 0 Label : NULL
MED : 0
Path/Ogn: ?
完成以上配置之后,从CE 1上可以Ping通CE 2的IPv6地址(Loopback接口地址4::4)。
· Router A、Router B和Router C三台路由器互连,使能IPv6 BGP协议。Router A和Router B之间建立IBGP连接,Router B和Router C之间建立EBGP连接。
· 要求配置IPsec安全策略对Router A和Router B之间、Router B和Router C之间的IPv6 BGP报文进行验证和加密。
图1-5 IPv6 BGP IPsec安全策略组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置IBGP连接
# 配置Router A。
<RouterA> system-view
[RouterA] ipv6
[RouterA] bgp 65008
[RouterA-bgp] router-id 1.1.1.1
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] group ibgp internal
[RouterA-bgp-af-ipv6] peer 1::2 group ibgp
[RouterA-bgp-af-ipv6] quit
[RouterA-bgp] quit
# 配置Router B。
<RouterB> system-view
[RouterB] ipv6
[RouterB] bgp 65008
[RouterB-bgp] router-id 2.2.2.2
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] group ibgp internal
[RouterB-bgp-af-ipv6] peer 1::1 group ibgp
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
(3) 配置EBGP连接
# 配置Router C。
<RouterC> system-view
[RouterC] ipv6
[RouterC] bgp 65009
[RouterC-bgp] router-id 3.3.3.3
[RouterC-bgp] ipv6-family
[RouterC-bgp-af-ipv6] group ebgp external
[RouterC-bgp-af-ipv6] peer 3::1 as-number 65008
[RouterC-bgp-af-ipv6] peer 3::1 group ebgp
[RouterC-bgp-af-ipv6] quit
[RouterC-bgp] quit
# 配置Router B。
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] group ebgp external
[RouterB-bgp-af-ipv6] peer 3::2 as-number 65009
[RouterB-bgp-af-ipv6] peer 3::2 group ebgp
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
(4) 配置IPv6 BGP IPsec安全策略
# 配置Router A。创建名为tran1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全策略policy001,协商方式为manual,配置SPI和密钥。
[RouterA] ipsec proposal tran1
[RouterA-ipsec-proposal-tran1] encapsulation-mode transport
[RouterA-ipsec-proposal-tran1] transform esp
[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des
[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-proposal-tran1] quit
[RouterA] ipsec policy policy001 10 manual
[RouterA-ipsec-policy-manual-policy001-10] proposal tran1
[RouterA-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[RouterA-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[RouterA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[RouterA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[RouterA-ipsec-policy-manual-policy001-10] quit
# 配置Router B。创建名为tran1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议;创建一条安全策略policy001,协商方式为manual,配置SPI和密钥。创建名为tran2的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议;创建一条安全策略policy002,协商方式为manual,配置SPI和密钥。
[RouterB] ipsec proposal tran1
[RouterB-ipsec-proposal-tran1] encapsulation-mode transport
[RouterB-ipsec-proposal-tran1] transform esp
[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des
[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-proposal-tran1] quit
[RouterB] ipsec policy policy001 10 manual
[RouterB-ipsec-policy-manual-policy001-10] proposal tran1
[RouterB-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[RouterB-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[RouterB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[RouterB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[RouterB-ipsec-policy-manual-policy001-10] quit
[RouterB] ipsec proposal tran2
[RouterB-ipsec-proposal-tran2] encapsulation-mode transport
[RouterB-ipsec-proposal-tran2] transform esp
[RouterB-ipsec-proposal-tran2] esp encryption-algorithm des
[RouterB-ipsec-proposal-tran2] esp authentication-algorithm sha1
[RouterB-ipsec-proposal-tran2] quit
[RouterB] ipsec policy policy002 10 manual
[RouterB-ipsec-policy-manual-policy002-10] proposal tran2
[RouterB-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[RouterB-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[RouterB-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[RouterB-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[RouterB-ipsec-policy-manual-policy002-10] quit
# 配置Router C。创建名为tran2的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全策略policy002,协商方式为manual,配置SPI和密钥。
[RouterC] ipsec proposal tran2
[RouterC-ipsec-proposal-tran2] encapsulation-mode transport
[RouterC-ipsec-proposal-tran2] transform esp
[RouterC-ipsec-proposal-tran2] esp encryption-algorithm des
[RouterC-ipsec-proposal-tran2] esp authentication-algorithm sha1
[RouterC-ipsec-proposal-tran2] quit
[RouterC] ipsec policy policy002 10 manual
[RouterC-ipsec-policy-manual-policy002-10] proposal tran2
[RouterC-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[RouterC-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[RouterC-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[RouterC-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[RouterC-ipsec-policy-manual-policy002-10] quit
(5) 配置IBGP对等体IPsec安全策略
# 配置Router A。
[RouterA] bgp 65008
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] peer 1::2 ipsec-policy policy001
[RouterA-bgp-af-ipv6] quit
[RouterA-bgp] quit
# 配置Router B。
[RouterB] bgp 65008
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] peer 1::1 ipsec-policy policy001
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
(6) 配置EBGP对等体组IPsec安全策略
# 配置Router C。
[RouterC] bgp 65009
[RouterC-bgp] ipv6-family
[RouterC-bgp-af-ipv6] peer ebgp ipsec-policy policy002
[RouterC-bgp-af-ipv6] quit
[RouterC-bgp] quit
# 配置Router B。
[RouterB] bgp 65008
[RouterB-bgp] ipv6-family
[RouterB-bgp-af-ipv6] peer ebgp ipsec-policy policy002
[RouterB-bgp-af-ipv6] quit
[RouterB-bgp] quit
# 显示Router B的对等体的详细信息。
[RouterB] display bgp ipv6 peer verbose
BGP Peer is 1::1, remote AS 65008,
Type: IBGP link
BGP version 4, remote router ID 1.1.1.1
BGP current state: Established, Up for 00h01m51s
BGP current event: RecvKeepalive
BGP last state: OpenConfirm
Port: Local – 1029 Remote - 179
Configured: Active Hold Time: 180 sec Keepalive Time: 60 sec
Received : Active Hold Time: 180 sec
Negotiated: Active Hold Time: 180 sec
Peer optional capabilities:
Peer support bgp multi-protocol extended
Peer support bgp route refresh capability
Address family IPv4 Unicast: advertised and received
Received: Total 0 messages, Update messages 0
Sent: Total 0 messages, Update messages 0
Maximum allowed prefix number: 4294967295
Threshold: 75%
Minimum time between advertisement runs is 30 seconds
Optional capabilities:
Route refresh capability has been enabled
ORF advertise capability based on prefix (type 64):
Local: both
Negotiated: send
Peer Preferred Value: 0
IPsec policy name: policy001, SPI :12345
Routing policy configured:
No routing policy is configured
BGP Peer is 3::2, remote AS 65009,
Type: EBGP link
BGP version 4, remote router ID 3.3.3.3
BGP current state: Established, Up for 00h01m51s
BGP current event: RecvKeepalive
BGP last state: OpenConfirm
Port: Local – 1029 Remote - 179
Configured: Active Hold Time: 180 sec Keepalive Time: 60 sec
Received : Active Hold Time: 180 sec
Negotiated: Active Hold Time: 180 sec
Peer optional capabilities:
Peer support bgp multi-protocol extended
Peer support bgp route refresh capability
Address family IPv4 Unicast: advertised and received
Received: Total 0 messages, Update messages 0
Sent: Total 0 messages, Update messages 0
Maximum allowed prefix number: 4294967295
Threshold: 75%
Minimum time between advertisement runs is 30 seconds
Optional capabilities:
Route refresh capability has been enabled
ORF advertise capability based on prefix (type 64):
Local: both
Negotiated: send
Peer Preferred Value: 0
IPsec policy name: policy002, SPI :54321
Routing policy configured:
No routing policy is configured
完成上述配置后IBGP、EBGP邻居能正常建立,且报文都经过加密。
· 在AS 200内使用OSPFv3作为IGP协议;
· Router A与Router C建立两条IBGP连接。当Router A与Router C之间的两条链路均连通时,Router C与1200::0/64之间的报文使用Router A<->Router B<->Router C这条路径;当Router A<->Router B<->Router C链路故障时,BFD能够快速检测并通告IPv6 BGP协议,使得Router A<->Router D<->Router C这条路径能够迅速生效。
图1-6 IPv6 BGP与BFD联动配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3(略),保证Router A和Router C之间路由可达
(3) Router A上的IPv6 BGP配置
# 配置Router A和Router C建立两条IBGP连接。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] network 1200:: 64
[RouterA-bgp-af-ipv6] peer 3002::2 as-number 200
[RouterA-bgp-af-ipv6] peer 2002::2 as-number 200
[RouterA-bgp-af-ipv6] quit
# 配置当Router A与Router C之间的两条链路均连通时,Router C与1200::0/64之间的报文使用Router A<->Router B<->Router C这条路径。(在Router A上对发布给对等体2002::2的1200::0/64路由配置较高的MED属性值)
· 定义编号为2000的IPv6 ACL,允许路由1200::0/64通过。
[RouterA] acl ipv6 number 2000
[RouterA-acl6-basic-2000] rule permit source 1200::0 64
[RouterA-acl6-basic-2000] quit
· 定义两个Route-policy,一个名为apply_med_50,为路由1200::0/64设置MED属性值为50;另一个名为apply_med_100,为路由1200::0/64设置MED属性值为100。
[RouterA] route-policy apply_med_50 permit node 10
[RouterA-route-policy] if-match ipv6 address acl 2000
[RouterA-route-policy] apply cost 50
[RouterA-route-policy] quit
[RouterA] route-policy apply_med_100 permit node 10
[RouterA-route-policy] if-match ipv6 address acl 2000
[RouterA-route-policy] apply cost 100
[RouterA-route-policy] quit
· 对发布给对等体3002::2的路由应用名为apply_med_50的Route-policy,对发布给对等体2002::2的路由应用名为apply_med_100的Route-policy。
[RouterA] bgp 200
[RouterA-bgp] ipv6-family
[RouterA-bgp-af-ipv6] peer 3002::2 route-policy apply_med_50 export
[RouterA-bgp-af-ipv6] peer 2002::2 route-policy apply_med_100 export
# 配置当Router A<->Router B<->Router C链路故障时,BFD能够快速检测并通告IPv6 BGP协议,使得Router A<->Router D<->Router C这条路径能够迅速生效。
[RouterA-bgp-af-ipv6] peer 3002::2 bfd
[RouterA-bgp-af-ipv6] quit
[RouterA-bgp] quit
(4) Router C上的IPv6 BGP配置。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp] ipv6-family
[RouterC-bgp-af-ipv6] peer 3001::1 as-number 200
[RouterC-bgp-af-ipv6] peer 3001::1 bfd
[RouterC-bgp-af-ipv6] peer 2001::1 as-number 200
[RouterC-bgp-af-ipv6] quit
[RouterC-bgp] quit
(5) 配置各路由器接口及BFD参数(该步骤可省略,使用BFD参数的缺省值即可)
# 配置Router A。
[RouterA] bfd session init-mode active
[RouterA] interface gigabitethernet 2/1/2
· 配置发送BFD控制报文的最小时间间隔为500毫秒。
[RouterA-Gigabitethernet2/1/2] bfd min-transmit-interval 500
· 配置接收BFD控制报文的最小时间间隔为500毫秒。
[RouterA-Gigabitethernet2/1/2] bfd min-receive-interval 500
· 配置BFD报文最大失效的个数为7。
[RouterA-Gigabitethernet2/1/2] bfd detect-multiplier 7
# 配置Router C。
[RouterC] bfd session init-mode active
[RouterC] interface gigabitethernet 2/1/1
· 配置发送BFD控制报文的最小时间间隔为500毫秒。
[RouterC-Gigabitethernet2/1/1] bfd min-transmit-interval 500
· 配置接收BFD控制报文的最小时间间隔为500毫秒。
[RouterC-Gigabitethernet2/1/1] bfd min-receive-interval 500
· 配置BFD报文最大失效的个数为7。
[RouterC-Gigabitethernet2/1/1] bfd detect-multiplier 7
(6) 检查配置结果
下面以Router C为例,Router A和Router B类似,不再赘述。
# 显示Router C的BFD信息。
<RouterC> display bfd session verbose
Total Session Num: 1 Init Mode: Active
IPv6 Session Working Under Ctrl Mode:
Local Discr: 17 Remote Discr: 13
Source IP: 3002::2
Destination IP: 3001::1
Session State: Up Interface: Gigabitethernet2/1/1
Min Trans Inter: 500ms Act Trans Inter: 500ms
Min Recv Inter: 500ms Act Detect Inter: 3000ms
Recv Pkt Num: 57 Send Pkt Num: 53
Hold Time: 2200ms Connect Type: Direct
Running Up for: 00:00:06
Protocol: BGP6
Diag Info: No Diagnostic
以上显示信息表明:Router A的Gigabitethernet2/1/2接口和Router C的Gigabitethernet2/1/1之间已经建立了BFD连接,而且BFD协议运行正常。
# 在Router C上查看BGP邻居信息,可以看出Router A和Router C BGP邻居处于Established状态。
<RouterC> display bgp ipv6 peer
BGP local router ID : 1.1.1.1
Local AS number : 200
Total number of peers : 2 Peers in established state : 2
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2001::1 200 7 10 0 0 00:01:05 Established
3001::1 200 7 10 0 0 00:01:34 Established
# 在Router C上查看1200::0/64的路由信息,可以看出Router A和Router C是通过Router B进行通信的。
<RouterC> display ipv6 routing-table 1200::0 64 verbose
Routing Table :
Summary Count : 2
Destination : 1200:: PrefixLength : 64
NextHop : 3001::1 Preference : 255
RelayNextHop : 3002::1 Tag : 0H
Neighbor : 3001::1 ProcessID : 0
Interface : Gigabitethernet2/1/1 Protocol : BGP4+
State : Active Adv Cost : 50
Tunnel ID : 0x0 Label : NULL
Age : 4538sec
Destination : 1200:: PrefixLength : 64
NextHop : 2001::1 Preference : 255
RelayNextHop : 2002::1 Tag : 0H
Neighbor : 2001::1 ProcessID : 0
Interface : Gigabitethernet2/1/2 Protocol : BGP4+
State : Invalid Adv Cost : 100
Tunnel ID : 0x0 Label : NULL
Age : 4515sec
以上显示信息表明:Router C到达1200::0/64网段有两条路径:当前生效的是Router A<->Router B<->Router C,Router A<->Router D<->Router C这条路径没有生效。
# 打开Router C的调试开关。
<RouterC> debugging bfd scm
<RouterC> debugging bfd event
<RouterC> debugging bgp bfd
<RouterC> terminal monitor
<RouterC> terminal debugging
# Router A和Router C之间的链路发生故障后,可以看到Router C能够快速检测Router B的变化。
%Nov 5 11:42:24:172 2009 RouterC BFD/5/BFD_CHANGE_FSM: Sess[3002::2/3001::1,13/17,GE2/1/1,Ctrl], Sta: UP->DOWN, Diag: 1
%Nov 5 11:42:24:172 2009 RouterC BGP/5/BGP_STATE_CHANGED: 3001::1 state is changed from ESTABLISHED to IDLE.
*Nov 5 11:42:24:187 2009 RouterC RM/6/RMDEBUG: BGP_BFD: Recv BFD DOWN msg, Src IP 3002::2, Dst IP 3001::1, Instance ID 0.
*Nov 5 11:42:24:187 2009 RouterC RM/6/RMDEBUG: BGP_BFD: Reset BGP session 3001::1 for BFD session down.
*Nov 5 11:42:24:187 2009 RouterC RM/6/RMDEBUG: BGP_BFD: Send DELETE msg to BFD, Connection type DIRECT, Src IP 3002::2, Dst IP 3001::1, Instance ID 0.
# 在Router C上查看1200::0/64的路由信息,可以看出Router A和Router C是通过Router D进行通信的。
<RouterC> display ipv6 routing-table 1200::0 64 verbose
Routing Table :
Summary Count : 1
Destination : 1200:: PrefixLength : 64
NextHop : 2001::1 Preference : 255
RelayNextHop : 2002::1 Tag : 0H
Neighbor : 2001::1 ProcessID : 0
Interface : Gigabitethernet2/1/2 Protocol : BGP4+
State : Active Adv Cost : 100
Tunnel ID : 0x0 Label : NULL
Age : 4635sec
以上显示信息表明:Router C到达1200::0/64网段有一条路径:Router A<->Router D<->Router C。
使用display bgp ipv6 peer命令查看IPv6 BGP对等体的信息,发现与对端的连接无法进入Established状态。
IPv6 BGP邻居的建立需要能够使用179端口建立TCP会话,以及能够正确交换Open消息。
(1) 用display current-configuration configuration bgp命令检查邻居的AS号配置是否正确。
(2) 用display bgp ipv6 peer命令检查邻居的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 ipv6 status命令检查TCP连接是否正常。
(9) 检查是否配置了禁止TCP端口179的ACL。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!