11-IPv6 BGP配置
本章节下载: 11-IPv6 BGP配置 (504.86 KB)
目 录
1.3.9 记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息
1.4.4 配置向IPv6对等体/IPv6对等体组发送缺省路由
1.5.2 配置IPv6 BGP路由管理的优先级、缺省LOCAL_PREF及NEXT_HOP属性
1.6.9 配置IPv6 BGP建立TCP连接时进行MD5认证
本章只列出了IPv6 BGP专有的配置与操作,其他相关内容请参见“三层技术-IP路由配置指导”中的“BGP”。
传统的BGP-4只能管理IPv4的路由信息,对于使用其它网络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。
为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)。其中,针对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对等体 |
必选 |
1.3.2 |
配置IPv6 BGP发布本地IPv6路由 |
可选 |
1.3.3 |
|
配置路由首选值 |
可选 |
1.3.4 |
|
配置IPv6 BGP连接所使用的本地接口 |
可选 |
1.3.5 |
|
配置EBGP连接的最大跳数 |
可选 |
1.3.6 |
|
配置IPv6对等体/IPv6对等体组的描述信息 |
可选 |
1.3.7 |
|
禁止与IPv6对等体/IPv6对等体组建立会话 |
可选 |
1.3.8 |
|
记录指定IPv6对等体/IPv6对等体组的会话状态和事件信息 |
可选 |
1.3.9 |
|
控制路由信息的发布与接收 |
配置IPv6 BGP引入其他路由 |
可选 |
1.4.2 |
配置IPv6 BGP路由聚合 |
可选 |
1.4.3 |
|
配置向IPv6对等体/IPv6对等体组发送缺省路由 |
可选 |
1.4.4 |
|
配置路由信息的发布策略 |
可选 |
1.4.5 |
|
配置路由信息的接收策略 |
可选 |
1.4.6 |
|
配置IPv6 BGP与IGP路由同步 |
可选 |
1.4.7 |
|
配置路由衰减 |
可选 |
1.4.8 |
|
配置IPv6 BGP的路由属性 |
配置IPv6 BGP路由管理的优先级、缺省LOCAL_PREF及NEXT_HOP属性 |
可选 |
1.5.2 |
配置MED属性 |
可选 |
1.5.3 |
|
配置AS_PATH属性 |
可选 |
1.5.4 |
|
调整和优化IPv6 BGP网络 |
配置IPv6 BGP的时钟 |
可选 |
1.6.3 |
配置IPv6 BGP软复位 |
可选 |
1.6.4 |
|
配置BGP ORF能力 |
可选 |
1.6.5 |
|
使能4字节AS号抑制功能 |
可选 |
1.6.6 |
|
配置IPv6 BGP报文的DSCP优先级 |
可选 |
1.6.7 |
|
配置最大等价路由的条数 |
可选 |
1.6.8 |
|
配置IPv6 BGP建立TCP连接时进行MD5认证 |
可选 |
1.6.9 |
|
配置IPv6 BGP IPsec安全策略 |
可选 |
1.6.10 |
|
组建大型IPv6 BGP网络 |
配置IPv6 BGP对等体组 |
可选 |
1.7.2 |
配置IPv6 BGP团体 |
可选 |
1.7.3 |
|
配置IPv6 BGP路由反射器 |
可选 |
1.7.4 |
|
配置IPv6 BGP与BFD联动 |
可选 |
1.8 |
在配置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秒 |
· 使用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 | ip-address } capability-advertise suppress-4-byte-as |
必选 缺省情况下,设备没有使能4字节AS号抑制功能 IPv6 BGP-VPN实例视图下不支持group-name参数 |
如果对端设备支持AS号取值为4字节,请不要使能该功能,否则会导致IPv6 BGP对等体之间的连接关系无法建立。
在IPv6报文头中,包含一个8bit的Traffic class字段,用于标识IP报文的服务类型。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对IPv6 BGP报文的DSCP优先级进行配置。
表1-26 配置向IPv6 BGP邻居发送报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图 |
ipv6-family |
- |
配置向指定IPv6对等体/ IPv6对等体组发送IPv6 BGP报文的DSCP优先级 |
peer { ipv6-group-name | ipv6-address } dscp dscp-value |
可选 缺省情况下,IPv6 BGP报文的DSCP优先级为48 |
表1-27 配置最大等价路由的条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP视图 |
bgp as-number |
必选 |
进入IPv6地址族视图或IPv6 BGP-VPN实例视图 |
ipv6-family [ vpn-instance vpn-instance-name ] |
- |
配置进行IPv6 BGP负载分担的路由条数 |
balance number |
必选 缺省情况下,不进行负载分担 |
IPv6 BGP使用TCP作为传输层协议,可靠性有一定保证。为了提高IPv6 BGP的安全性,可以配置IPv6 BGP在建立TCP连接时进行MD5认证,认证通过后才能建立TCP连接。如果认证失败,则不能建立TCP连接。
表1-28 配置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”。
为方便管理,减少重复配置操作,管理员将一些享有相同更新策略的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,以避免路由循环。
IPv6 BGP协议通过存活时间(Keepalive)定时器和保持时间(Holdtime)定时器来维护邻居关系。但这些定时器都是秒级的,而且根据协议规定,设置的保持时间应该至少为存活时间间隔的三倍。这样使得IPv6 BGP邻居关系的检测比较慢,对于报文收发速度快的接口会导致大量报文丢失。通过配置IPv6 BGP与BFD联动,使得BFD能够为IPv6 BGP邻居之间的链路提供更快速的检测。当邻居之间的链路出现故障时,能够加快IPv6 BGP协议的收敛速度。
表1-36 配置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-37 显示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的配置举例多数与BGP4的配置举例相似,本节不再一一列出。其他配置例请参见“三层技术-IP路由配置指导”中的“BGP”。
如图1-1所示,所有交换机运行IPv6 BGP协议,Switch A和Switch B之间建立EBGP连接,Switch B、Switch C和Switch D之间建立IBGP全连接。
图1-1 IPv6 BGP基本配置组网图
(1) 配置各VLAN接口的IPv6地址(略)
(2) 配置IBGP连接
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] bgp 65009
[SwitchB-bgp] router-id 2.2.2.2
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] peer 9:1::2 as-number 65009
[SwitchB-bgp-af-ipv6] peer 9:3::2 as-number 65009
[SwitchB-bgp-af-ipv6] quit
[SwitchB-bgp] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] bgp 65009
[SwitchC-bgp] router-id 3.3.3.3
[SwitchC-bgp] ipv6-family
[SwitchC-bgp-af-ipv6] peer 9:3::1 as-number 65009
[SwitchC-bgp-af-ipv6] peer 9:2::2 as-number 65009
[SwitchC-bgp-af-ipv6] quit
[SwitchC-bgp] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] bgp 65009
[SwitchD-bgp] router-id 4.4.4.4
[SwitchD-bgp] ipv6-family
[SwitchD-bgp-af-ipv6] peer 9:1::1 as-number 65009
[SwitchD-bgp-af-ipv6] peer 9:2::1 as-number 65009
[SwitchD-bgp-af-ipv6] quit
[SwitchD-bgp] quit
(3) 配置EBGP连接
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] bgp 65008
[SwitchA-bgp] router-id 1.1.1.1
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] peer 10::1 as-number 65009
[SwitchA-bgp-af-ipv6] quit
[SwitchA-bgp] quit
# 配置Switch B。
[SwitchB] bgp 65009
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] peer 10::2 as-number 65008
# 查看Switch B的对等体信息。
[SwitchB] 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
# 查看Switch C的对等体信息。
[SwitchC] 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
可以看出,Switch A和Switch B之间建立的EBGP连接,Switch B、Switch C和Switch D之间建立了IBGP连接。
Switch B接收了一个经过EBGP的更新报文并将之传给Switch C。Switch C被配置为路由反射器,它有两个客户机:Switch B和Switch D。
SwitchB和Switch D间不需要建立IBGP连接,当Switch C接收了来自Switch B的路由更新时,它将此信息反射给Switch D;反之,接收到的Switch D的路由信息也会被反射给Switch B。
图1-2 配置IPv6 BGP路由反射器组网图
(1) 配置各VLAN接口的IPv6地址(略)
(2) 配置IPv6 BGP基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] bgp 100
[SwitchA-bgp] router-id 1.1.1.1
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] peer 100::2 as-number 200
[SwitchA-bgp-af-ipv6] network 1:: 64
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] bgp 200
[SwitchB-bgp] router-id 2.2.2.2
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] peer 100::1 as-number 100
[SwitchB-bgp-af-ipv6] peer 101::1 as-number 200
[SwitchB-bgp-af-ipv6] peer 101::1 next-hop-local
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] bgp 200
[SwitchC-bgp] router-id 3.3.3.3
[SwitchC-bgp] ipv6-family
[SwitchC-bgp-af-ipv6] peer 101::2 as-number 200
[SwitchC-bgp-af-ipv6] peer 102::2 as-number 200
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] bgp 200
[SwitchD-bgp] router-id 4.4.4.4
[SwitchD-bgp] ipv6-family
[SwitchD-bgp-af-ipv6] peer 102::1 as-number 200
(3) 配置路由反射器
# 配置Switch C作为路由反射器,Switch B和Switch D是它的两个客户机。
[SwitchC-bgp-af-ipv6] peer 101::2 reflect-client
[SwitchC-bgp-af-ipv6] peer 102::2 reflect-client
在Switch B上用命令display bgp ipv6 routing-table,可以看到Switch B已知道网络1::/64的存在。
在Switch D上用命令display bgp ipv6 routing-table,可以看到Switch D也知道网络1::/64的存在。
· Switch A、Switch B和Switch C三台交换机互连,使能IPv6 BGP协议。Switch A和Switch B之间建立IBGP连接,Switch B和Switch C之间建立EBGP连接。
· 要求配置IPsec安全策略对Switch A和Switch B之间、Switch B和Switch C之间的IPv6 BGP报文进行验证和加密。
图1-3 IPv6 BGP IPsec安全策略组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置IBGP连接
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] bgp 65008
[SwitchA-bgp] router-id 1.1.1.1
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] group ibgp internal
[SwitchA-bgp-af-ipv6] peer 1::2 group ibgp
[SwitchA-bgp-af-ipv6] quit
[SwitchA-bgp] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] bgp 65008
[SwitchB-bgp] router-id 2.2.2.2
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] group ibgp internal
[SwitchB-bgp-af-ipv6] peer 1::1 group ibgp
[SwitchB-bgp-af-ipv6] quit
[SwitchB-bgp] quit
(3) 配置EBGP连接
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] bgp 65009
[SwitchC-bgp] router-id 3.3.3.3
[SwitchC-bgp] ipv6-family
[SwitchC-bgp-af-ipv6] group ebgp external
[SwitchC-bgp-af-ipv6] peer 3::1 as-number 65008
[SwitchC-bgp-af-ipv6] peer 3::1 group ebgp
[SwitchC-bgp-af-ipv6] quit
[SwitchC-bgp] quit
# 配置Switch B。
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] group ebgp external
[SwitchB-bgp-af-ipv6] peer 3::2 as-number 65009
[SwitchB-bgp-af-ipv6] peer 3::2 group ebgp
[SwitchB-bgp-af-ipv6] quit
[SwitchB-bgp] quit
(4) 配置IPv6 BGP IPsec安全策略
# 配置Switch A。创建名为tran1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全策略policy001,协商方式为manual,配置SPI和密钥。
[SwitchA] ipsec proposal tran1
[SwitchA-ipsec-proposal-tran1] encapsulation-mode transport
[SwitchA-ipsec-proposal-tran1] transform esp
[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm des
[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1
[SwitchA-ipsec-proposal-tran1] quit
[SwitchA] ipsec policy policy001 10 manual
[SwitchA-ipsec-policy-manual-policy001-10] proposal tran1
[SwitchA-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[SwitchA-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[SwitchA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[SwitchA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[SwitchA-ipsec-policy-manual-policy001-10] quit
# 配置Switch B。创建名为tran1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议;创建一条安全策略policy001,协商方式为manual,配置SPI和密钥。创建名为tran2的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议;创建一条安全策略policy002,协商方式为manual,配置SPI和密钥。
[SwitchB] ipsec proposal tran1
[SwitchB-ipsec-proposal-tran1] encapsulation-mode transport
[SwitchB-ipsec-proposal-tran1] transform esp
[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm des
[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1
[SwitchB-ipsec-proposal-tran1] quit
[SwitchB] ipsec policy policy001 10 manual
[SwitchB-ipsec-policy-manual-policy001-10] proposal tran1
[SwitchB-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[SwitchB-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[SwitchB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[SwitchB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[SwitchB-ipsec-policy-manual-policy001-10] quit
[SwitchB] ipsec proposal tran2
[SwitchB-ipsec-proposal-tran2] encapsulation-mode transport
[SwitchB-ipsec-proposal-tran2] transform esp
[SwitchB-ipsec-proposal-tran2] esp encryption-algorithm des
[SwitchB-ipsec-proposal-tran2] esp authentication-algorithm sha1
[SwitchB-ipsec-proposal-tran2] quit
[SwitchB] ipsec policy policy002 10 manual
[SwitchB-ipsec-policy-manual-policy002-10] proposal tran2
[SwitchB-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[SwitchB-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[SwitchB-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[SwitchB-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[SwitchB-ipsec-policy-manual-policy002-10] quit
# 配置Switch C。创建名为tran2的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全策略policy002,协商方式为manual,配置SPI和密钥。
[SwitchC] ipsec proposal tran2
[SwitchC-ipsec-proposal-tran2] encapsulation-mode transport
[SwitchC-ipsec-proposal-tran2] transform esp
[SwitchC-ipsec-proposal-tran2] esp encryption-algorithm des
[SwitchC-ipsec-proposal-tran2] esp authentication-algorithm sha1
[SwitchC-ipsec-proposal-tran2] quit
[SwitchC] ipsec policy policy002 10 manual
[SwitchC-ipsec-policy-manual-policy002-10] proposal tran2
[SwitchC-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[SwitchC-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[SwitchC-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[SwitchC-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[SwitchC-ipsec-policy-manual-policy002-10] quit
(5) 配置IBGP对等体IPsec安全策略
# 配置Switch A。
[SwitchA] bgp 65008
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] peer 1::2 ipsec-policy policy001
[SwitchA-bgp-af-ipv6] quit
[SwitchA-bgp] quit
# 配置Switch B。
[SwitchB] bgp 65008
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] peer 1::1 ipsec-policy policy001
[SwitchB-bgp-af-ipv6] quit
[SwitchB-bgp] quit
(6) 配置EBGP对等体组IPsec安全策略
# 配置Switch C。
[SwitchC] bgp 65009
[SwitchC-bgp] ipv6-family
[SwitchC-bgp-af-ipv6] peer ebgp ipsec-policy policy002
[SwitchC-bgp-af-ipv6] quit
[SwitchC-bgp] quit
# 配置Switch B。
[SwitchB] bgp 65008
[SwitchB-bgp] ipv6-family
[SwitchB-bgp-af-ipv6] peer ebgp ipsec-policy policy002
[SwitchB-bgp-af-ipv6] quit
[SwitchB-bgp] quit
# 显示Switch B的对等体的详细信息。
[SwitchB] 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协议;
· Switch A与Switch C建立两条IBGP连接。当Switch A与Switch C之间的两条链路均连通时,Switch C与1200::0/64之间的报文使用Switch A<->Switch B<->Switch C这条路径;当Switch A<->Switch B<->Switch C链路故障时,BFD能够快速检测并通告IPv6 BGP协议,使得Switch A<->Switch D<->Switch C这条路径能够迅速生效。
图1-4 IPv6 BGP与BFD联动配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int100 |
3000::1/64 |
Switch C |
Vlan-int101 |
3001::3/64 |
|
Vlan-int200 |
2000::1/64 |
|
Vlan-int201 |
2001::3/64 |
Switch B |
Vlan-int100 |
3000::2/64 |
Switch D |
Vlan-int200 |
2000::2/64 |
|
Vlan-int101 |
3001::2/64 |
|
Vlan-int201 |
2001::2/64 |
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3(略),保证Switch A和Switch C之间路由可达
(3) Switch A上的IPv6 BGP配置
# 配置Switch A和Switch C建立两条IBGP连接。
<SwitchA> system-view
[SwitchA] bgp 200
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] peer 3001::3 as-number 200
[SwitchA-bgp-af-ipv6] peer 2001::3 as-number 200
[SwitchA-bgp-af-ipv6] quit
# 配置当Switch A与Switch C之间的两条链路均连通时,Switch C与1200::0/64之间的报文使用Switch A<->Switch B<->Switch C这条路径。(在Switch A上对发布给对等体2001::3的1200::0/64路由配置较高的MED属性值)
· 定义编号为2000的IPv6 ACL,允许路由1200::0/64通过。
[SwitchA] acl ipv6 number 2000
[SwitchA-acl6-basic-2000] rule permit source 1200::0 64
[SwitchA-acl6-basic-2000] quit
· 定义两个Route-policy,一个名为apply_med_50,为路由1200::0/64设置MED属性值为50;另一个名为apply_med_100,为路由1200::0/64设置MED属性值为100。
[SwitchA] route-policy apply_med_50 permit node 10
[SwitchA-route-policy] if-match ipv6 address acl 2000
[SwitchA-route-policy] apply cost 50
[SwitchA-route-policy] quit
[SwitchA] route-policy apply_med_100 permit node 10
[SwitchA-route-policy] if-match ipv6 address acl 2000
[SwitchA-route-policy] apply cost 100
[SwitchA-route-policy] quit
· 对发布给对等体3001::3的路由应用名为apply_med_50的Route-policy,对发布给对等体2001::3的路由应用名为apply_med_100的Route-policy。
[SwitchA] bgp 200
[SwitchA-bgp] ipv6-family
[SwitchA-bgp-af-ipv6] network 1200:: 64
[SwitchA-bgp-af-ipv6] peer 3001::3 route-policy apply_med_50 export
[SwitchA-bgp-af-ipv6] peer 2001::3 route-policy apply_med_100 export
# 配置当Switch A<->Switch B<->Switch C链路故障时,BFD能够快速检测并通告IPv6 BGP协议,使得Switch A<->Switch D<->Switch C这条路径能够迅速生效。
[SwitchA-bgp-af-ipv6] peer 3001::3 bfd
[SwitchA-bgp-af-ipv6] quit
[SwitchA-bgp] quit
(4) Switch C上的IPv6 BGP配置。
<SwitchC> system-view
[SwitchC] bgp 200
[SwitchC-bgp] ipv6-family
[SwitchC-bgp-af-ipv6] peer 3000::1 as-number 200
[SwitchC-bgp-af-ipv6] peer 3000::1 bfd
[SwitchC-bgp-af-ipv6] peer 2000::1 as-number 200
[SwitchC-bgp-af-ipv6] quit
[SwitchC-bgp] quit
(5) 配置各路由器接口及BFD参数(该步骤可省略,使用BFD参数的缺省值即可)
# 配置Switch A。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 100
· 配置发送BFD控制报文的最小时间间隔为500毫秒。
[SwitchA-Vlan-interface100] bfd min-transmit-interval 500
· 配置接收BFD控制报文的最小时间间隔为500毫秒。
[SwitchA-Vlan-interface100] bfd min-receive-interval 500
· 配置BFD报文最大失效的个数为7。
[SwitchA-Vlan-interface100] bfd detect-multiplier 7
[SwitchA-Vlan-interface100] quit
# 配置Switch C。
[SwitchC] bfd session init-mode active
[SwitchC] interface vlan-interface 101
· 配置发送BFD控制报文的最小时间间隔为500毫秒。
[SwitchC-Vlan-interface101] bfd min-transmit-interval 500
· 配置接收BFD控制报文的最小时间间隔为500毫秒。
[SwitchC-Vlan-interface101] bfd min-receive-interval 500
· 配置BFD报文最大失效的个数为7。
[SwitchC-Vlan-interface101] bfd detect-multiplier 7
[SwitchC-Vlan-interface101] return
(6) 检查配置结果
下面以Switch C为例,Switch A和Switch B类似,不再赘述。
# 显示Switch C的BFD信息。
<SwitchC> display bfd session verbose
Total session number: 1 Up session number: 1 Init mode: Active
IPv6 Session working under Ctrl mode:
Local Discr: 17 Remote Discr: 13
Source IP: 3001::3
Destination IP: 3000::1
Session State: Up Interface: Vlan-interface101
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 Auth mode: none
Protocol: BGP6
Diag Info: No Diagnostic
以上显示信息表明:Switch A的VLAN接口100和Switch C的VLAN接口101之间已经建立了BFD连接,而且BFD协议运行正常。
# 在Switch C上查看BGP邻居信息,可以看出Switch A和Switch C BGP邻居处于Established状态。
<SwitchC> 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
2000::1 200 7 10 0 0 00:01:05 Established
3000::1 200 7 10 0 0 00:01:34 Established
# 在Switch C上查看1200::0/64的路由信息,可以看出Switch A和Switch C是通过Switch B进行通信的。
<SwitchC> display ipv6 routing-table 1200::0 64 verbose
Routing Table :
Summary Count : 2
Destination : 1200:: PrefixLength : 64
NextHop : 3000::1 Preference : 255
RelayNextHop : 3001::2 Tag : 0H
Neighbor : 3000::1 ProcessID : 0
Interface : Vlan-interface101 Protocol : BGP4+
State : Active Adv Cost : 50
Tunnel ID : 0x0 Label : NULL
Age : 4538sec
Destination : 1200:: PrefixLength : 64
NextHop : 2000::1 Preference : 255
RelayNextHop : 2001::2 Tag : 0H
Neighbor : 2000::1 ProcessID : 0
Interface : Vlan-interface201 Protocol : BGP4+
State : Invalid Adv Cost : 100
Tunnel ID : 0x0 Label : NULL
Age : 4515sec
以上显示信息表明:Switch C到达1200::0/64网段有两条路径:当前生效的是Switch A<->Switch B<->Switch C,Switch A<->Switch D<->Switch C这条路径没有生效。
当Switch A和Switch B之间的链路发生故障时Switch C能够快速检测Switch B的变化。
# 在Switch C上查看1200::0/64的路由信息,可以看出Switch A和Switch C是通过Switch D进行通信的。
<SwitchC> display ipv6 routing-table 1200::0 64 verbose
Routing Table :
Summary Count : 1
Destination : 1200:: PrefixLength : 64
NextHop : 2000::1 Preference : 255
RelayNextHop : 2001::2 Tag : 0H
Neighbor : 2000::1 ProcessID : 0
Interface : Vlan-interface201 Protocol : BGP4+
State : Active Adv Cost : 100
Tunnel ID : 0x0 Label : NULL
Age : 4635sec
以上显示信息表明:Switch C到达1200::0/64网段有一条路径:Switch A<->Switch D<->Switch 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) 检查路由表中是否存在到邻居的可用路由。
(6) 使用ping命令检查链路是否畅通。
(7) 使用display tcp ipv6 status命令检查TCP连接是否正常。
(8) 检查是否配置了禁止TCP端口179的ACL。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!