11-OSPFv3配置
本章节下载: 11-OSPFv3配置 (1.16 MB)
目 录
1.7.4 配置过滤Inter-Area-Prefix-LSA
1.7.8 配置OSPFv3通告给邻居的链路开销保持最大值的持续时间
1.7.13 配置允许设备将OSPFv3链路状态信息发布到BGP
1.9.9 配置Flex-Algo算法的TI-LFA FRR
1.9.10 配置Flex-Algo算法的快速重路由备份路径优选方案的优先级
1.10.6 配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数
1.16.3 配置OSPFv3根据BFD会话状态调整接口开销值
1.16.4 配置BFD会话震荡时抑制OSPFv3根据BFD会话状态调整接口开销值
1.17.5 配置OSPFv3快速重路由支持BFD检测功能(Ctrl方式)
1.17.6 配置OSPFv3快速重路由支持BFD检测功能(Echo方式)
OSPFv3是OSPF(Open Shortest Path First,开放最短路径优先)版本3的简称,主要提供对IPv6的支持。
OSPFv3和OSPFv2在很多方面是相同的:
· Router ID,Area ID仍然是32位的。
· 相同类型的报文:Hello报文,DD(Database Description,数据库描述)报文,LSR(Link State Request,链路状态请求)报文,LSU(Link State Update,链路状态更新)报文和LSAck(Link State Acknowledgment,链路状态确认)报文。
· 相同的邻居发现机制和邻接形成机制。
· 相同的LSA扩散机制和老化机制。
OSPFv3和OSPFv2的不同主要有:
· OSPFv3是基于链路运行;OSPFv2是基于网段运行。在配置OSPFv3时,不需要考虑是否配置在同一网段,只要在同一链路,就可以直接建立联系。
· OSPFv3在同一条链路上可以运行多个实例,即一个接口可以使能多个OSPFv3进程(使用不同的实例)。
· OSPFv3是通过Router ID来标识邻居;OSPFv2则是通过IPv4地址来标识邻居。
关于OSPF版本2的介绍,请参见“三层技术-IP路由”中的“OSPF”。
和OSPFv2一样,OSPFv3也有五种报文类型,如下:
· Hello报文:周期性发送,用来发现和维持OSPFv3邻居关系,以及进行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,备份指定路由器)的选举。
· DD(Database Description,数据库描述)报文:描述了本地LSDB(Link State DataBase,链路状态数据库)中每一条LSA(Link State Advertisement,链路状态通告)的摘要信息,用于两台路由器进行数据库同步。
· LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。
· LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。
· LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。
LSA(Link State Advertisement,链路状态通告)是OSPFv3协议计算和维护路由信息的主要来源,常用的LSA有以下几种类型:
· Router LSA(Type-1):由每个路由器生成,描述本路由器的链路状态和开销,只在路由器所处区域内传播。
· Network LSA(Type-2):由广播网络和NBMA(Non-Broadcast Multi-Access,非广播多路访问)网络的DR(Designated Router,指定路由器)生成,描述本网段接口的链路状态,只在DR所处区域内传播。
· Inter-Area-Prefix LSA(Type-3):由ABR(Area Border Router,区域边界路由器)生成,在与该LSA相关的区域内传播,描述一条到达本自治系统内其他区域的IPv6地址前缀的路由。
· Inter-Area-Router LSA(Type-4):由ABR生成,在与该LSA相关的区域内传播,描述一条到达本自治系统内的ASBR(Autonomous System Boundary Router,自治系统边界路由器)的路由。
· AS External LSA(Type-5):由ASBR生成,描述到达其它AS(Autonomous System,自治系统)的路由,传播到整个AS(Stub区域和NSSA区域除外)。缺省路由也可以用AS External LSA来描述。
· NSSA LSA(Type-7):由NSSA(Not-So-Stubby Area)区域内的ASBR生成,描述到AS外部的路由,仅在NSSA区域内传播。
· Link LSA(Type-8):路由器为每一条链路生成一个Link LSA,在本地链路范围内传播,描述该链路上所连接的IPv6地址前缀及路由器的Link-local地址。
· Intra-Area-Prefix LSA(Type-9):包含路由器上的IPv6前缀信息,Stub区域信息或穿越区域(Transit Area)的网段信息,该LSA在区域内传播。由于Router LSA和Network LSA不再包含地址信息,导致了Intra-Area-Prefix LSA的引入。
· Intra-Area-TE LSA(Type-10):在区域内传播,由配置了IPv6 Router ID的设备或开启OSPFv3区域MPLS TE能力的设备生成。对于配置了IPv6 Router ID的设备,其生成的Intra-Area-TE LSA中包含基本的链路状态信息,以及IPv6 Router ID、邻居ID、本地接口IPv6地址和邻居接口IPv6地址等信息;对于开启OSPFv3区域MPLS TE能力的设备,其生成的Intra-Area-TE LSA中包含链路的TE属性信息。
· Grace LSA(Type-11):由Restarter在重启的时候生成,在本地链路范围内传播。这个LSA描述了重启设备的重启原因和重启时间间隔,目的是通知邻居本设备将进入GR(Graceful Restart,平滑重启)。
GR(Graceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。其核心在于:设备进行协议重启时,能够通知其周边设备,使到该设备的邻居关系和路由在一定时间内保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内恢复到重启前的状态。在协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以实现不间断运行。
OSPFv3 GR可以保证运行OSPFv3协议的路由器在进行主备切换或OSPFv3协议重启时,转发业务正常进行。
OSPFv3 NSR(Nonstop Routing,不间断路由)是一种通过在OSPFv3协议主备进程之间备份必要的协议状态和数据(如OSPFv3邻居信息和链路状态信息),使得OSPFv3协议的主进程中断时,备份进程能够无缝地接管主进程的工作,从而确保邻居感知不到OSPFv3协议中断,保持OSPFv3路由,并保证转发不会中断的技术。
GR特性需要周边设备配合才能完成路由信息的恢复,在网络应用中有一定的限制。NSR特性不需要周边设备的配合,网络应用更加广泛。
与OSPFv3相关的协议规范有:
· RFC 2328:OSPF Version 2
· RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option
· RFC 4552:Authentication/Confidentiality for OSPFv3
· RFC 5187:OSPFv3 Graceful Restart
· RFC 5286:Basic Specification for IP Fast Reroute: Loop-Free Alternates
· RFC 5329:Traffic Engineering Extensions to OSPF Version 3
· RFC 5340:OSPF for IPv6
· RFC 5523:OSPFv3-Based Layer 1 VPN Auto-Discovery
· RFC 5643:Management Information Base for OSPFv3
· RFC 6506:Supporting Authentication Trailer for OSPFv3
· RFC 6565:OSPFv3 as a Provider Edge to Customer Edge (PE-CE) Routing Protocol
· RFC 6969:OSPFv3 Instance ID Registry Update
· RFC 7166:Supporting Authentication Trailer for OSPFv3
OSPFv3配置任务如下:
(1) 使能OSPFv3功能
(2) (可选)启动轻量级OSPFv3进程
(3) (可选)配置OSPFv3的区域属性
所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。无法满足这个要求时,可以通过在ABR上配置OSPFv3虚连接予以解决。
(4) (可选)配置OSPFv3的网络类型
(5) (可选)配置OSPFv3的路由信息控制
¡ 配置OSPFv3通告给邻居的链路开销保持最大值的持续时间
(6) (可选)配置OSPFv3发布网络性能参数
(7) (可选)配置OSPFv3 Flex-Algo
(8) (可选)配置OSPFv3定时器
¡ 配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数
(9) (可选)配置接口的DR优先级
(10) (可选)配置OSPFv3报文相关功能
(11) (可选)加快OSPFv3路由收敛速度
¡ 配置前缀抑制
¡ 配置PIC
(12) (可选)配置OSPFv3高级功能
(13) (可选)提高OSPF网络的可靠性
(14) (可选)配置OSPFv3安全功能
(15) (可选)配置OSPFv3日志和告警功能
要在路由器上使能OSPFv3功能,必须先创建OSPFv3进程、指定该进程的Router ID并在接口上使能OSPFv3功能。
在一台路由器上可以创建多个OSPFv3进程,OSPFv3进程是本地概念。不同的路由器之间,即使进程不同也可以进行报文交换。
Router ID用来在一个自治系统中唯一的标识一台路由器。在OSPFv3中,用户必须手工配置一个Router ID,而且必须保证自治系统中任意两台路由器的Router ID都不相同。因此,为了保证OSPFv3运行的稳定性,在进行网络规划时,应确定路由器ID的划分并手工配置。
如果在同一台路由器上运行了多个OSPFv3进程,必须为不同的进程指定不同的Router ID。
(1) 进入系统视图。
system-view
(2) 启动OSPFv3,并进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
缺省情况下,系统没有运行OSPFv3。
(3) 配置路由器的Router ID。
router-id router-id
缺省情况下,运行OSPFv3协议的路由器没有Router ID。
(4) 进入接口视图。
interface interface-type interface-number
(5) 在接口上使能OSPFv3功能。
ospfv3 process-id area area-id [ instance instance-id ]
缺省情况下,接口上的OSPFv3功能处于关闭状态。
在用户需要启动大量OSPFv3进程的场景中,为了避免设备内存资源紧张,可以启动轻量级OSPFv3进程,以减少OSPFv3进程对内存的占用。轻量级OSPFv3进程虽然减少了内存占用,但在邻居数量、路由条目较多时会出现性能下降的情况。请根据设备的资源的使用情况合理规划启动轻量级OSPFv3进程的数量。
(1) 进入系统视图。
system-view
(2) 启动轻量级OSPFv3进程,并进入轻量级OSPFv3进程视图。
ospfv3 [ process-id ] [ lite | vpn-instance vpn-instance-name ] *
缺省情况下,系统没有运行OSPFv3。
OSPFv3支持Stub区域、NSSA区域和虚连接的配置,其原理及应用环境与OSPFv2相同。
OSPFv3划分区域后,可以减少网络中LSA的数量,OSPFv3的扩展性也得以增强。对于位于AS边缘的一些非骨干区域,为了更多的缩减其路由表规模和降低LSA的数量,可以将它们配置为Stub区域。
Stub区域不能引入外部路由,为了在允许将自治系统外部路由通告到OSPFv3路由域内部的同时,保持其余部分的Stub区域的特征,网络管理员可以将区域配置为NSSA区域。NSSA区域也是位于AS边缘的非骨干区域。
在划分区域之后,非骨干区域之间的OSPFv3路由更新是通过骨干区域来交换完成的。对此,OSPFv3要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过配置OSPFv3虚连接予以解决。
对于位于Stub区域中的所有路由器都必须执行本配置。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置一个区域为Stub区域。
stub [ default-route-advertise-always | no-summary ] *
缺省情况下,没有区域被配置为Stub区域。
参数no-summary只能在ABR上配置。指定no-summary参数后,ABR只向区域内发布一条描述缺省路由的Inter-Area-Prefix-LSA。
(5) (可选)配置发送到Stub区域的缺省路由的开销值。
default-cost cost-value
缺省情况下,发送到Stub区域的缺省路由的开销值为1。
对于位于NSSA区域中的所有路由器都必须执行本配置。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置一个区域为NSSA区域。
nssa [ default-route-advertise [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] * | no-import-route | no-summary | [ translate-always | translate-never ] | suppress-fa | translator-stability-interval value ] *
缺省情况下,没有区域被配置为NSSA区域。
指定no-summary参数可以将该区域配置为Totally NSSA区域,该区域的ABR不会将区域间的路由信息传递到本区域。
(5) (可选)配置发送到NSSA区域的缺省路由的开销值。
default-cost cost-value
缺省情况下,发送到NSSA区域的缺省路由的开销值为1。
本命令只有在NSSA区域和Totally NSSA区域的ABR/ASBR上配置才能生效。
对于没有和骨干区域直接相连的非骨干区域,或者不连续的骨干区域,可以使用该配置建立逻辑上的连通性。
虚连接的两端必须是ABR,而且必须在两端同时配置才可生效。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 创建并配置虚连接。
vlink-peer router-id [ dead seconds | hello seconds | instance instance-id | ipsec-profile profile-name | [ { hmac-sha-256 | hmac-sm3 } key-id { cipher | plain } string | keychain keychain-name ] | retransmit seconds | trans-delay seconds ] *
OSPFv3根据链路层协议类型将网络分为四种不同的类型:广播、NBMA、P2MP和P2P。接口的网络类型根据物理接口而定,用户可以根据需要配置OSPFv3接口的网络类型:
· 由于NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达。但在很多情况下,这个要求无法满足,这时就需要通过命令强制改变网络的类型。
· 对于NBMA网络,如果部分路由器之间没有直接可达的链路时,应将接口的网络类型配置为P2MP。如果路由器在NBMA网络中只有一个对端,也可将接口类型配置为P2P。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的网络类型。
ospfv3 network-type broadcast [ instance instance-id ]
缺省情况下,接口的网络类型根据物理接口而定。
当接口封装的链路层协议是Ethernet、FDDI时,OSPFv3接口网络类型的缺省值为广播类型。
当路由器的接口类型为NBMA时,由于无法通过广播Hello报文的形式发现相邻路由器,必须手工指定相邻路由器的本地链路地址、该相邻路由器是否有DR选举权等。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的网络类型为NBMA。
ospfv3 network-type nbma [ instance instance-id ]
当接口封装的链路层协议是ATM或X.25时,OSPFv3接口网络类型的缺省值为NBMA。
(4) (可选)配置OSPFv3接口的路由优先级。
ospfv3 dr-priority priority
缺省情况下,接口的路由优先级为1。
本命令设置的优先级用于实际的DR选举。
(5) 配置NBMA网络的邻居。
ospfv3 peer ipv6-address [ cost cost-value | dr-priority priority ] [ instance instance-id ]
缺省情况下,未指定邻居接口的链路本地地址。
当路由器的接口的网络类型为P2MP,且在P2MP网络中接口选择单播形式发送报文时,由于无法通过广播Hello报文的形式发现相邻路由器,必须手工指定相邻路由器的本地链路地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的网络类型为P2MP。
ospfv3 network-type p2mp [ unicast ] [ instance instance-id ]
缺省情况下,接口的网络类型根据物理接口而定。
(4) 配置P2MP(单播)网络的邻居。
ospfv3 peer ipv6-address [ cost cost-value | dr-priority priority ] [ instance instance-id ]
缺省情况下,未指定邻居接口的链路本地地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的网络类型为P2P。
ospfv3 network-type p2p [ instance instance-id ]
当接口封装的链路层协议是PPP、LAPB、HDLC或POS时,OSPFv3接口网络类型的缺省值为P2P。
如果一个区域中存在多个连续的网段,则可以在ABR上配置路由聚合将它们聚合成一个网段,ABR只发送一条聚合后的LSA,所有落入本命令指定的聚合网段范围的LSA将不再会被单独发送出去,这样可减小其它区域中LSDB的规模。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置ABR路由聚合。
abr-summary ipv6-address prefix-length [ not-advertise ] [ cost cost-value ]
缺省情况下,ABR不对路由进行聚合。
如果引入的路由中存在多个连续的网段,则可以在ASBR上配置路由聚合将它们聚合成一个网段。
如果本地路由器是ASBR,配置ASBR路由聚合可对引入的聚合地址范围内的Type-5 LSA描述的路由进行聚合;当配置了NSSA区域时,对引入的聚合地址范围内的Type-7 LSA描述的路由进行聚合。
如果本地路由器同时是ASBR和ABR,并且是NSSA区域的转换路由器,则对由Type-7 LSA转化成的Type-5 LSA描述的路由进行聚合处理;如果不是NSSA区域的转换路由器,则不进行聚合处理。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置ASBR路由聚合。
asbr-summary ipv6-address prefix-length [ cost cost-value | not-advertise | nssa-only | tag tag ] *
缺省情况下,ASBR不对引入的路由进行聚合。
OSPFv3接收到LSA后,可以根据一定的过滤条件来决定是否将计算后得到的路由信息加入到本地路由表中。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 过滤通过接收到的LSA计算出来的路由信息。
filter-policy { ipv6-acl-number [ gateway prefix-list-name ] | prefix-list prefix-list-name [ gateway prefix-list-name ] | gateway prefix-list-name | route-policy route-policy-name } import
缺省情况下,不对通过接收到的LSA计算出来的路由信息进行过滤。
本命令只对OSPFv3计算出来的路由进行过滤,没有通过过滤的路由将不被加入到本地路由表中,从而不能用于转发报文。
此命令只在ABR路由器上有效,对区域内部路由器无效。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置对Inter-Area-Prefix-LSA进行过滤。
filter { ipv6-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } { export | import }
缺省情况下,不对Inter-Area-Prefix-LSA进行过滤。
OSPFv3有两种方式来配置接口的开销值:
· 第一种方法是在接口视图下直接配置开销值;
· 第二种方法是配置接口的带宽参考值,OSPFv3根据带宽参考值自动计算接口的开销值,计算公式为:接口开销=带宽参考值(100Mbps)÷接口带宽(Mbps),当计算出来的开销值大于65535,开销取最大值65535;当计算出来的开销值小于1时,开销取最小值1。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的开销值。
ospfv3 cost cost-value [ instance instance-id ]
缺省情况下,OSPFv3根据接口的带宽自动计算链路开销,对于VLAN接口,缺省值为1;对于Loopback接口,缺省取值为0。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置带宽参考值。
bandwidth-reference value
缺省情况下,带宽参考值为100Mbps。
三层聚合组的某个成员端口状态为Down时,剩余带宽可能无法满足用户需求,导致用户业务受损。本功能用来解决上述问题,其工作机制如下:
· 当三层聚合接口的带宽小于带宽阈值时,设备将该聚合接口的开销值调整为用户设置的值。通常该值大于接口原始的开销值,以便OSPFv3选择更优的路径转发流量。
· 当三层聚合接口的带宽大于或等于带宽阈值时,该聚合接口使用原始的开销值。
关于OSPFv3接口开销值的详细介绍,请参见“1.7.5 配置OSPFv3接口的开销值”。
只支持在三层聚合接口和三层聚合子接口下使用本功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置在聚合接口的带宽低于阈值时改变接口的开销值。
ospfv3 cost-fallback cost-value threshold bandwidth-value [ instance instance-id ]
缺省情况下,聚合接口使用原始开销值。
误码是指通信设备接收到的信号与源信号之间存在比特差错。由于不可避免的线路老化、光路抖动等原因,误码是不能从根本上避免的。当误码积累到一定程度可能导致服务等级降低,甚至停止服务。使用本功能可以尽可能减少误码对OSPFv3网络的影响,具体机制如下:
· 当链路质量检测模块检测到误码率大于或等于高误码率门限时,链路的质量等级由GOOD变为LOW。链路质量检测模块向OSPFv3上报高误码事件,OSPFv3将接口开销值调大。
· 当链路质量检测模块检测到误码率小于低误码率门限时,链路的质量等级由LOW变为GOOD。链路质量检测模块向OSPFv3上报高误码解除事件,OSPFv3将接口开销值恢复为调整前的值。
关于链路质量检测的详细介绍,请参见“可靠性配置指导”中的“误码检测”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3根据链路质量等级调整接口开销值。
ospfv3 link-quality adjust-cost { max | cost-offset } [ instance instance-id ]
缺省情况下,OSPFv3不会根据链路质量等级调整接口开销值。
OSPFv3网络中,链路发生故障并从故障中恢复,或接口状态变化时,OSPFv3会重新建立邻接关系,路由会重新进行收敛。在路由重新收敛的过程中,由于各个节点的路由收敛速度不一致,可能会形成环路,造成流量丢失。为了在路由收敛过程中保持转发路径不变,可以使用本功能使OSPFv3在一段时间内向邻居通告最大链路开销,这段时间结束后OSPFv3向邻居通告的链路开销从最大值恢复为原始开销值,OSPFv3重新进行路由优选。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3通告给邻居的链路开销保持最大值的持续时间。
ospfv3 peer hold-max-cost duration timer [ instance instance-id ]
缺省情况下,未配置OSPFv3邻居保持最大开销值的时间。
如果到一个目的地有几条开销相同的路径,可以通过等价路由负载分担来提高链路利用率。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置OSPFv3最大等价路由条数。
maximum load-balancing number
缺省情况下,OSPFv3支持的等价路由的最大条数为64。
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优选。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置OSPFv3协议的路由优先级。
preference [ ase ] { preference | route-policy route-policy-name } *
缺省情况下,对于自治系统内部路由,OSPFv3协议的路由优先级为10;对于自治系统外部路由,OSPFv3协议的路由优先级为150。
由于OSPFv3是基于链路状态的路由协议,不能直接对发布的LSA进行过滤,所以只能在OSPFv3引入路由时进行过滤,只有符合条件的路由才能转换成LSA发布出去。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 引入外部路由信息。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] *
import-route { direct | static | unr } [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] *
import-route { isisv6 | ospfv3 | ripng } [ process-id | all-processes ] [ allow-direct | [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,不引入外部路由信息。
执行import-route命令引入IPv6 BGP路由时,未指定allow-ibgp参数表示只引入EBGP路由;指定allow-ibgp参数表示将IBGP路由也引入,容易引起路由环路,请慎用。
(4) (可选)对引入的外部路由信息进行过滤。
filter-policy { ipv6-acl-number | prefix-list prefix-list-name } export [ bgp4+ | direct | { isisv6 | ospfv3 | ripng } [ process-id ] | static | unr ]
缺省情况下,不对引入的路由信息进行过滤。
本命令只对本设备使用import-route引入的路由起作用。如果没有配置import-route命令来引入其它外部路由(包括不同进程的OSPFv3路由),则本命令失效。
(5) 配置路由引入的全局标记。
default tag tag
缺省情况下,路由引入的全局标记为1。
OSPFv3不能通过import-route命令从其它协议引入缺省路由,如果想把缺省路由引入到OSPFv3路由区域,必须要使用下面命令配置OSPFv3引入缺省路由。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置OSPFv3引入缺省路由。
default-route-advertise [ [ always | permit-calculate-other ] | cost cost-value | route-policy route-policy-name | tag tag | type type ] *
缺省情况下,未引入缺省路由。
(4) 配置路由引入的全局标记。
default tag tag
缺省情况下,路由引入的全局标记为1。
配置本功能后,设备会将OSPFv3的链路状态信息发布到BGP,由BGP通过Update消息进行相关信息的传递,以满足需要知道链路状态信息的应用的需求。这种通过BGP协议来传递链路状态信息的功能称为BGP LS(Link-State,链路状态),关于BGP LS的相关内容请参见“三层技术-IP路由配置指导”中的“BGP扩展功能”。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id ]
(3) 配置允许设备将OSPFv3链路状态信息发布到BGP。
distribute bgp-ls [ instance-id instance-id ]
缺省情况下,不允许设备将OSPFv3链路状态信息发布到BGP。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id ]
(3) 配置允许设备将OSPFv3链路状态信息发布到BGP。
distribute bgp-ls [ instance-id instance-id ]
缺省情况下,不允许设备将OSPFv3链路状态信息发布到BGP。
(4) 配置OSPFv3设备的IPv6 Router ID。
te-router-id ipv6-address
缺省情况下,未配置OSPFv3设备的IPv6 Router ID。
配置本命令后,OSPFv3将生成Intra-Area-TE LSA,该LSA中携带基本的链路状态信息,以及IPv6 Router ID、邻居ID、本地接口IPv6地址和邻居接口IPv6地址等信息。
(5) 配置OSPFv3通过Intra-Area-TE LSA携带链路的TE属性信息。
a. 退回系统视图。
quit
b. 开启本节点的MPLS TE能力,并进入MPLS TE视图。
mpls te
缺省情况下,MPLS TE能力处于关闭状态。
本命令的详细介绍请参见“MPLS配置指导”中的“MPLS TE”。
c. 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
d. 进入OSPFv3区域视图。
area area-id
e. 开启OSPFv3区域的MPLS TE能力。
mpls te enable
缺省情况下,OSPFv3区域的MPLS TE能力处于关闭状态。
配置本命令后,OSPFv3将生成Intra-Area-TE LSA,该LSA中携带基本的链路状态信息和链路的TE属性信息。
配置接口链路标记的设备和开启OSPFv3链路标记继承功能的设备相互配合,可以实现路由筛选。具体机制如下:
(1) 设备上配置了OSPFv3接口的链路标记后,该设备将发布携带链路标记的E-Router-LSA(Type-33)。
(2) 开启OSPFv3链路标记继承功能的设备收到携带链路标记的链路状态信息时,设备将提取并继承其中的链路标记值。如果设备提取到了多个链路标记值(假设为tag 1、tag 2、tag n),设备将根据一定的规则选取其中一个(假设为tag 1)进行继承。后续设备计算出来的到达某个目的地的路径包含携带链路标记的链路时,将该路由的路由标记设置为tag 1,借助路由标记可以实现路由筛选。
上述机制通常用于域内SAVA(Source Address Validation Architecture,源地址验证架构)场景。该场景中,如果局域网存在多个网关设备,那么这些设备上的IPv6 SAVA表项需要保持一致,以避免用户的合法报文被错误丢弃。具体机制如下:
(1) 需要发布IPv6 SAVA表项的网关设备上,在靠近用户侧接口上开启接口链路标记功能。
(2) 在接收IPv6 SAVA表项的网关设备上开启链路标记继承功能。当该设备计算出来的OSPFv3路由条目的路由标记与自身为远端路由指定的路由标记相同时,设备将使用OSPFv3路由的目的前缀生成IPv6 SAVA表项,从而实现IPv6 SAVA表项的同步。
关于SAVA功能以及IPv6 SAVA表项的详细介绍,请参见“安全配置指导”中的“SAVA”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的链路标记。
ospfv3 link-tag tag [ instance instance-id ]
缺省情况下,未配置接口的链路标记。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3的链路标记继承功能。
link-tag inherit enable
缺省情况下,OSPFv3链路标记继承功能处于关闭状态。
在使用控制器进行路径计算且对网络性能比较敏感的场景中,需要使用能够反映网络性能的参数作为路径计算的开销值。配置OSPFv3发布网络性能参数功能后,OSPFv3将收集和扩散路由域内链路时延、带宽信息,并通过BGP-LS上报给控制器,由控制器基于时延、带宽计算最优路径。
网络性能参数包括:
· 时延(Delay)——单向链路时延性能指标,具体包括:
¡ Average link delay:单向链路平均时延。
¡ Min/Max link delay:单向链路最小/最大时延。
¡ Average link delay variation:单向链路平均时延容差,即单向链路平均时延变化。
· 带宽(Bandwidth)——单向链路带宽性能指标,具体包括:
¡ Remaining bandwidth:单向链路剩余带宽。
¡ Available bandwidth:单向链路可用带宽。
¡ Utilized bandwidth:单向链路带宽利用率。
开启OSPFv3时延发布功能后,OSPFv3将收集和扩散路由域内链路时延信息,并通过BGP-LS上报给控制器,由控制器基于时延计算路径,从而满足最优路径时延最小的需求。
OSPFv3接口的时延参数可通过如下两种方式获取:
· 静态配置:通过ospfv3 link-delay命令配置接口的时延参数。
· 动态获取:使用test-session bind interface命令将TWAMP-light测试与开启OSPFv3功能的接口绑定,当TWAMP-light测量到有效统计数据时,就会将时延信息发布给绑定的接口。绑定接口获取到TWAMP-light发布的时延信息后会按照一定的周期向OSPFv3上报。关于TWAMP-light的详细介绍,请参见“网络管理和监控配置指导”中的“NQA TWAMP-light”。
动态获取时延参数时,接口上报时延信息的周期较短,例如每隔100ms向OSPFv3上报一次时延信息,OSPFv3需要频繁处理接口上报的时延信息,并通过BGP-LS向控制器频繁上报链路信息,导致设备和网络资源被过多占用。时延发布抑制功能可以用来解决上述问题。
时延发布抑制功能的工作机制为:
(1) 开启时延发布抑制功能后,接口按照时延发布抑制定时器设置的时间间隔向OSPFv3上报时延信息。
(2) OSPFv3按照时延发布抑制定时器设置的时间间隔通过BGP-LS发布接口上报的时延信息。即OSPFv3在定时器超时前不能发布时延信息,以下两种情况除外:
¡ OSPFv3收到接口上报的前后两次最小时延的变化率大于或等于时延变化率抑制阈值。
¡ OSPFv3收到接口上报的前后两次最小时延差值的绝对值大于或等于时延变化绝对值抑制阈值。
如果同时通过两种方式获取到了接口的某个时延参数,则以静态配置的参数为准。
建议配置的时延发布抑制定时器的值要大于或等于NQA时延测量的时间间隔。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的时延参数。
ospfv3 link-delay { average average-delay-value | min min-delay-value max max-delay-value | variation variation-value } * [ instance instance-id ]
缺省情况下,未配置OSPFv3接口时延信息。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3时延发布功能。
metric-delay advertisement enable
缺省情况下,OSPFv3的时延发布功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3的时延发布抑制功能,并设置抑制参数。
metric-delay suppression timer time-value percent-threshold percent-value absolute-threshold absolute-value
缺省情况下,OSPFv3的时延发布抑制功能处于开启状态,时延发布抑制定时器为120秒,时延变化率的抑制阈值为10%,时延变化绝对值的抑制阈值为1000微秒。
将某个抑制参数设置为0,则相应的抑制机制不再生效。各抑制参数均设置为0时,表示关闭时延发布抑制功能。
开启OSPFv3带宽发布功能后,OSPFv3将收集接口上报的链路带宽信息,并通过BGP-LS上报给控制器,由控制器基于带宽计算路径,从而满足最优路径带宽最大的需求。
通常情况下,接口上报带宽信息的周期较短,例如每隔100ms向OSPFv3上报一次带宽信息,OSPFv3需要频繁处理接口上报的带宽信息,并通过BGP-LS向控制器频繁上报链路信息,导致设备和网络资源被过多占用。带宽发布抑制功能可以用来解决上述问题。
带宽发布抑制功能的工作机制为:
(1) 开启带宽发布抑制功能后,接口按照与OSPFv3协商的周期向OSPFv3上报带宽信息。
(2) OSPFv3按照带宽发布抑制定时器设置的时间间隔通过BGP-LS发布接口上报的带宽信息,即OSPFv3在定时器超时前不能发布带宽信息。
建议配置的带宽发布抑制定时器的值要大于或等于以太网接口带宽测量的时间间隔。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3带宽发布功能。
metric-bandwidth advertisement enable
缺省情况下,OSPFv3的带宽发布功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3的带宽发布抑制功能,并设置抑制参数。
metric-bandwidth suppression timer time-value
缺省情况下,OSPFv3的带宽发布抑制功能处于开启状态,抑制定时器为120秒。
将抑制参数设置为0时,表示关闭带宽发布抑制功能。
OSPFv3通常基于所有链路的开销值来计算到达目的地的最优路径,某些情况下,这种方式计算出来的路径无法反应用户的意图。Flex-Algo(Flexible Algorithm,灵活算法)允许用户根据自己的需求自定义路径计算方法,从而灵活地控制路径的选择。
Flex-Algo涉及如下基本概念:
· FAD(Flexible Algorithm Definition,Flex-Algo算法定义):Flex-Algo算法的内容,包括算法类型、优化目标和约束条件的组合。
· 算法类型:计算路径使用的算法。当前仅支持SPF算法。
· 优化目标:使用Flex-Algo算法基于特定度量类型计算到达目的地的最小开销路径。当前仅支持使用OSPFv3的链路开销作为度量类型。
· 约束条件:Flex-Algo算法生成算法拓扑时遵循的规则,即包含或排除具有特定亲和属性的链路。包括Exclude-Any、Include-Any和Include-All。
· Flex-Algo算法标识符:Flex-Algo算法的唯一标识,取值为128~255之间的数字。
· 亲和属性:链路的一种属性,也称为链路颜色。亲和属性和约束条件配合,决定了Flex-Algo算法进行计算时使用的链路。
· 扩展管理组(Extended Administrative Group):OSPFv3使用包含扩展管理组子TLV的LSA来通告FAD的约束条件,包括Flexible Algorithm Exclude Admin Group Sub-TLV、Flexible Algorithm Include-Any Admin Group Sub-TLV和Flexible Algorithm Include-All Admin Group Sub-TLV,分别对应Exclude-Any、Include-Any和Include-All规则,表明FAD要排除或包含的亲和属性。
Flex-Algo算法拓扑指的是Flex-Algo算法计算路径的范围。当Flex-Algo算法生成拓扑时,会判断链路的亲和属性是否与扩展管理组匹配,匹配的链路才会被Flex-Algo算法加入拓扑或从拓扑中排除。具体步骤如下:
(1) 如果节点未配置FAD,表明该节点不参与Flex-Algo算法,那么该节点被Flex-Algo算法删除。
(2) 检查FAD中是否存在Exclude-Any规则。如果存在Exclude-Any规则,只要链路有一个亲和属性和Exclude-Any规则中的亲和属性相同,那么该链路被Flex-Algo算法排除。
(3) 检查FAD中是否存在Include-any规则。如果存在Include-any规则,链路的亲和属性不包含Include-any规则中的任意一个亲和属性,那么该链路被Flex-Algo算法排除。
(4) 检查FAD中是否存在Include-all规则。如果存在Include-all规则,但是链路不具有Include-all规则中的所有亲和属性,那么该链路被Flex-Algo算法排除。
(5) 排除不具备算法所使用的度量的链路。
如图1-1所示,未使用Flex-Algo算法时,所有节点基于OSPFv3链路开销计算到达目的地的最优路径。使用Flex-Algo算法130计算路径时,除了Router F以外,其他节点都配置了Flex-Algo算法130。Flex-Algo算法130的FAD为:
· 使用SPF算法。
· 基于OSPFv3链路开销计算到达目的地的最小开销路径。
· 排除亲和属性为“红色”的链路。
图1-1 未使用Flex-Algo算法的拓扑
生成的Flex-Algo算法130的拓扑如图1-2所示。生成Flex-Algo算法130的拓扑后,各节点根据算法类型和优化目标进行路径计算。
图1-2 Flex-Algo算法130的拓扑
(1) 配置Flex-Algo算法的FAD
b. 配置链路的亲和属性
(2) (可选)提高Flex-Algo的可靠性
¡ 配置Flex-Algo算法的快速重路由备份路径优选方案的优先级
配置OSPFv3 Flex-Algo算法之前,需要配置SRv6功能。关于SRv6的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
本功能用来管理亲和属性名称和亲和属性比特位之间的映射关系。OSPFv3支持256个亲和属性比特位,比特位的编号为0~255。如图1-3所示,将亲和属性比特位的第一位命名为“blue”,第五位命名为“red”。可以将256个亲和属性比特位定义成不同的名称。
配置亲和属性名称和亲和属性比特位的映射关系后,OSPFv3可以方便地通过亲和属性名称来配置链路的亲和属性,或者定义Flex-Algo算法拓扑。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置亲和属性名称和亲和属性比特位之间的映射关系。
affinity-map affinity-name bit-position bit
缺省情况下,未配置亲和属性名称和亲和属性比特位之间的映射关系。
在OSPFv3接口上配置本功能后,该接口去往邻接节点的链路将具有指定亲和属性名称映射的亲和属性。OSPFv3接口所在节点参与Flex-Algo算法计算时,如果Flex-Algo算法定义了约束条件,那么Flex-Algo算法会根据约束条件将具有特定亲和属性的链路加入Flex-Algo算法拓扑,或从Flex-Algo算法拓扑中排除。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口链路的亲和属性。
ospfv3 affinity flex-algo { affinity-name }&<1-32> [ instance instance-id ]
缺省情况下,OSPFv3接口链路不具有任何亲和属性。
节点配置Flex-Algo算法后,该节点将有资格参与Flex-Algo算法的路径计算。需要保证OSPFv3路由域内至少有一个节点使用包含FAD子TLV的LSA来通告FAD,否则即便节点配置了Flex-Algo算法也无法使用Flex-Algo算法计算路径。
为了避免环路,在FAD的通告范围内,使用相同标识符的Flex-Algo算法的节点必须选择一致的FAD,选择机制如下:
(1) 从本区域的FAD通告中(包括本地产生和接收到的通告),选择具有最高优先级的FAD。如果本地未通告FAD,则从接收到的通告中选择具有最高优先级的FAD。
(2) 如果存在多个具有相同最高优先级的FAD,则选择System ID最大的设备通告的FAD。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 创建Flex-Algo算法,并进入Flex-Algo视图。
flex-algo flex-algo-id
(4) 配置Flex-Algo算法的优先级。
priority priority-value
缺省情况下,Flex-Algo算法的优先级为128。
(5) 配置Flex-Algo算法的约束条件。
¡ 配置Flex-Algo算法拓扑排除具有任意一个指定亲和属性的链路。
affinity exclude-any affinity-name&<1-32>
¡ 配置Flex-Algo算法拓扑包含具有任意一个指定亲和属性的链路。
affinity include-any affinity-name&<1-32>
¡ 配置Flex-Algo算法拓扑包含具有所有指定亲和属性的链路。
affinity include-all affinity-name&<1-32>
缺省情况下,参与Flex-Algo算法计算的所有节点的链路都会加入拓扑。
(6) 开启本节点对Flex-Algo算法定义的通告功能。
advertise-definition enable
缺省情况下,本节点对Flex-Algo算法定义的通告功能处于关闭状态。
缺省情况下,OSPFv3使用链路开销作为度量类型来计算到达目的地的最优路径。但是,对于某些流量,这种方式计算出来的路径可能并不总是最好的路径。使用本功能可以根据业务需求选取合适的度量类型。Flex-Algo算法支持如下三种度量类型:
· OSPFv3的链路开销。
· 链路时延。Flex-Algo使用链路的最小时延作为度量值。
· MPLS TE度量值。
OSPFv3使用链路时延或MPLS TE度量值作为度量类型时,需要开启OSPFv3为特性的应用发布链路属性信息的功能,以便节点进行Flex-Algo选路计算。开启该功能后,OSPFv3使用ASLA(Application-Specific Link Attributes,应用特定链路属性)sub-TLV来发布与Flex-Algo算法关联的链路属性。
使用链路时延(delay)作为度量类型时,需要保证参与Flex-Algo算法的接口的时延发布功能处于生效状态。
使用MPLS TE度量值(te-cost)作为度量类型时,需要执行如下操作:
· 在参与Flex-Algo算法的节点上开启MPLS TE能力。
· 在参与Flex-Algo算法的接口上开启MPLS能力。
· 在参与Flex-Algo算法的接口上开启MPLS TE能力。
· 开启OSPFv3区域的MPLS TE能力。
由于ASLA Sub-TLV和End.X SID Sub-TLV类型值的缺省值均为11,为了保证Flex-Algo功能正常运行,必须通过segment-routing ipv6 sid-sub-tlv-type命令修改SRv6 SID-Sub TLV的类型值,并且保证所有SRv6节点使用相同的SRv6 SID-Sub TLV类型值。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3时延发布功能。
metric-delay advertisement enable
缺省情况下,OSPFv3的时延发布功能处于关闭状态。
(4) 开启OSPFv3为特定的应用发布链路属性信息的功能。
advertise application link-attributes te
缺省情况下,OSPFv3为特定的应用发布链路属性信息的功能处于关闭状态。
(5) 进入Flex-Algo视图。
flex-algo flex-algo-id
(6) 配置Flex-Algo算法使用链路时延作为度量类型。
metric-type delay
缺省情况下,Flex-Algo算法使用OSPFv3的链路开销作为度量类型。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3为特定的应用发布链路属性信息的功能。
advertise application link-attributes te
缺省情况下,OSPFv3为特定的应用发布链路属性信息的功能处于关闭状态。
(4) (可选)抑制Intra-Area-TE LSA通告链路属性信息。
suppress intra-te link-attributes
缺省情况下,不会抑制Intra-Area-TE LSA通告链路属性信息。
(5) 进入Flex-Algo视图。
flex-algo flex-algo-id
(6) 配置Flex-Algo算法使用TE度量值作为度量类型。
metric-type te-cost
缺省情况下,Flex-Algo算法使用OSPFv3的链路开销作为度量类型。
Flex-Algo算法的快速重路由功能与OSPFv3 LFA快速重路由功能类似。Flex-Algo算法使用LFA(Loop Free Alternate)基于Flex-Algo算法拓扑计算出一条开销最小且无环的备份链路。
如图1-4所示,所有节点都配置了Flex-Algo算法130。Flex-Algo算法130的FAD为:
· 使用SPF算法。
· 基于OSPFv3链路开销计算到达目的地的最小开销路径。
· 排除亲和属性为“红色”的链路。
图1-4 未使用Flex-Algo算法的拓扑
生成Flex-Algo算法130的拓扑后,Flex-Algo算法使用LFA计算出来的从Router A到Router D的主、备路径如图1-5所示。
图1-5 使用Flex-Algo算法的拓扑
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入Flex-Algo视图。
flex-algo flex-algo-id
(4) 开启Flex-Algo算法的快速重路由功能。
fast-reroute enable
缺省情况下,Flex-Algo算法的快速重路由功能处于开启状态。
如果网络中不存在备份路径,可以使用undo fast-reroute enable命令关闭Flex-Algo算法的快速重路由功能,节省设备资源。
TI-LFA FRR(Topology-Independent Loop-free Alternate Fast Reroute,拓扑无关无环备份快速重路由)是LFA的增强方案。TI-LFA FRR完全继承了Remote LFA计算P空间和Q空间的算法,可以在网络拓扑中不存在PQ节点的情况下,实现任意拓扑的保护。关于P空间和Q空间以及TI-LFA FRR路径计算的详细过程,请参见“Segment Routing配置指导”中的“SRv6”。
Flex-Algo的TI-LFA流量保护分为以下两种类型:
· 链路保护:当需要保护的对象是经过特定链路的流量时,流量保护类型为链路保护。
· 节点保护:当需要保护的对象是经过特定设备的流量时,流量保护类型为节点保护。
节点保护优先级高于链路保护。
Flex-Algo的TI-LFA FRR路径计算和普通的TI-LFA FRR路径计算方式是相同的,唯一差别在于Flex-Algo的TI-LFA FRR基于FAD,在Flex-Algo拓扑中计算备份路径。
如图1-6所示,所有节点未使用Flex-Algo算法。Router B为源节点,Router A为目的节点,链路中间的数字表示开销值。流量路径为Router B->Router A,为避免Router B故障导致流量丢失,TI-LFA计算出来的备份路径为Router B->Router C-> Router E-> Router F-> Router A。
图1-6 未使用Flex-Algo的TI-LFA备份路径
如图1-7所示,所有节点都配置了Flex-Algo算法130。Flex-Algo算法130的FAD为:
· 使用SPF算法。
· 基于OSPFv3链路开销计算到达目的地的最小开销路径。
· 排除亲和属性为“红色”的链路。
此时,TI-LFA计算出来的备份路径为Router B->Router C-> Router D-> Router E-> Router F-> Router A。
图1-7 使用Flex-Algo的TI-LFA备份路径
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入Flex-Algo视图。
flex-algo flex-algo-id
(4) 开启TI-LFA(Topology-Independent Loop-free Alternate,拓扑无关无环备份)快速重路由功能。
fast-reroute ti-lfa enable [ per-prefix ]
缺省情况下,TI-LFA快速重路由功能处于开启状态。
Flex-Algo算法的快速重路由功能(包括LFA FRR和TI-LFA FRR)支持如下两种备份路径优选方案:
· 链路保护:当需要保护的对象是经过特定链路的流量时,流量保护类型为链路保护。快速重路由功能计算备份路径时,会避免经过发生故障的链路。
· 节点保护:当需要保护的对象是经过特定节点的流量时,流量保护类型为节点保护。快速重路由功能计算备份路径时,会避免经过发生故障的节点。
节点保护备份路径的开销值可能会大于链路保护备份路径的开销值。因此,链路保护备份路径优选方案也称为最小开销路径优选方案。缺省情况下,节点保护优先级高于链路保护。通过本配置可以修改两种备份路径优选方案的优先级。如果希望备份路径优选开销值最小的链路,可以使用本功能将最小开销路径优选方案的优先级调高。
优先采用节点保护方式计算备份路径时,如果不能计算出备份路径,则再通过最小开销路径方式计算备份路径。如果仍不能计算备份路径,则备份路径计算失败,主链路故障后无法进行路径切换。
优先采用最小开销路径方式计算备份路径时,如果不能计算出备份路径,则不会再通过节点保护方式计算备份路径,则备份路径计算失败,主链路故障后无法进行路径切换。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入Flex-Algo视图。
flex-algo flex-algo-id
(4) 配置Flex-algo算法的快速重路由备份路径优选方案的优先级。
fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference
缺省情况下,最小开销路径优选方案的优先级为20,节点保护优选方案的优先级为40。
配置OSPFv3 SRv6功能后,OSPFv3会使用包含SRv6 Locator TLV的LSA发布SRv6 Locator信息。SRv6 Locator TLV包含算法字段,通过算法ID标识该Locator使用的算法。缺省情况下,SRv6 Locator TLV中的算法ID为0,表示节点使用SPF算法基于OSPFv3链路开销计算到达SRv6 Locator前缀的最优路径。
Locator段关联Flex-Algo算法后,节点将使用Flex-Algo算法计算到达SRv6 Locator前缀的最优路径。例如,SRv6 Locator关联Flex-Algo算法130,该算法的FAD为:
· 使用SPF算法。
· 基于OSPFv3链路开销计算到达目的地的最小开销路径。
· 排除亲和属性为“蓝色”的链路。
Router A在Flex-Algo算法拓扑中使用SPF计算出来的到达Locator前缀2001:0:8:6::/64的路径如图1-8所示。
图1-8 Flex-Algo算法计算Router A到Router F的路径
Locator段需要关联已经存在的Flex-Algo算法,否则OSPFv3不会发布SRv6 Locator信息。
(1) 进入系统视图。
system-view
(2) 开启SRv6功能,并进入SRv6视图。
segment-routing ipv6
缺省情况下,SRv6功能处于关闭状态。
关于本命令的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
(3) 配置Locator段,并进入SRv6 Locator视图。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
关于本命令的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
(4) 配置Locator段关联Flex-Algo算法。
flex-algo algorithm algo-id
缺省情况下,Locator段未关联Flex-Algo算法。
关于本命令的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口发送hello报文的时间间隔。
ospfv3 timer hello seconds [ instance instance-id ]
缺省情况下,P2P、Broadcast网络类型接口发送Hello报文的时间间隔的值为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔为30秒。
(4) 配置相邻路由器间失效时间。
ospfv3 timer dead seconds [ instance instance-id ]
缺省情况下,P2P、Broadcast网络类型接口的OSPFv3邻居失效时间为40秒;P2MP、NBMA类型接口的OSPFv3邻居失效的时间为120秒。
相邻路由器间失效时间的值不要设置得太小,否则邻居很容易失效。
(5) 配置轮询定时器。
ospfv3 timer poll seconds [ instance instance-id ]
缺省情况下,发送轮询Hello报文的时间间隔为120秒。
(6) 配置相邻路由器重传LSA的时间间隔。
ospfv3 timer retransmit interval [ instance instance-id ]
缺省情况下,LSA的重传时间间隔为5秒。
相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。
LSA在本路由器的链路状态数据库(LSDB)中会随时间老化(每秒钟加1),但在网络的传输过程中却不会,所以有必要在发送之前将LSA的老化时间增加一定的延迟时间。此配置对低速率的网络尤其重要。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的LSA传输延迟时间。
ospfv3 trans-delay seconds [ instance instance-id ]
缺省情况下,接口的LSA传输延迟时间为1秒。
当OSPFv3的LSDB发生改变时,需要重新计算最短路径。如果网络频繁变化,且每次变化都立即计算最短路径,将会占用大量系统资源,并影响路由器的效率。通过调节SPF计算时间间隔,可以抑制由于网络频繁变化带来的影响。
maximum-interval、minimum-interval和incremental-interval的工作机制如下:
(1) 初次进行路由计算的时间间隔为minimum-interval。
(2) 如果在incremental-interval时间内收到了触发路由计算的事件,那么需要等待incremental-interval×2n-2(n为连续触发路由计算的次数,n大于或等于2)后才能进行路由计算。
(3) 当incremental-interval×2n-2达到maximum-interval时,OSPFv3连续三次按照maximum-interval进行路由计算。之后,再次返回步骤(1)。
如果配置了spf-schedule-interval maximum-interval minimum-interval incremental-interval conservative命令,那么OSPFv3初次路由计算以及后续路由计算的时间间隔均为maximum-interval。
在某些特定的组网环境下(例如对路由收敛速度要求较高的环境),可以使用spf-schedule-interval millisecond interval命令来加快路由计算的频率,从而加速路由收敛。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置SPF计算时间间隔。
spf-schedule-interval { maximum-interval [ minimum-interval [ incremental-interval [ conservative ] ] ] | millisecond interval }
缺省情况下,SPF计算的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒。
LSA类型、LSA ID、生成路由器ID均相同的多个LSA为重复LSA,对于在接收LSA的时间间隔内收到的重复LSA,设备将直接丢弃,避免处理大量重复LSA导致设备资源被过多占用的问题。具体机制如下:
· 配置lsa-arrival-interval maximum-interval命令后,设备接收LSA的时间间隔为maximum-interval。对于在接收时间间隔内收到的重复LSA,设备将直接丢弃。
· 配置lsa-arrival-interval maximum-interval minimum-interval命令后,设备首次接收LSA的时间间隔为minimum-interval,后续接收LSA的时间间隔为maximum-interval。对于在接收时间间隔内收到的重复LSA,设备将直接丢弃。
· 配置lsa-arrival-interval maximum-interval minimum-interval incremental-interval命令后,设备首次接收LSA的时间间隔为minimum-interval;第n(n≥2)次接收LSA的时间间隔为minimum-interval+incremental-interval×2n-2,最大不超过maximum-interval。对于在接收时间间隔内收到的重复LSA,设备将直接丢弃。
在网络相对稳定且对路由收敛速度要求较高的组网环境中,可以将接收LSA的时间间隔配置为0,使得拓扑或者路由的变化可以立即被感知到,从而加快路由的收敛。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置OSPFv3接收LSA的时间间隔。
lsa-arrival-interval maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,OSPFv3接收LSA的最大时间间隔为1000毫秒,最小时间间隔为500毫秒,时间间隔惩罚增量为500毫秒。
通过调节LSA重新生成的时间间隔,可以抑制网络频繁变化可能导致的带宽资源和路由器资源被过多占用的问题。
本命令在网络变化不频繁的情况下将LSA重新生成时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可以进行相应惩罚,将等待时间按照配置的惩罚增量延长,增加incremental-interval×2n-2(n为连续触发路由计算的次数),最大不超过maximum-interval。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置LSA重新生成的时间间隔。
lsa-generation-interval maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,最大时间间隔为5秒,最小时间间隔为0毫秒,惩罚增量为0毫秒。
如果路由器路由表里的路由条目很多,在与邻居进行LSDB同步时,可能需要发送大量LSU,有可能会对当前设备和网络带宽带来影响;因此,路由器将LSU报文分为多个批次进行发送,并且对OSPFv3接口每次允许发送的LSU报文的最大个数做出限制。
用户可根据需要配置OSPFv3接口发送LSU报文的时间间隔以及接口一次发送LSU报文的最大个数。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数。
transmit-pacing interval interval count count
缺省情况下,OSPFv3接口发送LSU报文的时间间隔为20毫秒,一次最多发送3个LSU报文。
路由器接口的DR优先级将影响接口在选举DR时所具有的资格,优先级为0的路由器不会被选举为DR或BDR。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的DR优先级。
ospfv3 dr-priority priority [ instance instance-id ]
缺省情况下,接口的DR优先级为1。
在LSA数量不多的情况下,没有必要去检查MTU大小,可以设置忽略DD报文中的MTU检查,从而提高性能。
双方的接口MTU必须相同才能建立邻居关系。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 忽略DD报文中的MTU检查。
ospfv3 mtu-ignore [ instance instance-id ]
缺省情况下,接口在进行DD报文交换时执行MTU检查。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定OSPFv3发送协议报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance instance-name ] *
(3) 配置OSPFv3发送协议报文的DSCP优先级。
dscp dscp-value
缺省情况下,OSPFv3发送协议报文的DSCP优先级值为48。
当运行OSPFv3协议的接口被配置为Silent状态后,该接口的直连路由仍可以由同一路由器的其他接口通过Intra-Area-Prefix-LSA发布,但OSPFv3报文将被阻塞,接口上不会建立OSPFv3邻居关系。这一特性可以增强OSPFv3的组网适应能力。
silent-interface命令和ospfv3 silent命令的作用相同。对于同一个接口,执行其中任意一条命令,或者同时执行这两条命令,均可以禁止接口收发OSPFv3报文。用户可以根据实际使用场景,选择合适的命令禁止接口收发OSPFv3报文。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 禁止接口收发OSPFv3报文。
silent-interface { interface-type interface-number | all }
缺省情况下,允许接口收发OSPFv3报文。
不同的进程可以对同一接口禁止收发OSPFv3报文,但本命令只对本进程已经使能的OSPFv3接口起作用,不对其它进程的接口起作用。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 禁止接口收发OSPFv3报文。
Ospfv3 silent
缺省情况下,允许接口收发OSPFv3报文。
ISPF(Incremental Shortest Path First,增量最短路径优先)是对OSPFv3中最短路径树的增量计算,当网络的拓扑结构发生变化,即影响到最短路径树的结构时,只对受影响的部分节点进行重新计算拓扑结构,只对最短路径树中受影响的部分进行修正,而不需要重建整棵最短路径树。从而减少SPF计算对CPU资源的消耗,加快路由收敛的速度。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3 ISPF功能,即增量SPF计算功能。
ispf enable
缺省情况下,OSPFv3 ISPF功能处于开启状态。
接口使能OSPFv3后,会将接口下的所有网段路由都通过LSA发布,但有时候网段路由是不希望被发布的。通过前缀抑制配置,可以减少LSA中携带不需要的前缀,即不发布某些网段路由,从而提高网络安全性,加快路由收敛。
当使能前缀抑制时,Type-8 LSA中不发布处于抑制的接口前缀信息;对于广播网或者NBMA网络,DR在生成引用Type-2 LSA的Type-9 LSA时,不发布处于抑制的接口前缀信息;对于P2P或P2MP网络,生成引用Type-1 LSA的Type-9 LSA时,不发布处于抑制的接口前缀信息。
如果需要抑制前缀发布,建议整个OSPFv3网络都配置本命令,否则会有互通问题。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置前缀抑制功能。
prefix-suppression
缺省情况下,不抑制OSPFv3进程进行前缀发布。
不能抑制LoopBack接口和处于silent-interface状态接口对应的前缀。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的前缀抑制功能。
ospfv3 prefix-suppression [ disable ] [ instance instance-id ]
缺省情况下,不抑制接口进行前缀发布。
PIC(Prefix Independent Convergence),前缀无关收敛,即收敛时间与前缀数量无关,加快收敛速度。传统的路由计算快速收敛都与前缀数量相关,收敛时间与前缀数量成正比。
PIC和OSPFv3快速重路由功能同时配置时,OSPFv3快速重路由功能生效。
OSPFv3只实现区域间路由以及外部路由的PIC功能。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance instance-name ] *
(3) 使能PIC功能。
pic [ additional-path-always ]
缺省情况下,前缀无关收敛功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能OSPFv3协议中主用链路的BFD(Ctrl方式)检测功能。
ospfv3 primary-path-detect bfd ctrl [ instance instance-id ]
缺省情况下,OSPFv3协议中主用链路的BFD(Ctrl方式)检测功能处于关闭状态。
配置本功能后,可以加快OSPFv3协议的收敛速度。使用control报文双向检测方式时,需要建立OSPFv3邻居的两端设备均支持BFD配置。
(1) 进入系统视图。
system-view
(2) (可选)配置BFD Echo报文源IPv6地址。
bfd echo-source-ipv6 ipv6-address
缺省情况下,未配置BFD Echo报文源IPv6地址。
建议配置本命令,且配置的源IPv6地址不属于该设备任何一个接口所在网段,以避免对端发送大量的ICMPv6重定向报文造成网络拥塞。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能OSPFv3协议中主用链路的BFD(Echo方式)检测功能。
ospfv3 primary-path-detect bfd echo [ instance instance-id ]
缺省情况下,OSPFv3协议中主用链路的BFD(Echo方式)检测功能处于关闭状态。
配置本功能后,可以加快OSPFv3协议的收敛速度。使用echo报文单跳检测方式时,仅需要一端设备支持BFD配置。
Stub路由器用来控制流量,它告知其他OSPFv3路由器不要使用这个Stub路由器来转发数据,但可以拥有一个到Stub路由器的路由。
将当前路由器配置为Stub路由器的功能,可通过R-bit和max-metric两种模式来实现:
· R-bit模式:通过清除该路由器发布Type-1 LSA中options域的R-bit,使其他路由器不通过该路由器来转发数据。
· max-metric模式:该路由器发布的Type-1 LSA的链路度量值将设为最大值65535,这样其邻居计算出这条路由的开销就会很大,如果邻居上有到这个目的地址开销更小的路由,则数据不会通过这个Stub路由器转发。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置当前路由器为Stub路由器。请选择其中一项进行配置。
¡ 配置当前路由器为Stub路由器,且发布的Type-1 LSA中的options域的R-bit将被清除。
stub-router r-bit [ include-stub | on-startup { seconds | wait-for-bgp [ seconds ] } ] *
¡ 配置当前路由器为Stub路由器,且发布的Type-1 LSA的链路度量值将设置为最大值65535。
stub-router max-metric [ external-lsa [ max-metric-value ] | summary-lsa [ max-metric-value ] | include-stub | on-startup { seconds | wait-for-bgp [ seconds ] } ] *
缺省情况下,当前路由器没有被配置为Stub路由器。
Stub路由器与Stub区域无关。
Isolate是一种对网络设备进行软件或硬件维护的方式。Isolate使用网络中的冗余路径,平滑移除需要维护的设备。当完成设备维护后,该设备可以重新投入使用。
当用户需要对网络中某台设备的OSPFv3协议进行升级时,为了不对当前网络中通过该设备发布的OSPFv3路由指导转发的流量产生影响,可以使用OSPFv3 isolate功能把该设备上的OSPFv3协议从当前网络中隔离出来,具体工作机制如下:
(1) 开启OSPFv3 isolate功能后,OSPFv3将链路度量值调大,以便邻居重新进行路径优选。OSPFv3调整链路度量值的机制如下:
¡ 发布的Type-1 LSA中,OSPFv3将链路度量值调整为最大值65535。
¡ 发布的Type-3 LSA和Type-4 LSA中,OSPFv3将链路度量值调整为16711680。
¡ 发布的外部LSA中,OSPFv3将链路度量值调整为16711680。
(2) 邻居收到LSA完成路由计算后,将选择更优的路径转发流量,不再将流量发往OSPFv3 isolate设备。此时,设备的OSPFv3协议完全从当前组网中隔离出来,可以对该设备上的OSPFv3协议进行升级处理。
(3) 对OSPFv3协议的维护结束后,关闭OSPFv3 isolate功能将链路度量值恢复为调整前的值,从而让该设备的OSPFv3协议重新加入网络。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 使用OSPFv3 isolate功能对设备的OSPFv3协议进行维护。
a. 开启OSPFv3协议的隔离功能,将设备的OSPFv3协议从网络中隔离出来。
isolate enable
b. OSPFv3协议维护结束后,关闭OSPFv3协议的隔离功能,让设备的OSPFv3协议重新加入网络。
undo isolate enable
缺省情况下,OSPFv3协议的隔离功能处于关闭状态。
当用户需要对某台设备进行调试或升级等维护操作时,可以使用OSPFv3 shutdown功能暂时关闭设备的OSPFv3进程,并通知邻居设备自己要离开网络。邻居设备将流量切换到备份路径上,不再通过该设备转发流量,从而降低设备维护对网络的影响。具体工作机制如下:
· 开启OSPFv3 shutdown功能的OSPFv3进程通知邻居与自己断开邻居关系。
邻居收到1-way Hello报文后,断开与发送该报文的设备的邻居关系。
· 开启OSPFv3 shutdown功能的OSPFv3进程停止收发OSPFv3协议报文,清除邻居信息、LSDB(包括自己产生的LSP和接收到的LSP)以及OSPFv3路由等信息。
对OSPFv3协议的维护结束后,通过undo shutdown process命令重新开启OSPFv3进程。
与undo ospfv3命令相比,本功能在关闭OSPFv3进程后,不会删除该进程下的配置,降低了用户维护设备的成本。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 使用OSPFv3 isolate功能对设备的OSPFv3协议进行维护。
a. 关闭OSPFv3进程。
shutdown process
b. OSPFv3协议维护结束后,重新开启OSPFv3进程,让设备的OSPFv3进程重新建立邻居关系。
undo shutdown process
缺省情况下,OSPFv3进程处于开启状态。
Router ID用来在一个自治系统中唯一地标识一个OSPFv3节点。每个OSPFv3节点可以管理多个OSPFv3接口。对于同一个OSPFv3节点的不同OSPFv3接口,这些OSPFv3接口的IPv6地址不能属于同一网段。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 全局开启OSPFv3共网段功能。
virtual-system enable
缺省情况下,OSPFv3共网段功能处于关闭状态。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在接口上开启OSPFv3共网段功能。
ospfv3 virtual-system router-id router-id
缺省情况下,OSPFv3接口上的共网段功能处于关闭状态。
GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时保证转发业务不中断的机制。GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
支持OSPFv3的GR Restarter能力的设备主备倒换后,为了实现设备转发业务的不中断,它必须完成下列两项任务:
· 重启过程GR Restarter转发表项保持稳定;
· 重启流程结束后重建所有邻居关系,重新获取完整的网络拓扑信息。
设备(GR Restarter)主备倒换后,首先向邻居发送Grace LSA通告邻居本设备进入GR;邻居收到Grace-LSA后,如果支持GR Helper能力则进入Helper模式(此时该邻居称为GR Helper)。GR Restarter重新建立邻居,GR Helper帮助GR Restarter进行LSDB的同步。同步完成之后,GR流程结束,进入正常的OSPFv3流程。这样就能实现设备在主备倒换时转发业务正常进行。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 使能GR能力。
graceful-restart enable [ global | planned-only ] *
缺省情况下,OSPFv3协议的GR Restarter能力处于关闭状态。
(4) (可选)配置GR重启时间间隔。
graceful-restart interval interval
缺省情况下,OSPFv3协议的GR重启间隔时间为120秒。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 使能GR Helper能力。
graceful-restart helper enable [ planned-only ]
缺省情况下,OSPFv3的GR Helper能力处于开启状态。
(4) 使能LSA严格检查能力。
graceful-restart helper strict-lsa-checking
缺省情况下,OSPFv3协议的GR Helper严格LSA检查能力处于关闭状态。
设备进行主备倒换或者进行如下操作均可以以GR方式重启OSPFv3进程。
请在用户视图下执行本命令,以GR方式重启OSPFv3进程。
reset ospfv3 [ process-id ] process graceful-restart
BFD(Bidirectional Forwarding Detection,双向转发检测)能够为OSPFv3邻居之间的链路提供快速检测功能。当邻居之间的链路出现故障时,加快OSPFv3协议的收敛速度。关于BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
OSPFv3使用BFD来进行快速故障检测时,可以通过Hello报文动态发现邻居,将邻居地址通知BFD就开始建立会话。BFD会话建立前处于down状态,此时BFD控制报文以不小于1秒的时间间隔周期发送以减少控制报文流量,直到会话建立以后才会以协商的时间间隔发送以实现快速检测。
进行配置BFD之前,需要配置OSPFv3功能。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置路由器的ID。
router-id router-id
(4) 退出OSPFv3视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 在接口上使能OSPFv3。
ospfv3 process-id area area-id [ instance instance-id ]
(7) 在指定接口上使能OSPFv3 BFD。
ospfv3 bfd enable [ instance instance-id ]
缺省情况下,运行OSPFv3的接口的BFD功能处于关闭状态。
使用BFD检测OSPFv3邻居之间的链路,当BFD检测到故障但故障又很快恢复时,会导致OSPFv3邻居关系震荡,在OSPFv3重新建立邻居的过程中,已从故障恢复正常的链路不可用于OSPFv3报文转发。使用本功能可以解决上述问题。
配置本功能后,在使用BFD检测OSPFv3邻居之间的链路的场景中,邻居关系不再受BFD会话的影响,而是通过改变接口的开销值来响应链路故障及故障恢复,具体机制如下:
· 当OSPFv3接口感知到BFD会话Down时,OSPFv3将该接口的开销值调大,以便OSPFv3选择更优的路径转发流量。
· 当OSPFv3接口感知到BFD会话Up时,OSPFv3将该接口的开销值恢复为调整前的值。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3根据BFD会话状态调整接口开销值。
ospfv3 bfd adjust-cost { cost-offset | max } [ instance instance-id ]
缺省情况下,OSPFv3不会根据BFD会话状态调整接口开销值。
本功能用于解决OSPFv3根据BFD会话状态调整开销值场景中,BFD会话频繁震荡导致的设备资源被过多占用、报文被丢弃等问题。产生这些问题的原因如下:
· OSPFv3接口的开销值频繁变化,触发设备不断进行路由计算,导致设备资源被过多占用。
· 当BFD会话由Down变为Up后,OSPFv3立即将接口开销值恢复为该接口的原始开销值,如果链路短时间内再次由可用变为不可用,路由收敛前,通过包含该链路的路径转发的报文会被丢弃。
配置本功能后,当BFD会话状态变化时,OSPFv3不会立刻调整接口开销值。具体工作机制如下:
(1) BFD会话由Up变为Down时,触发OSPFv3启动检测BFD会话状态变化定时器,OSPFv3记录BFD会话Down次数为1。在定时器超时前,只有BFD会话由Up变为Down的次数累计达到设置的阈值时,OSPFv3才会根据ospfv3 bfd adjust-cost命令设置的值调整接口开销值。否则,OSPFv3不会调整接口开销值。
(2) OSPFv3根据ospfv3 bfd adjust-cost命令设置的值调整接口开销值后,当BFD会话由Down变为Up时,OSPFv3启动延迟恢复接口开销值定时器:
¡ 如果定时器超时前,BFD会话一直处于Up状态,那么定时器超时后,OSPFv3将接口开销值恢复为该接口的原始开销值。
¡ 如果定时器超时前,BFD会话由Up变为Down,那么OSPFv3删除定时器,并且不会将接口开销值恢复为该接口的原始开销值。
只有配置OSPFv3根据BFD会话状态调整接口开销值的功能后,本功能才会生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置BFD会话震荡时抑制OSPFv3根据BFD会话状态调整接口开销值。
ospfv3 bfd adjust-cost suppress-flapping { detect-interval detect-interval | resume-interval resume-interval | threshold threshold } *
缺省情况下,BFD会话震荡时,不会抑制OSPFv3根据BFD会话状态调整接口开销值。
在部署了备份链路的OSPFv3网络中,当主用链路发生故障时,OSPFv3会对路由进行重新计算,在路由收敛完成后,流量可以通过备份链路进行传输。在路由收敛期间,数据流量将会被中断。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以根据需要配置OSPFv3快速重路由功能。
图1-9 OSPFv3快速重路由功能示意图
如图1-9所示,通过在Router B上使能快速重路由功能,OSPFv3将为路由计算或指定备份下一跳,当Router B检测到主用下一跳地址无法到达时,会直接使用备份下一跳地址来指导报文的转发,从而大大缩短了流量路径切换的时间。在快速切换流量传输路径的同时,OSPFv3会根据变化后的网络拓扑重新计算路由,在路由收敛完毕后,使用新计算出来的最优路由来指导报文转发。
在为快速重路由功能指定备份下一跳地址时,可以采用以下两种方式:
· 通过LFA(Loop Free Alternate)算法选取备份下一跳地址。
· 在路由策略中指定备份下一跳,为符合过滤条件的路由指定备份下一跳地址。
OSPFv3快速重路由功能(通过LFA算法选取备份下一跳信息)使能后,不能配置vlink-peer命令。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
ospfv3 fast-reroute lfa-backup exclude
缺省情况下,接口参与LFA计算,有资格被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(6) 配置OSPFv3快速重路由功能(通过LFA算法选取备份下一跳信息)。
fast-reroute lfa [ abr-only | ecmp-shared ]
缺省情况下,OSPFv3快速重路由功能处于关闭状态。
abr-only表示只有到ABR设备的路由才能作为备份下一跳。
网络管理员可以通过apply ipv6 fast-reroute backup-interface命令在路由策略中指定备份下一跳,为符合过滤条件的路由指定备份下一跳,关于apply ipv6 fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
ospfv3 fast-reroute lfa-backup exclude
缺省情况下,接口参与LFA计算,有资格被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(6) 配置OSPFv3快速重路由功能(通过路由策略指定备份下一跳)。
fast-reroute route-policy route-policy-name
缺省情况下,OSPFv3快速重路由功能处于关闭状态。
OSPFv3 FRR使用一定的计算规则计算备份路径。Tiebreaker使用优先级值来对计算规则进行排序,优先级的值越大,对应的计算规则的优先级越高。OSPFv3 FRR备份路径优选方案通过调整计算规则的优先级,能够影响OSPFv3 FRR计算出来的备份路径。不同的备份路径可为流量提供节点保护或链路保护,或者同时提供节点保护和链路保护。
OSPFv3 FRR支持如下类型的计算规则,不同的计算规则生成不同的用于计算备份路径的拓扑。
· 节点保护(node-protecting):OSPFv3 FRR排除主下一跳节点之后计算备份路径。
· 最低开销(lowest-cost):OSPFv3 FRR排除直连主链路之后计算备份路径。
当同一OSPFv3进程下存在多个FRR备份路径优选方案时,会优先选择优先级较高的优选方案计算备份路径。如果该方案不能计算出备份路径,则再从其他优选方案中选择优先级较高的优选方案计算备份路径。具体工作机制如下:
· 当node-protecting > lowest-cost时,如果使用node-protecting规则不能计算出备份路径,则再使用lowest-cost规则计算备份路径。如果仍不能计算备份路径,则主链路故障后无法保证可靠性。
· 当lowest-cost > node-protecting时,如果使用lowest-cost规则不能计算出备份路径,则不再使用node-protecting规则计算备份路径,主链路故障后无法保证可靠性。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置快速重路由备份路径优选方案的优先级。
fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference
缺省情况下,最小开销路径优选方案的优先级是20,节点保护优选方案的优先级是40。
OSPFv3协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以更快速的发现主用链路的故障,从而加快OSPFv3协议的收敛速度。
使用control报文双向检测方式时,需要建立OSPF邻居的两端设备均支持BFD配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能OSPFv3协议中主用链路的BFD检测功能。
ospfv3 primary-path-detect bfd ctrl [ instance instance-id ]
缺省情况下,OSPFv3协议中主用链路的BFD检测功能(Ctrl方式)处于关闭状态。
OSPFv3协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以更快速的发现主用链路的故障,从而加快OSPFv3协议的收敛速度。使用echo报文单跳检测方式时,仅需要一端设备支持BFD配置。
(1) 进入系统视图。
system-view
(2) (可选)配置BFD Echo报文源IPv6地址。
bfd echo-source-ipv6 ipv6-address
缺省情况下,未配置BFD Echo报文源IPv6地址。
建议配置本命令,且配置的源IPv6地址不属于该设备任何一个接口所在网段,以避免对端发送大量的ICMPv6重定向报文造成网络拥塞。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能OSPFv3协议中主用链路的BFD检测功能。
ospfv3 primary-path-detect bfd echo [ instance instance-id ]
缺省情况下,OSPFv3协议中主用链路的BFD检测功能(Echo方式)处于关闭状态。
从安全性角度来考虑,为了避免路由信息外泄或者OSPFv3路由器受到恶意攻击,OSPFv3提供基于keychain的报文验证功能。
配置OSPFv3验证后,OSPFv3路由器建立邻居关系时,在发送的报文中会携带验证字段,在接收报文时会进行验证,只有通过验证的报文才能接收,否则将不会接收报文,不能正常建立邻居。
接口视图下配置的验证模式,其优先级高于OSPFv3区域视图下配置的验证模式。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置OSPFv3区域的验证模式。请选择其中一项进行配置。
¡ 配置OSPFv3区域使用HMAC-SHA-256/HMAC-SM3验证模式。
authentication-mode { hmac-sha-256 | hmac-sm3 } key-id { cipher | plain } string
¡ 配置OSPFv3区域使用keychain验证模式。
authentication-mode keychain keychain-name
关于keychain功能的介绍,请参见“安全配置指导”中的“keychain”。
缺省情况下,未配置区域验证模式。
一个区域中所有路由器的验证模式和验证密钥必须一致。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置OSPFv3接口的验证模式。请选择其中一项进行配置。
¡ 配置OSPFv3接口使用HMAC-SHA-256/HMAC-SM3验证模式。
ospfv3 authentication-mode { hmac-sha-256 | hmac-sm3 } key-id { cipher | plain } string [ instance instance-id ]
¡ 配置OSPFv3接口使用keychain验证模式。
ospfv3 authentication-mode keychain keychain-name [ instance instance-id ]
关于keychain功能的介绍,请参见“安全配置指导”中的“keychain”。
缺省情况下,接口不对OSPFv3报文进行验证。
不同设备上,属于同一网段的所有接口需要配置相同的验证模式和验证密钥。
从安全性角度来考虑,为了避免路由信息外泄或者对设备进行恶意攻击,OSPFv3提供基于IPsec的报文验证功能。IPsec安全框架的具体情况请参见“安全配置指导”中的“IPsec”。
设备在发送的报文中会携带配置好的IPsec安全框架的SPI(Security Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全框架匹配:只有能够匹配的报文才能接收;否则将不会接收报文,从而不能正常建立邻居和学习路由。
OSPFv3支持在区域、接口、虚连接和伪连接下配置IPsec安全框架。
· 当需要保护区域内的所有报文时,可以在区域下配置IPsec安全框架,此时区域内所有路由器都需要配置相同的IPsec安全框架。
· 当需要保护区域下某些接口的报文时,可以在接口下配置IPsec安全框架,此时直连邻居接口需要配置相同的IPsec安全框架。
· 当需要保护虚连接的报文时,可以配置虚连接应用IPsec安全框架,此时虚连接上的两个邻居需要配置相同的IPsec安全框架。
· 当需要保护伪连接的报文时,可以配置伪连接应用IPsec安全框架,此时伪连接上的两个邻居需要配置相同的IPsec安全框架。伪连接的具体情况请参见“MPLS配置指导”中的“MPLS L3VPN”。
当接口和接口所在区域均配置了IPsec安全框架时,接口下的生效;当虚连接和区域0均配置了IPsec安全框架时,虚连接的生效;当伪连接和伪连接所在区域均配置了IPsec安全框架时,伪连接下的生效。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置OSPFv3区域应用IPsec安全框架。
enable ipsec-profile profile-name
缺省情况下,OSPFv3区域没有应用IPsec安全框架。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置使能了OSPFv3的接口上应用IPsec安全框架。
ospfv3 ipsec-profile profile-name[ instance instance-id ]
缺省情况下,OSPFv3接口没有应用IPsec安全框架。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置OSPFv3虚连接应用IPsec安全框架。
vlink-peer router-id [ dead seconds | hello seconds | instance instance-id | ipsec-profile profile-name | keychain keychain-name | retransmit seconds | trans-delay seconds ] *
缺省情况下,OSPFv3虚连接没有应用IPsec安全框架。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 进入OSPFv3区域视图。
area area-id
(4) 配置OSPFv3伪连接应用IPsec安全框架。
sham-link source-ipv6-address destination-ipv6-address [ cost cost-value | dead dead-interval | hello hello-interval | instance instance-id | ipsec-profile profile-name | keychain keychain-name | retransmit retrans-interval | trans-delay delay ] *
缺省情况下,OSPFv3伪连接没有应用IPsec安全框架。
打开邻居状态变化的输出开关后,OSPFv3邻居状态变化时会生成日志信息发送到设备的信息中心,通过设置信息中心的参数,最终决定日志信息的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。)
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置邻居状态变化的输出开关。
log-peer-change
缺省情况下,邻居状态变化的输出开关处于打开状态。
OSPFv3的日志信息包括路由计算、邻居和LSA老化的日志信息。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 配置保存OSPFv3的日志信息的最大个数。
event-log { lsa-flush | peer | spf } size count
缺省情况下,路由计算、邻居和LSA老化的日志信息个数均为10个。
配置OSPFv3进程绑定MIB功能后,可以通过网管软件对指定的OSPFv3进程进行管理。
开启OSPFv3模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。(有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。)
通过调整OSPFv3在指定时间间隔内允许输出的告警信息条数,可以避免网络出现大量告警信息时对资源的消耗。
OSPFv3使用MIB(Management Information Base,管理信息库)为NMS(Network Management System,网络管理系统)提供对OSPFv3实例的管理,但标准OSPFv3 MIB中定义的MIB为单实例管理对象,无法对多个OSPFv3实例进行管理。因此,参考RFC 4750中对OSPF多实例的管理方法,为管理OSPFv3的SNMP实体定义一个上下文名称,以此来区分不同的OSPFv3实例,实现对多个OSPFv3实例进行管理。由于上下文名称只是SNMPv3独有的概念,对于SNMPv1/v2c,会将团体名映射为上下文名称以对不同协议进行区分。
(1) 进入系统视图。
system-view
(2) 配置OSPFv3进程绑定MIB。
ospfv3 mib-binding process-id
缺省情况下,MIB绑定在进程号最小的OSPFv3进程上。
(3) 开启OSPFv3的告警功能。
snmp-agent trap enable ospfv3 [ grhelper-status-change | grrestarter-status-change | if-bad-pkt | if-cfg-error | if-state-change | last-auth-key-expiry | neighbor-state-change | nssatranslator-status-change | virtgrhelper-status-change | virtif-bad-pkt | virtif-cfg-error | virtif-state-change | virtneighbor-state-change ] *
缺省情况下,OSPFv3的告警功能处于开启状态。
(4) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(5) 配置管理OSPFv3的SNMP实体所使用的上下文名称。
snmp context-name context-name
缺省情况下,未配置管理OSPFv3的SNMP实体所使用的上下文名称。
(6) (可选)配置OSPFv3在指定时间间隔内允许输出的告警信息条数。
snmp trap rate-limit interval trap-interval count trap-number
缺省情况下,OSPFv3模块在10秒内允许输出7条告警信息。
在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPFv3的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除OSPFv3的统计信息、重启OSPFv3进程或者重新向OSPFv3引入外部路由。
表1-1 OSPFv3显示和维护
操作 |
命令 |
显示OSPFv3的ABR聚合信息 |
display ospfv3 [ process-id ] [ area area-id ] abr-summary [ ipv6-address prefix-length ] [ verbose ] |
显示OSPFv3区域的最短路径树信息 |
display ospfv3 [ process-id ] [ area area-id ] flex-algo flex-algo-id spf-tree [ verbose ] |
显示本节点接收和发布的Flex-Algo算法的定义信息 |
display ospfv3 [ process-id ] [ area area-id ] global-flex-algo [ algorithm-id flex-algo-id ] |
显示OSPFv3邻居信息 |
display ospfv3 [ process-id ] [ area area-id ] peer [ [ interface-type interface-number ] [ verbose ] | peer-router-id | statistics ] |
显示OSPFv3请求列表的信息 |
display ospfv3 [ process-id ] [ area area-id ] request-queue [ interface-type interface-number ] [ neighbor-id ] |
显示OSPFv3重传列表的信息 |
display ospfv3 [ process-id ] [ area area-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ] |
显示OSPFv3区域的最短路径树信息 |
display ospfv3 [ process-id ] [ area area-id ] spf-tree [ verbose ] |
显示OSPFv3的进程信息 |
display ospfv3 [ process-id ] [ verbose ] |
显示到OSPFv3的区域边界路由器和自治系统边界路由器的路由信息 |
display ospfv3 [ process-id ] abr-asbr |
显示OSPFv3的ASBR聚合信息 |
display ospfv3 [ process-id ] asbr-summary [ ipv6-address prefix-length ] [ verbose ] |
显示OSPFv3路由计算的日志信息 |
display ospfv3 [ process-id ] event-log { lsa-flush | peer | spf } |
显示Flex-Algo算法计算出来的路由信息 |
display ospfv3 [ process-id ] flex-algo flex-algo-id routing [ ipv6-address prefix-length ] |
显示OSPFv3进程的GR状态信息 |
display ospfv3 [ process-id ] graceful-restart [ verbose ] |
显示OSPFv3的接口信息 |
display ospfv3 [ process-id ] interface [ interface-type interface-number | verbose ] |
显示本节点对Flex-Algo算法的定义信息 |
display ospfv3 [ process-id ] local-flex-algo [ algorithm-id flex-algo-id ] |
显示OSPFv3的链路状态数据库信息 |
display ospfv3 [ process-id ] lsdb [ { external | grace | inter-prefix | inter-router | intra-prefix | intra-te | link | network | nssa | router | unknown [ type ] } [ link-state-id ] [ originate-router router-id | self-originate ] | statistics | total | verbose ] |
显示OSPFv3的路由下一跳信息 |
display ospfv3 [ process-id ] nexthop |
显示OSPFv3进程的NSR状态信息 |
display ospfv3 [ process-id ] non-stop-routing |
显示OSPFv3路由表信息 |
display ospfv3 [ process-id ] routing [ ipv6-address prefix-length ] |
显示OSPFv3的报文统计信息 |
display ospfv3 [ process-id ] statistics [ error ] |
显示OSPFv3的虚连接信息 |
display ospfv3 [ process-id ] vlink |
显示OSPFv3的全局统计信息 |
display ospfv3 global-statistics [ public | vpn-instance vpn-instance-name ] |
重启OSPFv3进程 |
reset ospfv3 [ process-id ] process [ graceful-restart ] |
重新向OSPFv3引入外部路由 |
reset ospfv3 [ process-id ] redistribution |
清除OSPFv3的统计信息 |
reset ospfv3 [ process-id ] statistics |
清除OSPFv3的日志信息 |
reset ospfv3 [ process-id ] event-log [ lsa-flush | peer | spf ] |
· 所有的路由器都运行OSPFv3,整个自治系统划分为3个区域。其中Router B和Router C作为ABR来转发区域之间的路由。
· 要求将Area 2配置为Stub区域,减少通告到此区域内的LSA数量,但不影响路由的可达性。
图1-10 OSPFv3 Stub区域配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Router A,启动OSPFv3,并配置其Router ID为1.1.1.1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 1
[RouterA-Ten-GigabitEthernet3/1/1] quit
[RouterA] interface ten-gigabitethernet 3/1/2
[RouterA-Ten-GigabitEthernet3/1/2] ospfv3 1 area 1
[RouterA-Ten-GigabitEthernet3/1/2] quit
# 配置Router B,启动OSPFv3,并配置其Router ID为2.2.2.2。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterB-Ten-GigabitEthernet3/1/1] quit
[RouterB] interface ten-gigabitethernet 3/1/2
[RouterB-Ten-GigabitEthernet3/1/2] ospfv3 1 area 1
[RouterB-Ten-GigabitEthernet3/1/2] quit
# 配置Router C,启动OSPFv3,并配置其Router ID为3.3.3.3。
<RouterC> system-view
[RouterC] ospfv3 1
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterC-Ten-GigabitEthernet3/1/1] quit
[RouterC] interface ten-gigabitethernet 3/1/2
[RouterC-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterC-Ten-GigabitEthernet3/1/2] quit
# 配置Router D,启动OSPFv3,并配置其Router ID为4.4.4.4。
<RouterD> system-view
[RouterD] ospfv3 1
[RouterD-ospfv3-1] router-id 4.4.4.4
[RouterD-ospfv3-1] quit
[RouterD] interface ten-gigabitethernet 3/1/2
[RouterD-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterD-Ten-GigabitEthernet3/1/2] quit
# 查看Router B的OSPFv3邻居状态。
[RouterB] display ospfv3 peer
OSPFv3 Process 1 with Router ID 2.2.2.2
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
3.3.3.3 1 Full/BDR 00:00:40 0 XGE3/1/1
Area: 0.0.0.1
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
1.1.1.1 1 Full/DR 00:00:40 0 XGE3/1/2
# 查看Router C的OSPFv3邻居状态。
[RouterC] display ospfv3 peer
OSPFv3 Process 1 with Router ID 3.3.3.3
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
2.2.2.2 1 Full/DR 00:00:40 0 XGE3/1/1
Area: 0.0.0.2
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
4.4.4.4 1 Full/BDR 00:00:40 0 XGE3/1/2
# 查看Router D的OSPFv3路由表信息。
[RouterD] display ospfv3 routing
OSPFv3 Process 1 with Router ID 4.4.4.4
-------------------------------------------------------------------------
I - Intra area route, E1 - Type 1 external route, N1 - Type 1 NSSA route
IA - Inter area route, E2 - Type 2 external route, N2 - Type 2 NSSA route
* - Selected route
*Destination: 2001::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000004 Cost : 2
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:1::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000004 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:2::/64
Type : I Area : 0.0.0.2
AdvRouter : 4.4.4.4 Preference : 10
NibID : 0x23000002 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : ::
BkNexthop : N/A
Status : Direct
*Destination: 2001:3::1/128
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000004 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
Total: 4
Intra area: 1 Inter area: 3 ASE: 0 NSSA: 0
(3) 配置Stub区域
# 配置Router D的Stub区域。
[RouterD] ospfv3
[RouterD-ospfv3-1] area 2
[RouterD-ospfv3-1-area-0.0.0.2] stub
[RouterD-ospfv3-1-area-0.0.0.2] quit
[RouterD-ospfv3-1] quit
# 配置Router C的Stub区域,设置发送到Stub区域的缺省路由的开销为10。
[RouterC] ospfv3
[RouterC-ospfv3-1] area 2
[RouterC-ospfv3-1-area-0.0.0.2] stub
[RouterC-ospfv3-1-area-0.0.0.2] default-cost 10
# 查看Router D的OSPFv3路由表信息,可以看到路由表中多了一条缺省路由,它的开销值为直连路由的开销和所配置的开销值之和。
[RouterD] display ospfv3 routing
OSPFv3 Process 1 with Router ID 4.4.4.4
-------------------------------------------------------------------------
I - Intra area route, E1 - Type 1 external route, N1 - Type 1 NSSA route
IA - Inter area route, E2 - Type 2 external route, N2 - Type 2 NSSA route
* - Selected route
*Destination: ::/0
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 11
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 2
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:1::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:2::/64
Type : I Area : 0.0.0.2
AdvRouter : 4.4.4.4 Preference : 10
NibID : 0x23000001 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : ::
BkNexthop : N/A
Status : Direct
*Destination: 2001:3::1/128
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
Total: 5
Intra area: 1 Inter area: 4 ASE: 0 NSSA: 0
(4) 进一步减少Stub区域路由表规模,将Area 2配置为Totally Stub区域
# 配置Router C,设置Area 2为Totally Stub区域。
[RouterC-ospfv3-1-area-0.0.0.2] stub no-summary
# 查看Router D的OSPFv3路由表,可以发现路由表项数目减少了,其他非直连路由都被抑制,只有缺省路由被保留。
[RouterD] display ospfv3 routing
OSPFv3 Process 1 with Router ID 4.4.4.4
-------------------------------------------------------------------------
I - Intra area route, E1 - Type 1 external route, N1 - Type 1 NSSA route
IA - Inter area route, E2 - Type 2 external route, N2 - Type 2 NSSA route
* - Selected route
*Destination: ::/0
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 11
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:2::/64
Type : I Area : 0.0.0.2
AdvRouter : 4.4.4.4 Preference : 10
NibID : 0x23000001 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : ::
BkNexthop : N/A
Status : Direct
Total: 2
Intra area: 1 Inter area: 1 ASE: 0 NSSA: 0
· 所有的路由器都运行OSPFv3,整个自治系统划分为3个区域。其中Router B和Router C作为ABR来转发区域之间的路由。
· 要求将Area 1配置为NSSA区域,同时将Router A配置为ASBR引入外部路由(静态路由),且路由信息可正确的在AS内传播。
图1-11 OSPFv3 NSSA区域配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能(同前例“1.12.2 OSPFv3 Stub区域配置举例”)
(3) 配置Area 1为NSSA区域
# 配置Router A的NSSA区域。
<RouterA> system-view
[RouterA] ospfv3
[RouterA-ospfv3-1] area 1
[RouterA-ospfv3-1-area-0.0.0.1] nssa
[RouterA-ospfv3-1-area-0.0.0.1] quit
[RouterA-ospfv3-1] quit
# 配置Router B的NSSA区域。
<RouterB> system-view
[RouterB] ospfv3
[RouterB-ospfv3-1] area 1
[RouterB-ospfv3-1-area-0.0.0.1] nssa
[RouterB-ospfv3-1-area-0.0.0.1] quit
[RouterB-ospfv3-1] quit
# 查看Router D的OSPFv3路由表信息。
[RouterD] display ospfv3 1 routing
OSPFv3 Process 1 with Router ID 4.4.4.4
-------------------------------------------------------------------------
I - Intra area route, E1 - Type 1 external route, N1 - Type 1 NSSA route
IA - Inter area route, E2 - Type 2 external route, N2 - Type 2 NSSA route
* - Selected route
*Destination: 2001::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 2
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:1::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:2::/64
Type : I Area : 0.0.0.2
AdvRouter : 4.4.4.4 Preference : 10
NibID : 0x23000001 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : ::
BkNexthop : N/A
Status : Direct
*Destination: 2001:3::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000003 Cost : 4
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
Total: 4
Intra area: 1 Inter area: 3 ASE: 0 NSSA: 0
(4) 配置Router A引入静态路由
# 配置Router A上的静态路由,并配置OSPFv3引入静态路由。
[RouterA] ipv6 route-static 1234:: 64 null 0
[RouterA] ospfv3 1
[RouterA-ospfv3-1] import-route static
[RouterA-ospfv3-1] quit
# 查看Router D的OSPFv3路由表,可以看到NSSA区域引入的一条AS外部的路由。
[RouterD] display ospfv3 1 routing
OSPFv3 Process 1 with Router ID 4.4.4.4
-------------------------------------------------------------------------
I - Intra area route, E1 - Type 1 external route, N1 - Type 1 NSSA route
IA - Inter area route, E2 - Type 2 external route, N2 - Type 2 NSSA route
* - Selected route
*Destination: 2001::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000002 Cost : 2
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:1::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000002 Cost : 3
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 2001:2::/64
Type : I Area : 0.0.0.2
AdvRouter : 4.4.4.4 Preference : 10
NibID : 0x23000004 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : ::
BkNexthop : N/A
Status : Direct
*Destination: 2001:3::/64
Type : IA Area : 0.0.0.2
AdvRouter : 3.3.3.3 Preference : 10
NibID : 0x23000002 Cost : 4
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Rely
*Destination: 1234::/64
Type : E2 Tag : 1
AdvRouter : 2.2.2.2 Preference : 150
NibID : 0x23000001 Cost : 1
Interface : XGE3/1/2 BkInterface: N/A
Nexthop : FE80::48C0:26FF:FEDA:305
BkNexthop : N/A
Status : Normal
Total: 5
Intra area: 1 Inter area: 3 ASE: 1 NSSA: 0
· Router A的优先级配置为100,它是网络上的最高优先级,所以Router A被选为DR;
· Router C的优先级配置为2,它是优先级次高的,被选为BDR;
· Router B的优先级配置为0,这意味着它将无法成为DR;
· Router D没有配置优先级,取缺省值1。
图1-12 OSPFv3的DR选择配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Router A,启动OSPFv3,并配置其Router ID为1.1.1.1。
<RouterA> system-view
[RouterA] ospfv3
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 配置Router B,启动OSPFv3,并配置其Router ID为2.2.2.2。
<RouterB> system-view
[RouterB] ospfv3
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterB-Ten-GigabitEthernet3/1/1] quit
# 配置Router C,启动OSPFv3,并配置其Router ID为3.3.3.3。
<RouterC> system-view
[RouterC] ospfv3
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterC-Ten-GigabitEthernet3/1/1] quit
# 配置Router D,启动OSPFv3,并配置其Router ID为4.4.4.4。
<RouterD> system-view
[RouterD] ospfv3
[RouterD-ospfv3-1] router-id 4.4.4.4
[RouterD-ospfv3-1] quit
[RouterD] interface ten-gigabitethernet 3/1/1
[RouterD-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterD-Ten-GigabitEthernet3/1/1] quit
# 查看Router A的邻居信息,可以看到DR优先级(缺省为1)以及邻居状态。此时优先级相等,Router ID大者被选为DR,可以看到Router D为DR,Router C为BDR。
OSPFv3 Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
2.2.2.2 1 2-Way/DROther 00:00:36 0 XGE3/1/1
3.3.3.3 1 Full/BDR 00:00:35 0 XGE3/1/1
4.4.4.4 1 Full/DR 00:00:33 0 XGE3/1/1
# 查看Router D的邻居信息,可以看到Router D和其他邻居之间的邻居状态都为Full。
[RouterD] display ospfv3 peer
OSPFv3 Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
1.1.1.1 1 Full/DROther 00:00:30 0 XGE3/1/1
2.2.2.2 1 Full/DROther 00:00:37 0 XGE3/1/1
3.3.3.3 1 Full/BDR 00:00:31 0 XGE3/1/1
(3) 配置接口的DR优先级
# 配置Router A的接口Ten-GigabitEthernet3/1/1的DR优先级为100。
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 dr-priority 100
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 配置Router B的接口Ten-GigabitEthernet3/1/1的DR优先级为0。
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 dr-priority 0
[RouterB-Ten-GigabitEthernet3/1/1] quit
# 配置Router C的接口Ten-GigabitEthernet3/1/1的DR优先级为2。
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 dr-priority 2
[RouterC-Ten-GigabitEthernet3/1/1] quit
# 显示Router A的邻居信息,可以看到DR优先级已经更新,但DR/BDR并未改变。
[RouterA] display ospfv3 peer
OSPFv3 Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
2.2.2.2 0 2-Way/DROther 00:00:36 0 XGE3/1/1
3.3.3.3 2 Full/BDR 00:00:35 0 XGE3/1/1
4.4.4.4 1 Full/DR 00:00:33 0 XGE3/1/1
# 显示Router D的邻居信息,可以看到Router D仍然为DR。
[RouterD] display ospfv3 peer
OSPFv3 Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
1.1.1.1 100 Full/DROther 00:00:30 0 XGE3/1/1
2.2.2.2 0 Full/DROther 00:00:37 0 XGE3/1/1
3.3.3.3 2 Full/BDR 00:00:31 0 XGE3/1/1
(4) 重新进行DR/BDR选择
# 将所有接口进行一次shutdown和undo shutdown,使OSPFv3进行DR/BDR的重新选举(略)。
# 查看Router A的邻居信息,可以看到Router C为BDR。
[RouterA] display ospfv3 peer
OSPFv3 Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
2.2.2.2 0 Full/DROther 00:00:36 0 XGE3/1/1
3.3.3.3 2 Full/BDR 00:00:35 0 XGE3/1/1
4.4.4.4 1 Full/DROther 00:00:33 0 XGE3/1/1
# 查看Router D的邻居信息,可以看到Router A为DR。
[RouterD] display ospfv3 peer
OSPFv3 Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
-------------------------------------------------------------------------
Router ID Pri State Dead-Time InstID Interface
1.1.1.1 100 Full/DR 00:00:30 0 XGE3/1/1
2.2.2.2 0 2-Way/DROther 00:00:37 0 XGE3/1/1
3.3.3.3 2 Full/BDR 00:00:31 0 XGE3/1/1
· Router A、Router B和Router C位于Area 2内;
· Router B上运行两个OSPFv3进程:OSPFv3 1和OSPFv3 2。Router B通过OSPFv3 1和Router A交换路由信息,通过OSPFv3 2和Router C交换路由信息;
· 在Router B上配置OSPFv3进程2引入外部路由,引入直连路由和OSPFv3进程1的路由,并将引入的外部路由的开销值设置为3,使得Router C能够学习到达1::0/64和2::0/64的路由,但Router A不能学习到达3::0/64和4::0/64的路由。
图1-13 OSPFv3引入外部路由配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3
# 在Router A上启动OSPFv3进程1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/2
[RouterA-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterA-Ten-GigabitEthernet3/1/2] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 2
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 在Router B上启动两个OSPFv3进程,进程号分别为1和2。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/2
[RouterB-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterB-Ten-GigabitEthernet3/1/2] quit
[RouterB] ospfv3 2
[RouterB-ospfv3-2] router-id 3.3.3.3
[RouterB-ospfv3-2] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 2 area 2
[RouterB-Ten-GigabitEthernet3/1/1] quit
# 在Router C上启动OSPFv3进程2。
<RouterC> system-view
[RouterC] ospfv3 2
[RouterC-ospfv3-2] router-id 4.4.4.4
[RouterC-ospfv3-2] quit
[RouterC] interface ten-gigabitethernet 3/1/2
[RouterC-Ten-GigabitEthernet3/1/2] ospfv3 2 area 2
[RouterC-Ten-GigabitEthernet3/1/2] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 2 area 2
[RouterC-Ten-GigabitEthernet3/1/1] quit
# 查看Router C的路由表信息。
[RouterC] display ipv6 routing-table
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 3::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/1 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
(3) 配置OSPFv3引入外部路由
# 在Router B上配置OSPFv3进程2引入外部路由,引入直连路由和OSPFv3进程1的路由,并将引入的外部路由的开销值设备为3。
[RouterB] ospfv3 2
[RouterB-ospfv3-2] import-route ospfv3 1 cost 3
[RouterB-ospfv3-2] import-route direct cost 3
[RouterB-ospfv3-2] quit
# 查看路由引入后Router C的路由表信息。
[RouterC] display ipv6 routing-table
Destinations : 8 Routes : 8
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 3
Destination: 2::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 3
Destination: 3::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/1 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
· Router A、Router B和Router C位于Area 2内;
· Router B上运行两个OSPFv3进程:1和2。Router B通过进程1和Router A交换路由信息,通过进程2和Router C交换路由信息;
· 在Router A的接口Ten-GigabitEthernet3/1/1上配置地址2:1:1::1/64、2:1:2::1/64、2:1:3::1/64,并在Router B上配置OSPFv3进程2引入直连路由和OSPFv3进程1的路由,使得Router C能够学习到达2::/64、2:1:1::/64、2:1:2::/64、2:1:3::/64的路由;
· 为了减小Router C的路由表规模,在Router B上配置ASBR聚合路由,只发布聚合后的路由2::/16。
图1-14 OSPFv3发布ASBR聚合路由配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3
# 在Router A上启动OSPFv3进程1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/2
[RouterA-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterA-Ten-GigabitEthernet3/1/2] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ipv6 address 2:1:1::1 64
[RouterA-Ten-GigabitEthernet3/1/1] ipv6 address 2:1:2::1 64
[RouterA-Ten-GigabitEthernet3/1/1] ipv6 address 2:1:3::1 64
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 2
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 在Router B上启动两个OSPFv3进程,进程号分别为1和2。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/2
[RouterB-Ten-GigabitEthernet3/1/2] ospfv3 1 area 2
[RouterB-Ten-GigabitEthernet3/1/2] quit
[RouterB] ospfv3 2
[RouterB-ospfv3-2] router-id 3.3.3.3
[RouterB-ospfv3-2] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 2 area 2
[RouterB-Ten-GigabitEthernet3/1/1] quit
# 在Router C上启动OSPFv3进程2。
<RouterC> system-view
[RouterC] ospfv3 2
[RouterC-ospfv3-2] router-id 4.4.4.4
[RouterC-ospfv3-2] quit
[RouterC] interface ten-gigabitethernet 3/1/2
[RouterC-Ten-GigabitEthernet3/1/2] ospfv3 2 area 2
[RouterC-Ten-GigabitEthernet3/1/2] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 2 area 2
[RouterC-Ten-GigabitEthernet3/1/1] quit
(3) 配置OSPFv3引入外部路由
# 在Router B上配置OSPFv3进程2引入直连路由和OSPFv3进程1的路由。
[RouterB] ospfv3 2
[RouterB-ospfv3-2] import-route ospfv3 1
[RouterB-ospfv3-2] import-route direct
[RouterB-ospfv3-2] quit
# 查看路由引入后Router C的路由表信息。
[RouterC] display ipv6 routing-table
Destinations : 11 Routes : 11
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 2::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 2:1:1::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 2:1:2::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 2:1:3::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 3::/64 Protocol : Direct
NextHop : 3::2 Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : 4::1 Preference: 0
Interface : XGE3/1/1 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
(4) 配置OSPFv3发布ASBR聚合路由
# 在Router B上配置OSPFv3进程2发布ASBR聚合路由2::/16。
[RouterB] ospfv3 2
[RouterB-ospfv3-2] asbr-summary 2:: 16
[RouterB-ospfv3-2] quit
# 查看路由聚合后Router C的路由表信息。
[RouterC] display ipv6 routing-table
Destinations : 8 Routes : 8
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 2::/16 Protocol : O_ASE2
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : XGE3/1/2 Cost : 1
Destination: 3::/64 Protocol : Direct
NextHop : 3::2 Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : 4::1 Preference: 0
Interface : XGE3/1/1 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
· Router A、Router B和Router C既属于同一自治系统,也属于同一OSPFv3区域,通过OSPFv3协议实现网络互连,并提供GR机制;
· Router A作为GR Restarter,Router B和Router C作为GR Helper并且通过GR机制与Router A保持同步。
图1-15 OSPFv3 GR配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Router A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] graceful-restart enable
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 1
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 配置Router B,启动OSPFv3,并设置其Router ID为2.2.2.2。缺省情况下,Router B的GR helper能力处于开启状态。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 1 area 1
[RouterB-Ten-GigabitEthernet3/1/1] quit
# 在Router C,启动OSPFv3,并设置其Router ID为3.3.3.3。缺省情况下,Router C的GR helper能力处于开启状态。
<RouterC> system-view
[RouterC] ospfv3 1
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 1 area 1
[RouterC-Ten-GigabitEthernet3/1/1] quit
运行稳定后,在Router A上主备倒换进入OSPFv3协议的GR进程。
· Router A、Router B和Router C上运行OSPFv3,网络层相互可达。
· 当Router A和Router B通过L2 Switch通信的链路出现故障时BFD能够快速感知通告OSPFv3协议,并且切换到Router C进行通信。
图1-16 OSPFv3与BFD联动配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Router A |
XGE3/1/1 |
2001::1/64 |
Router B |
XGE3/1/1 |
2001::2/64 |
|
XGE3/1/2 |
2001:2::1/64 |
|
XGE3/1/2 |
2001:3::2/64 |
Router C |
XGE3/1/1 |
2001:2::2/64 |
|
|
|
|
XGE3/1/2 |
2001:3::1/64 |
|
|
|
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Router A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterA-Ten-GigabitEthernet3/1/1] quit
[RouterA] interface ten-gigabitethernet 3/1/2
[RouterA-Ten-GigabitEthernet3/1/2] ospfv3 1 area 0
[RouterA-Ten-GigabitEthernet3/1/2] quit
# 配置Router B,启动OSPFv3,并设置其Router ID为2.2.2.2。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterB-Ten-GigabitEthernet3/1/1] quit
[RouterB] interface ten-gigabitethernet 3/1/2
[RouterB-Ten-GigabitEthernet3/1/2] ospfv3 1 area 0
[RouterB-Ten-GigabitEthernet3/1/2] quit
# 配置Router C,启动OSPFv3,并设置其Router ID为3.3.3.3。
<RouterC> system-view
[RouterC] ospfv3 1
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterC-Ten-GigabitEthernet3/1/1] quit
[RouterC] interface ten-gigabitethernet 3/1/2
[RouterC-Ten-GigabitEthernet3/1/2] ospfv3 1 area 0
[RouterC-Ten-GigabitEthernet3/1/2] quit
(3) 配置BFD功能
# 在Router A上使能BFD检测功能,并配置BFD参数。
[RouterA] bfd session init-mode active
[RouterA] interface ten-gigabitethernet 3/1/1
[RouterA-Ten-GigabitEthernet3/1/1] ospfv3 bfd enable
[RouterA-Ten-GigabitEthernet3/1/1] bfd min-transmit-interval 500
[RouterA-Ten-GigabitEthernet3/1/1] bfd min-receive-interval 500
[RouterA-Ten-GigabitEthernet3/1/1] bfd detect-multiplier 7
[RouterA-Ten-GigabitEthernet3/1/1] quit
# 在Router B上使能BFD检测功能,并配置BFD参数。
[RouterB] bfd session init-mode active
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 bfd enable
[RouterB-Ten-GigabitEthernet3/1/1] bfd min-transmit-interval 500
[RouterB-Ten-GigabitEthernet3/1/1] bfd min-receive-interval 500
[RouterB-Ten-GigabitEthernet3/1/1] bfd detect-multiplier 6
[RouterB-Ten-GigabitEthernet3/1/1] quit
下面以Router A为例,Router B和Router A类似,不再赘述。
# 显示Router A的BFD信息。
[RouterA] display bfd session
Total sessions: 1 Up sessions: 1 Init mode: Active
IPv6 session working in control packet mode:
Local discr: 1441 Remote discr: 1450
Source IP: FE80::20F:FF:FE00:1202(Router A接口Ten-GigabitEthernet3/1/1的链路本地地址)
Destination IP: FE80::20F:FF:FE00:1200(Router B接口Ten-GigabitEthernet3/1/1的链路本地地址)
Session state: Up Interface: XGE3/1/1
Hold time: 2319ms
# 在Router A上查看2001:4::0/64的路由信息,可以看出Router A和Router B是通过L2 Switch进行通信的。
[RouterA] display ipv6 routing-table 2001:4::0 64
Summary Count : 1
Destination: 2001:4::/64 Protocol : O_INTRA
NextHop : FE80::20F:FF:FE00:1200 Preference: 10
Interface : XGE3/1/1 Cost : 1
当Router A和Router B通过L2 Switch通信的链路出现故障时:
# 在Router A上查看2001:4::0/64的路由信息,可以看出Router A和Router B已经切换到Router C进行通信。
[RouterA] display ipv6 routing-table 2001:4::0 64
Summary Count : 1
Destination: 2001:4::/64 Protocol : O_INTRA
NextHop : FE80::BAAF:67FF:FE27:DCD0 Preference: 10
Interface : XGE3/1/2 Cost : 2
如图1-17所示,Router A、Router B和Router C属于同一OSPFv3区域,通过OSPFv3协议实现网络互连。要求当Router A和Router B之间的链路出现故障时,业务可以快速切换到链路B上。
图1-17 OSPFv3快速重路由配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Router A |
XGE3/1/1 |
1::1/64 |
Router B |
XGE3/1/1 |
3::1/64 |
|
XGE3/1/2 |
2::1/64 |
|
XGE3/1/2 |
2::2/64 |
|
Loop0 |
10::1/128 |
|
Loop0 |
20::1/128 |
Router C |
XGE3/1/1 |
1::2/64 |
|
|
|
|
XGE3/1/2 |
3::2/64 |
|
|
|
(1) 配置各路由器接口的IPv6地址和OSPFv3协议
请按照上面组网图配置各接口的IPv6地址,具体配置过程略。
配置各路由器之间采用OSPFv3协议进行互连,确保Router A、Router B和Router C之间能够在网络层互通,并且各路由器之间能够借助OSPFv3协议实现动态路由更新。
具体配置过程略。
(2) 配置OSPFv3快速重路由
OSPFv3支持快速重路由的配置方法有两种,可以任选一种。
方法一:使能Router A和Router B的OSPFv3快速重路由功能(通过LFA算法选取备份下一跳信息)
# 配置Router A。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] fast-reroute lfa
[RouterA-ospfv3-1] quit
# 配置Router B。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] fast-reroute lfa
[RouterB-ospfv3-1] quit
方法二:使能Router A和Router B的OSPFv3快速重路由功能(通过路由策略指定备份下一跳)
# 配置Router A。
<RouterA> system-view
[RouterA] ipv6 prefix-list abc index 10 permit 20::1 128
[RouterA] route-policy frr permit node 10
[RouterA-route-policy-frr-10] if-match ipv6 address prefix-list abc
[RouterA-route-policy-frr-10] apply ipv6 fast-reroute backup-interface ten-gigabitethernet 3/1/1 backup-nexthop 1::2
[RouterA-route-policy-frr-10] quit
[RouterA] ospfv3 1
[RouterA-ospfv3-1] fast-reroute route-policy frr
[RouterA-ospfv3-1] quit
# 配置Router B。
<RouterB> system-view
[RouterB] ipv6 prefix-list abc index 10 permit 10::1 128
[RouterB] route-policy frr permit node 10
[RouterB-route-policy-frr-10] if-match ipv6 address prefix-list abc
[RouterB-route-policy-frr-10] apply ipv6 fast-reroute backup-interface ten-gigabitethernet 3/1/1 backup-nexthop 3::2
[RouterB-route-policy-frr-10] quit
[RouterB] ospfv3 1
[RouterB-ospfv3-1] fast-reroute route-policy frr
[RouterB-ospfv3-1] quit
# 在Router A上查看20::1/128的路由信息,可以看到备份下一跳信息。
[RouterA] display ipv6 routing-table 20::1 128 verbose
Summary count : 1
Destination: 20::1/128
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 00h03m45s
FlushedAge: 15h28m49s
Cost: 6 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x23000005 LastAs: 0
AttrID: 0xffffffff
BkAttrID: 0xffffffff Neighbor: ::
Flags: 0x10041 OrigNextHop: FE80::7685:45FF:FEAD:102
Label: NULL RealNextHop: FE80::7685:45FF:FEAD:102
BkLabel: NULL BkNextHop: FE80::34CD:9FF:FE2F:D02
SRLabel: NULL Interface: Ten-GigabitEthernet3/1/2
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: Ten-GigabitEthernet3/1/2
BkTunnel ID: Invalid BkIPInterface: Ten-GigabitEthernet3/1/1
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: 0x0 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: Critical
MemberPort: N/A
# 在Router B上查看10::1/128网段路由,可以看到备份下一跳信息。
[RouterB] display ipv6 routing-table 10::1 128 verbose
Summary count : 1
Destination: 10::1/128
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 00h03m10s
FlushedAge: 15h28m49s
Cost: 1 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x23000006 LastAs: 0
AttrID: 0xffffffff
BkAttrID: 0xffffffff Neighbor: ::
Flags: 0x10041 OrigNextHop: FE80::34CC:E8FF:FE5B:C02
Label: NULL RealNextHop: FE80::34CC:E8FF:FE5B:C02
BkLabel: NULL BkNextHop: FE80::7685:45FF:FEAD:102
SRLabel: NULL Interface: Ten-GigabitEthernet3/1/2
BkSRLabel: NULL BkInterface: N/A
Tunnel ID: Invalid IPInterface: Ten-GigabitEthernet3/1/2
BkTunnel ID: Invalid BkIPInterface: Ten-GigabitEthernet3/1/1
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: 0x0 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: Critical
MemberPort: N/A
· 所有的路由器都运行OSPFv3,整个自治系统划分为2个区域。
· 要求配置IPsec安全框架对Router A、Router B和Router C之间的OSPFv3报文进行有效性检查和验证。
图1-18 OSPFv3 IPsec安全框架配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Router A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<RouterA> system-view
[RouterA] ospfv3 1
[RouterA-ospfv3-1] router-id 1.1.1.1
[RouterA-ospfv3-1] quit
[RouterA] interface ten-gigabitethernet 3/1/2
[RouterA-Ten-GigabitEthernet3/1/2] ospfv3 1 area 1
[RouterA-Ten-GigabitEthernet3/1/2] quit
# 配置Router B,启动OSPFv3,并设置其Router ID为2.2.2.2。
<RouterB> system-view
[RouterB] ospfv3 1
[RouterB-ospfv3-1] router-id 2.2.2.2
[RouterB-ospfv3-1] quit
[RouterB] interface ten-gigabitethernet 3/1/1
[RouterB-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterB-Ten-GigabitEthernet3/1/1] quit
[RouterB] interface ten-gigabitethernet 3/1/2
[RouterB-Ten-GigabitEthernet3/1/2] ospfv3 1 area 1
[RouterB-Ten-GigabitEthernet3/1/2] quit
# 配置Router C,启动OSPFv3,并设置其Router ID为3.3.3.3。
<RouterC> system-view
[RouterC] ospfv3 1
[RouterC-ospfv3-1] router-id 3.3.3.3
[RouterC-ospfv3-1] quit
[RouterC] interface ten-gigabitethernet 3/1/1
[RouterC-Ten-GigabitEthernet3/1/1] ospfv3 1 area 0
[RouterC-Ten-GigabitEthernet3/1/1] quit
(3) 配置OSPFv3 IPsec安全框架
# 配置Router A。创建名为trans的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile001,协商方式为manual,配置SPI和密钥。
[RouterA] ipsec transform-set trans
[RouterA-ipsec-transform-set-trans] encapsulation-mode transport
[RouterA-ipsec-transform-set-trans] protocol esp
[RouterA-ipsec-transform-set-trans] esp encryption-algorithm aes-cbc-128
[RouterA-ipsec-transform-set-trans] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-trans] quit
[RouterA] ipsec profile profile001 manual
[RouterA-ipsec-profile-manual-profile001] transform-set trans
[RouterA-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[RouterA-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[RouterA-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[RouterA-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[RouterA-ipsec-profile-manual-profile001] quit
# 配置Router B。创建名为trans的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile001,协商方式为manual,配置SPI和密钥。创建一条安全框架profile002,协商方式为manual,配置SPI和密钥。
[RouterB] ipsec transform-set trans
[RouterB-ipsec-transform-set-trans] encapsulation-mode transport
[RouterB-ipsec-transform-set-trans] protocol esp
[RouterB-ipsec-transform-set-trans] esp encryption-algorithm aes-cbc-128
[RouterB-ipsec-transform-set-trans] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-trans] quit
[RouterB] ipsec profile profile001 manual
[RouterB-ipsec-profile-manual-profile001] transform-set trans
[RouterB-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[RouterB-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[RouterB-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[RouterB-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[RouterB-ipsec-profile-manual-profile001] quit
[RouterB] ipsec profile profile002 manual
[RouterB-ipsec-profile-manual-profile002] transform-set trans
[RouterB-ipsec-profile-manual-profile002] sa spi outbound esp 256
[RouterB-ipsec-profile-manual-profile002] sa spi inbound esp 256
[RouterB-ipsec-profile-manual-profile002] sa string-key outbound esp simple byebye
[RouterB-ipsec-profile-manual-profile002] sa string-key inbound esp simple byebye
[RouterB-ipsec-profile-manual-profile002] quit
# 配置Router C。创建名为trans的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile002,协商方式为manual,配置SPI和密钥。
[RouterC] ipsec transform-set trans
[RouterC-ipsec-transform-set-trans] encapsulation-mode transport
[RouterC-ipsec-transform-set-trans] protocol esp
[RouterC-ipsec-transform-set-trans] esp encryption-algorithm aes-cbc-128
[RouterC-ipsec-transform-set-trans] esp authentication-algorithm sha1
[RouterC-ipsec-transform-set-trans] quit
[RouterC] ipsec profile profile002 manual
[RouterC-ipsec-profile-manual-profile002] transform-set trans
[RouterC-ipsec-profile-manual-profile002] sa spi outbound esp 256
[RouterC-ipsec-profile-manual-profile002] sa spi inbound esp 256
[RouterC-ipsec-profile-manual-profile002] sa string-key outbound esp simple byebye
[RouterC-ipsec-profile-manual-profile002] sa string-key inbound esp simple byebye
[RouterC-ipsec-profile-manual-profile002] quit
(4) 配置OSPFv3区域上应用IPsec安全框架
# 配置Router A。
[RouterA] ospfv3 1
[RouterA-ospfv3-1] area 1
[RouterA-ospfv3-1-area-0.0.0.1] enable ipsec-profile profile001
[RouterA-ospfv3-1-area-0.0.0.1] quit
[RouterA-ospfv3-1] quit
# 配置Router B。
[RouterB] ospfv3 1
[RouterB-ospfv3-1] area 0
[RouterB-ospfv3-1-area-0.0.0.0] enable ipsec-profile profile002
[RouterB-ospfv3-1-area-0.0.0.0] quit
[RouterB-ospfv3-1] area 1
[RouterB-ospfv3-1-area-0.0.0.1] enable ipsec-profile profile001
[RouterB-ospfv3-1-area-0.0.0.1] quit
[RouterB-ospfv3-1] quit
# 配置Router C。
[RouterC] ospfv3 1
[RouterC-ospfv3-1] area 0
[RouterC-ospfv3-1-area-0.0.0.0] enable ipsec-profile profile002
[RouterC-ospfv3-1-area-0.0.0.0] quit
[RouterC-ospfv3-1] quit
以上配置完成后,Router A、Router B和Router C之间的OSPFv3报文将被加密传输。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!