09-OSPFv3配置
本章节下载: 09-OSPFv3配置 (482.86 KB)
在以下路由协议的介绍中所指的路由器及路由器图标,代表了一般意义下的路由器以及运行了路由协议的三层交换机。
OSPFv3是OSPF(Open Shortest Path First,开放式最短路径优先)版本3的简称,主要提供对IPv6的支持,遵循的标准为RFC 2740(OSPF for IPv6)。
OSPFv3和OSPFv2在很多方面是相同的:
l Router ID,Area ID仍然是32位的。
l 相同类型的报文:Hello报文,DD(Database Description,数据库描述)报文,LSR(Link State Request,链路状态请求)报文,LSU(Link State Update,链路状态更新)报文和LSAck(Link State Acknowledgment,链路状态确认)报文。
l 相同的邻居发现机制和邻接形成机制。
l 相同的LSA扩散机制和老化机制。
OSPFv3和OSPFv2的不同主要有:
l OSPFv3是基于链路(Link)运行,OSPFv2是基于网段(Network)运行。
l OSPFv3在同一条链路上可以运行多个实例。
l OSPFv3是通过Router ID来标识邻接的邻居。OSPFv2则是通过IP地址来标识邻接的邻居。
和OSPFv2一样,OSPFv3也有五种报文类型,分别是Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
这五种报文有相同的报文头,但是它和OSPFv2的报文头有一些区别,其长度只有16字节,且没有认证字段。另外就是多了一个Instance ID字段,用来支持在同一条链路上运行多个实例。
OSPFv3的报文头如图1-1所示。
图1-1 OSPFv3报文头示意图
l Version #:OSPF的版本号。对于OSPFv3来说,其值为3。
l Type:OSPF报文的类型。数值从1到5,分别对应Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
l Packet Length:OSPF报文的总长度,包括报文头在内,单位为字节。
l Instance ID:同一条链路上的实例标识。
l 0:保留位,必须为0。
LSA(Link State Advertisement,链路状态通告)是OSPFv3协议计算和维护路由信息的主要来源。在RFC 2740中定义了七类LSA,描述如下:
l Router-LSA:由每个路由器生成,描述本路由器的链路状态和开销,只在路由器所处区域内传播。
l Network-LSA:由广播网络和NBMA(Non-Broadcast Multi-Access)网络的DR(Designated Router,指定路由器)生成,描述本网段接口的链路状态,只在DR所处区域内传播。
l Inter-Area-Prefix-LSA:和OSPFv2中的Type-3 LSA类似,该LSA由ABR(Area Border Router,区域边界路由器)生成,在与该LSA相关的区域内传播。每一条Inter-Area-Prefix-LSA描述了一条到达本自治系统内其他区域的IPv6地址前缀(IPv6 Address Prefix)的路由。
l Inter-Area-Router-LSA:和OSPFv2中的Type-4 LSA类似,该LSA由ABR生成,在与该LSA相关的区域内传播。每一条Inter-Area-Router-LSA描述了一条到达本自治系统内的ASBR(Autonomous System Boundary Router,自治系统边界路由器)的路由。
l AS-external-LSA:由ASBR生成,描述到达其它AS(Autonomous System,自治系统)的路由,传播到整个AS(Stub区域除外)。缺省路由也可以用AS-external-LSA来描述。
l Link-LSA:路由器为每一条链路生成一个Link-LSA,在本地链路范围内传播。每一个Link-LSA描述了该链路上所连接的IPv6地址前缀及路由器的Link-local地址。
l Intra-Area-Prefix-LSA:每个Intra-Area-Prefix-LSA包含路由器上的IPv6前缀信息,Stub区域信息或穿越区域(Transit Area)的网段信息,该LSA在区域内传播。由于Router-LSA和Network-LSA不再包含地址信息,导致了Intra-Area-Prefix-LSA的引入。
在RFC 5187中定义了第十一类LSA,Grace-LSA。Grace-LSA由Restarter在重启时候生成的,在本地链路范围内传播。这个LSA描述了重启设备的重启原因和重启时间间隔,目的是通知邻居本设备将进入GR(Graceful Restart,平滑重启)。
OSPFv3的定时器包括:
l OSPFv3的报文定时器
l LSA的延迟时间
l SPF定时器
l GR定时器
Hello报文周期性地被发送至邻居路由器,用于发现与维持邻居关系、选举DR与BDR。需要注意的是,网络邻居间的Hello时间间隔必须一致,并且Hello时钟的值与路由收敛速度、网络负荷大小成反比。
在一定时间间隔内,如果路由器未收到对方的Hello报文,则认为对端路由器失效,这个时间间隔被称为相邻路由器间的失效时间。
当一台路由器向它的邻接发送一条LSA后,需要等到对方的确认报文。若在设定的重传间隔时间内没有收到对方的确认报文,就会向邻接重传这条LSA。重传间隔的值必须大于一个报文在两台路由器之间传送一个来回的时间。
由于LSA在本路由器的LSDB(Link State Database,链路状态数据库)中会随时间老化(每秒加1),但在网络的传输过程中却不会随时间老化,所以有必要在发送之前就将LSA的老化时间增加上传送延迟时间。对于低速网络,该项配置尤为重要。
当OSPFv3的LSDB发生改变时,需要重新计算最短路径,如果每次改变都立即计算最短路径,将占用大量资源,并会影响路由器的效率,通过调节SPF(Shortest Path First,最短路径优先)的计算延迟时间和间隔时间,可以避免在网络频繁变化时过多的占用资源。
在进行GR时,可能出现重建邻居失败的情况,这将导致设备长期处于GR过程中。GR定时器即GR的最长时间,当它超时时则退出GR,从而避免设备长期处于GR过程中。
在目前的实现中,支持以下OSPFv3特性:
l RFC 2740规定的基本特性
l OSPFv3 Stub区域
l OSPFv3多进程(Multi-Process)
l OSPFv3 GR
l OSPFv3与BFD联动
与OSPFv3相关的协议规范有:
l RFC 2740:OSPF for IPv6
l RFC 2328:OSPF Version 2
l RFC 5187:OSPFv3 Graceful Restart
表1-1 OSPFv3配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能OSPFv3功能 |
必选 |
||
配置OSPFv3的区域属性 |
配置OSPFv3的Stub区域 |
可选 |
|
配置OSPFv3的虚连接 |
可选 |
||
配置OSPFv3网络类型 |
配置OSPFv3接口的网络类型 |
可选 |
|
配置NBMA或者P2MP网络的邻居 |
可选 |
||
配置OSPFv3的路由信息控制 |
配置OSPFv3的路由聚合 |
可选 |
|
配置OSPFv3对通过接收到的LSA计算出来的路由信息进行过滤 |
可选 |
||
配置OSPFv3接口的开销值 |
可选 |
||
配置OSPFv3最大等价路由条数 |
可选 |
||
配置OSPFv3协议的优先级 |
可选 |
||
配置OSPFv3引入外部路由 |
可选 |
||
调整和优化OSPFv3网络 |
配置OSPFv3定时器 |
可选 |
|
配置接口的DR优先级 |
可选 |
||
忽略DD报文中的MTU检查 |
可选 |
||
禁止接口收发OSPFv3报文 |
可选 |
||
配置邻接状态变化输出开关 |
可选 |
||
配置OSPFv3 GR |
配置GR Restarter |
可选 |
|
使能GR Helper |
可选 |
||
配置OSPFv3与BFD联动 |
可选 |
||
配置OSPFv3 IPsec安全策略 |
可选 |
在使能OSPFv3功能之前,需完成以下任务:
l 各相邻节点网络层可达
l 使能IPv6报文转发功能
要在路由器上使能OSPFv3功能,必须先创建OSPFv3进程、指定该进程的Router ID以及在接口上使能OSPFv3功能。
Router ID用来在一个自治系统中唯一的标识一台路由器。在OSPFv3中,用户必须手工配置一个Router ID,而且必须保证自治系统中任意两台路由器的Router ID都不相同。因此,为了保证OSPFv3运行的稳定性,在进行网络规划时,应确定路由器ID的划分并手工配置。需要注意的是,如果在同一台路由器上运行了多个OSPFv3进程,必须为不同的进程指定不同的Router ID。
在一台路由器上可以创建多个OSPFv3进程,OSPFv3进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
表1-2 使能OSPFv3功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建OSPFv3进程,进入OSPFv3视图 |
ospfv3 [ process-id ] [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,系统不运行OSPFv3进程 |
配置路由器的ID |
router-id router-id |
必选 |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必选 缺省情况下,接口上没有使能OSPFv3 |
有关多实例的介绍请参见“MPLS配置指导”中的“IPv6 MPLS L3VPN”。
OSPFv3支持Stub区域和虚连接的配置,其原理及应用环境与OSPFv2相同。
OSPFv3划分区域后,可以减少网络中LSA的数量,OSPFv3的扩展性也得以增强。对于位于AS边缘的一些非骨干区域,为了更多的缩减其路由表规模和降低LSA的数量,可以将它们配置为Stub区域。
在划分区域之后,非骨干区域之间的OSPFv3路由更新是通过骨干区域来交换完成的。对此,OSPFv3要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过配置OSPFv3虚连接予以解决。
在配置OSPFv3的区域属性之前,需完成以下任务:
l 使能IPv6报文转发功能
l 配置OSPFv3基本功能
表1-3 配置OSPFv3的Stub区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
进入OSPFv3区域视图 |
area area-id |
- |
配置一个区域为Stub区域 |
stub [ no-summary ] |
必选 缺省情况下,没有区域被配置为Stub区域 |
配置发送到Stub区域的缺省路由的开销值 |
default-cost value |
可选 缺省情况下,发送到Stub区域的缺省路由的开销值为1 |
l OSPFv3的区域不能直接删除,只有区域视图下的所有配置都删除后,且该区域中相关接口的状态都为down,此区域才会自动删除。
l 对于位于Stub区域中的所有路由器都必须配置stub命令,参数no-summary只能在ABR上配置。
l 如果ABR使用了stub命令中的参数no-summary,则此ABR只向区域内发布一条描述缺省路由的Inter-Area-Prefix-LSA。这种既没有AS-external-LSA,也没有Inter-Area-Prefix-LSA、Inter-Area-Router-LSA的Stub区域,又称为Totally Stub区域。
对于没有和骨干区域直接相连的非骨干区域,或者不连续的骨干区域,可以使用该配置建立逻辑上的连通性。
表1-4 配置OSPFv3的虚连接
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
进入OSPFv3区域视图 |
area area-id |
- |
创建并配置虚连接 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | instance instance-id ] * |
必选 |
l 虚连接的两端必须是ABR,而且必须在两端同时配置才可生效。
l 虚连接不能在给使能了GR能力的进程下的区域进行配置。
OSPFv3根据链路层协议类型将网络分为四种不同的类型。
缺省情况下,当接口封装的链路层协议不同时,OSPFv3接口网络类型的缺省值也不同,例如:
l 当接口封装的链路层协议是PPP时,OSPFv3接口网络类型的缺省值为点对点。
l 当接口封装的链路层协议是Ethernet时,OSPFv3接口网络类型的缺省值为广播类型。
用户可以根据需要配置OSPFv3接口的网络类型,例如:
l 由于NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达。但在很多情况下,这个要求无法满足,这时就需要通过命令强制改变网络的类型。
l 对于NBMA网络,如果部分路由器之间没有直接可达的链路时,应将接口的网络类型配置为P2MP。如果路由器在NBMA网络中只有一个对端,也可将接口类型配置为P2P。
在配置OSPFv3的网络类型之前,需完成以下任务:
l 使能IPv6报文转发功能
l 配置OSPFv3基本功能
表1-5 配置OSPFv3接口的网络类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPFv3接口的网络类型 |
ospfv3 network-type { broadcast | nbma | p2mp [ non-broadcast ] | p2p } [ instance instance-id ] |
可选 缺省情况下,接口的网络类型根据物理接口而定 |
当路由器的接口类型为如下网络类型时,需要为其指定相邻路由器IP地址:
l NBMA网络
l P2MP网络(仅当接口选择单播形式发送报文时,需要此配置)
由于无法通过广播Hello报文的形式发现相邻路由器,必须手工指定相邻路由器的本地链路地址。对于NBMA网络,可以指定该相邻路由器是否有选举权等。
表1-6 配置NBMA或者P2MP(单播)网络的邻居
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置NBMA或者P2MP(单播)网络的邻居 |
ospfv3 peer ipv6-address [ dr-priority dr-priority ] [ instance instance-id ] |
必选 |
通过这部分的配置,可以控制OSPFv3的路由信息的发布与接收,并引入外部路由。
在配置OSPFv3的路由信息控制之前,需完成以下任务:
l 使能IPv6报文转发功能
l 配置OSPFv3基本功能
如果该区域中存在多个连续的网段,则可以在ABR上配置abr-summary命令将它们聚合成一个网段,ABR只发送一条聚合后的LSA,所有落入本命令指定的聚合网段范围的LSA将不再会被单独发送出去,这样可减小其它区域中LSDB的规模。
表1-7 配置OSPFv3的路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
进入OSPFv3区域视图 |
area area-id |
- |
配置OSPFv3区域路由聚合 |
abr-summary ipv6-address prefix-length [ not-advertise ] |
必选 缺省情况下,ABR没有对路由进行聚合 |
路由聚合只有在ABR上配置才会有效。
OSPFv3接收到LSA后,可以根据一定的过滤条件来决定是否将计算后得到的路由信息加入到本地路由表中。
表1-8 配置OSPFv3对通过接收到的LSA计算出来的路由信息进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置对接收的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
必选 缺省情况下,没有对接收的路由信息过滤 |
filter-policy import命令只对OSPFv3计算出来的路由进行过滤,没有通过过滤的路由将不被加入到本地路由表中,从而不能用于转发报文。
OSPFv3有两种方式来配置接口的开销值,即从该接口发送出去的数据包的出站接口代价:
l 第一种方法是在接口视图下直接配置开销值;
l 第二种方法是配置接口的带宽参考值,OSPFv3根据带宽参考值自动计算接口的开销值,计算公式为:接口开销=带宽参考值÷接口带宽,当计算出来的开销值大于65535,开销取最大值65535。
如果没有在接口视图下显式的配置此接口的开销值,OSPFv3会根据该接口的带宽自动计算其开销值。
表1-9 配置OSPFv3接口的开销值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置OSPFv3接口的开销值 |
ospfv3 cost value [ instance instance-id ] |
可选 缺省情况下,OSPFv3根据接口的带宽自动计算链路开销,对于VLAN接口,缺省值为1;对于Loopback接口,缺省取值为0 |
表1-10 配置带宽参考值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置带宽参考值 |
bandwidth-reference value |
可选 缺省情况下,带宽参考值为100Mbits/s |
如果到一个目的地有几条开销相同的路径,可以实现等价路由负载分担,IPv6报文在这几个链路上轮流发送,以提高链路利用率。
表1-11 配置OSPFv3最大等价路由条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置OSPFv3最大等价路由条数 |
maximum load-balancing maximum |
可选 本命令的缺省值为8 |
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优选。
表1-12 配置OSPFv3协议的优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id | |
- |
配置OSPFv3协议的优先级 |
preference [ ase ] [ route-policy route-policy-name ] preference |
可选 缺省情况下,OSPFv3内部路由的优先级为10,OSPFv3 外部路由的优先级为150 |
表1-13 配置OSPFv3引入外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置外部路由的缺省开销值 |
default cost value |
可选 缺省情况下,缺省开销值为1 |
引入外部路由信息 |
import-route protocol [ process-id | allow-ibgp ] [ cost value | route-policy route-policy-name | type type ] * |
必选 缺省情况下,没有引入外部路由信息 |
配置OSPFv3引入缺省路由 |
default-route-advertise [ always | cost value | type type | route-policy route-policy-name ] * |
可选 缺省情况下,没有引入缺省路由 |
对引入的外部路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ isisv6 process-id | ospfv3 process-id | ripng process-id | bgp4+ | direct | static ] |
可选 缺省情况下,没有对引入的路由信息过滤 |
l 在OSPFv3路由器上配置import-route或default-route-advertise命令后,这台OSPFv3路由器就成为ASBR。
l 只能通过default-route-advertise命令引入并发布缺省路由。
l 由于OSPFv3是基于链路状态的路由协议,不能直接对发布的LSA进行过滤,所以只能在OSPFv3引入路由时进行过滤,只有符合条件的路由才能转换成LSA发布出去。
l filter-policy export命令只对本设备使用import-route引入的路由起作用。如果没有配置import-route命令来引入其它外部路由(包括不同进程的OSPFv3路由),则filter-policy export命令失效。
本节主要介绍配置OSPFv3定时器、配置接口的DR优先级、忽略DD报文中的MTU检查和禁止接口收发OSPFv3报文。
OSPFv3包括如下定时器:
l OSPFv3的报文定时器,可以调整OSPFv3网络的收敛速度以及协议报文带来的网络负荷。
l LSA的延迟时间:在一些低速链路上,需要考虑接口传送LSA的延迟时间。
l SPF定时器:通过调整SPF计算间隔时间,可以抑制由于网络频繁变化带来的资源消耗问题。
对于广播网,通过配置接口的DR优先级来影响DR/BDR的选择。
如果要使OSPFv3路由信息不被某一网络中的路由器获得,可禁止在与该网络相连的接口上发送OSPFv3报文。
在调整和优化OSPFv3网络之前,需完成以下任务:
l 使能IPv6报文转发功能
l 配置OSPFv3基本功能
表1-14 配置OSPF定时器
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口发送hello报文的时间间隔 |
ospfv3 timer hello seconds [ instance instance-id ] |
可选 缺省情况下,P2P、Broadcast网络类型接口发送Hello报文的时间间隔的值为10秒 |
配置Poll定时器 |
ospfv3 timer poll seconds [ instance instance-id ] |
可选 缺省情况下,发送轮询Hello报文的时间间隔为120秒 |
配置相邻路由器间失效时间 |
ospfv3 timer dead seconds [ instance instance-id ] |
可选 缺省情况下,P2P、Broadcast网络类型接口的OSPFv3邻居失效时间为40秒 |
配置相邻路由器重传LSA的时间间隔 |
ospfv3 timer retransmit interval [ instance instance-id ] |
可选 缺省情况下,LSA的重传时间间隔为5秒 |
配置接口的LSA传输延迟时间 |
ospfv3 trans-delay seconds [ instance instance-id ] |
可选 缺省情况下,接口的LSA传输延迟时间为1秒 |
退回系统视图 |
quit |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
设置SPF定时器 |
spf timers delay-interval hold-interval |
可选 缺省情况下,delay-interval值为5秒,hold-interval值为10秒 |
l 相邻路由器间失效时间间隔的值不要设置得太小,否则邻居很容易失效。
l 相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。
表1-15 配置接口的DR优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口的DR优先级 |
ospfv3 dr-priority priority [ instance instance-id ] |
可选 缺省情况下,接口的DR优先级为1 |
路由器接口的DR优先级将影响接口在选举DR时所具有的资格,优先级为0的路由器不会被选举为DR或BDR。
在LSA数量不多的情况下,没有必要去检查MTU大小,可以设置忽略DD报文中的MTU检查,从而提高性能。
表1-16 忽略DD报文中的MTU检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
忽略DD报文中的MTU检查 |
ospfv3 mtu-ignore [ instance instance-id ] |
必选 缺省情况下,不忽略MTU检查 |
表1-17 禁止接口收发OSPFv3报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
禁止接口发送OSPFv3报文 |
silent-interface { interface-type interface-number | all } |
必选 缺省情况下,允许接口发送OSPFv3报文 |
l 不同的进程可以对同一接口禁止发送OSPFv3报文,但silent-interface命令只对本进程已经使能的OSPFv3接口起作用,不对其它进程的接口起作用。
l 当运行OSPFv3协议的接口被配置为Silent状态后,该接口的直连路由仍可以由同一路由器的其他接口通过Intra-Area-Prefix-LSA发布,但OSPFv3报文将被阻塞,接口上不会建立OSPFv3邻居关系。这一特性可以增强OSPFv3的组网适应能力。
表1-18 配置邻接状态变化输出开关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置邻接状态变化输出开关 |
log-peer-change |
必选 缺省情况下,邻接状态变化输出开关处于打开状态 |
OSPFv3 GR特性和OSPFv3虚连接特性不同时支持,在配置了虚连接后将不能再配置GR特性。
GR(Graceful Restart,平滑重启)是一种在协议重启或主备切换时保证转发业务不中断的机制。GR有两个角色:
l GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
l GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
支持OSPFv3的GR Restarter能力的设备主备倒换后,为了实现设备转发业务的不中断,它必须完成下列两项任务:
l 重启过程GR Restarter转发表项保持稳定;
l 重启流程结束后重建所有邻居关系,重新获取完整的网络拓扑信息。
设备(GR Restarter)主备倒换后,首先向邻居发送Grace LSA通告邻居本设备进入GR;邻居收到Grace-LSA后,如果支持GR Helper能力则进入Helper模式(此时该邻居称为GR Helper)。GR Restarter重新建立邻居,GR Helper帮助GR Restarter进行LSDB的同步。同步完成之后,GR流程结束,进入正常的OSPFv3流程。这样就能实现设备在主备倒换时转发业务正常进行。
可以在GR Restarter设备上配置GR Restarter能力。
表1-19 配置GR Restarter
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
使能GR能力 |
graceful-restart enable |
必选 缺省情况下,OSPFv3协议的GR Restarter能力处于关闭状态 |
配置GR重启时间间隔 |
graceful-restart interval interval-value |
可选 缺省情况下,OSPFv3协议的GR重启间隔时间为120秒 |
可以在GR Helper设备上配置GR Helper能力。
表1-20 配置GR Helper
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
使能helper能力 |
graceful-restart helper enable |
可选 缺省情况下,OSPFv3的GR Helper能力处于打开状态 |
使能LSA严格检查能力 |
graceful-restart helper strict-lsa-checking |
可选 缺省情况下,OSPFv3协议的GR Helper严格LSA检查能力处于关闭状态 |
BFD(Bidirectional Forwarding Detection,双向转发检测)能够为OSPFv3邻居之间的链路提供快速检测功能。当邻居之间的链路出现故障时,加快OSPFv3协议的收敛速度。
OSPFv3使用BFD来进行快速故障检测时,可以通过Hello报文动态发现邻居,将邻居地址通知BFD就开始建立会话。BFD会话建立前处于down状态,此时BFD控制报文以不小于1秒的时间间隔周期发送以减少控制报文流量,直到会话建立以后才会以协商的时间间隔发送以实现快速检测。
进行配置BFD之前,需要配置OSPFv3功能。
表1-21 配置OSPFv3与BFD联动
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
配置路由器的ID |
router-id router-id |
必选 |
退出OSPFv3视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必选 缺省情况下,接口上没有使能OSPFv3 |
在指定接口上使能OSPFv3 BFD |
ospfv3 bfd enable [ instance instance-id ] |
必选 缺省情况下,运行OSPFv3的接口未使能BFD功能 |
关于BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
从安全性角度来考虑,为了避免路由信息外泄或者对路由器进行恶意攻击,OSPFv3提供基于IPsec的报文验证功能。
路由器在发送的报文中会携带配置好的IPsec安全策略的SPI(Security Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全策略匹配:只有策略匹配的报文才能接收;否则将不会接收报文,从而不能正常建立邻居和学习路由。
OSPFv3支持在区域、接口和虚连接下配置IPsec安全策略。
l 当需要保护区域内的所有报文时,可以在区域下配置IPsec安全策略,此时区域内所有路由器都需要配置相同的IPsec安全策略。
l 当需要保护区域下某些接口的报文时,可以在接口下配置IPsec安全策略,此时直连邻居接口需要配置相同的IPsec安全策略。
l 当需要保护虚连接的报文时,可以配置虚连接应用IPsec安全策略,此时虚连接上的两个邻居需要配置相同的IPsec安全策略。
当接口和接口所在区域均配置了IPsec安全策略时,接口下的策略生效;当虚连接和区域0均配置了IPsec安全策略时,虚连接的策略有效。
配置OSPFv3 IPsec安全策略之前,需要满足下面配置:
l 安全提议已经创建。
l IPsec安全策略已经创建。
关于安全提议和IPsec安全策略的详细配置过程,请参考“安全配置指导”中的“IPsec”。
表1-22 配置OSPFv3 IPsec安全策略(区域)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
进入OSPF区域视图 |
area area-id |
- |
配置OSPFv3区域应用IPsec安全策略 |
ipsec-policy policy-name |
必选 缺省情况下,OSPFv3区域没有应用IPsec安全策略 |
表1-23 配置IPsec安全策略(接口)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置使能了OSPFv3的接口上应用IPsec安全策略 |
ospfv3 ipsec-policy policy-name [ instance instance-id ] |
必选 缺省情况下,使能了OSPFv3的接口上没有应用IPsec安全策略 |
表1-24 配置IPsec安全策略(虚连接)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPFv3视图 |
ospfv3 [ process-id ] |
- |
进入OSPF区域视图 |
area area-id |
- |
配置虚连接应用IPsec安全策略 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | instance instance-id | ipsec-policy policy-name ] * |
必选 缺省情况下,虚连接没有应用IPsec安全策略 |
OSPFv3 IPsec安全策略只支持手工配置方式,具体情况请参见“安全配置指导”中的“IPsec”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPFv3的运行情况,通过查看显示信息验证配置的效果。
表1-25 OSPFv3显示和维护
操作 |
命令 |
显示OSPFv3进程的概要信息 |
display ospfv3 [ process-id ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3接口信息 |
display ospfv3 interface [ interface-type interface-number | statistic ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3的LSDB信息 |
display ospfv3 [ process-id ] lsdb [ [ external | inter-prefix | inter-router | intra-prefix | link | network | router | grace ] [ link-state-id ] [ originate-router router-id ] | total ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3 LSDB中LSA的统计信息 |
display ospfv3 lsdb statistic [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3邻居信息 |
display ospfv3 [ process-id ] [ area area-id ] peer [ [ interface-type interface-number ] [ verbose ] | peer-router-id ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3邻居的统计信息 |
display ospfv3 peer statistic [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3路由表信息 |
display ospfv3 [ process-id ] routing [ ipv6-address prefix-length | ipv6-address/prefix-length | abr-routes | asbr-routes | all | statistics ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3区域拓扑信息 |
display ospfv3 [ process-id ] topology [ area area-id ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3虚连接信息 |
display ospfv3 [ process-id ] vlink [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3下一跳信息 |
display ospfv3 [ process-id ] next-hop [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3链路状态请求列表信息 |
display ospfv3 [ process-id ] request-list [ { external | inter-prefix | inter-router | intra-prefix | link | network | router | grace } [ link-state-id ] [ originate-router ip-address ] | statistics ] [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3链路状态重传列表信息 |
display ospfv3 [ process-id ] retrans-list [ { external | inter-prefix | inter-router | intra-prefix | link | network | router | grace } [ link-state-id ] [ originate-router ip-address ] | statistics ] [ | { begin | exclude | include } regular-expression ] |
显示接口收发OSPFv3报文的统计信息 |
display ospfv3 statistic [ | { begin | exclude | include } regular-expression ] |
显示OSPFv3进程的GR状态信息 |
display ospfv3 [ process-id ] graceful-restart status [ | { begin | exclude | include } regular-expression ] |
l 所有的交换机都运行OSPFv3,整个自治系统划分为3个区域。其中Switch B和Switch C作为ABR来转发区域之间的路由。
l 要求将Area2配置为Stub区域,减少通告到此区域内的LSA数量,但不影响路由的可达性。
图1-2 配置OSPFv3区域组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 300
[SwitchA-Vlan-interface300] ospfv3 1 area 1
[SwitchA-Vlan-interface300] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ospfv3 1 area 1
[SwitchA-Vlan-interface200] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospf-1] router-id 2.2.2.2
[SwitchB-ospf-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 0
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 1 area 1
[SwitchB-Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ospfv3 1 area 2
[SwitchC-Vlan-interface400] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] ospfv3
[SwitchD-ospfv3-1] router-id 4.4.4.4
[SwitchD-ospfv3-1] quit
[SwitchD] interface vlan-interface 400
[SwitchD-Vlan-interface400] ospfv3 1 area 2
[SwitchD-Vlan-interface400] quit
# 查看Switch B的OSPFv3邻居状态。
[SwitchB] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
3.3.3.3 1 Full/DR 00:00:39 Vlan100 0
OSPFv3 Area ID 0.0.0.1 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 1 Full/Backup 00:00:38 Vlan200 0
# 查看Switch C的OSPFv3邻居状态。
[SwitchC] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 1 Full/Backup 00:00:39 Vlan100 0
OSPFv3 Area ID 0.0.0.2 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
4.4.4.4 1 Full/DR 00:00:38 Vlan400 0
# 查看Switch D的OSPFv3路由表信息。
[SwitchD] display ospfv3 routing
E1 - Type 1 external route, IA - Inter area route, I - Intra area route
E2 - Type 2 external route, * - Seleted route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: 2001::/64
Type : IA Cost : 2
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:1::/64
Type : IA Cost : 3
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
*Destination: 2001:3::/64
Type : IA Cost : 4
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
(3) 配置Stub区域
# 配置Switch D的Stub区域。
[SwitchD] ospfv3
[SwitchD-ospfv3-1] area 2
[SwitchD-ospfv3-1-area-0.0.0.2] stub
# 配置Switch C的Stub区域,设置发送到Stub区域的缺省路由的开销为10。
[SwitchC] ospfv3
[SwitchC-ospfv3-1] area 2
[SwitchC-ospfv3-1-area-0.0.0.2] stub
[SwitchC-ospfv3-1-area-0.0.0.2] default-cost 10
# 查看Switch D的OSPFv3路由表信息,可以看到路由表中多了一条缺省路由,它的开销值为直连路由的开销和所配置的开销值之和。
[SwitchD] display ospfv3 routing
E1 - Type 1 external route, IA - Inter area route, I - Intra area route
E2 - Type 2 external route, * - Seleted route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: ::/0
Type : IA Cost : 11
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001::/64
Type : IA Cost : 2
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:1::/64
Type : IA Cost : 3
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
*Destination: 2001:3::/64
Type : IA Cost : 4
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
(4) 配置Totally Stub区域
# 配置Switch C,设置Area2为Totally Stub区域。
[SwitchC-ospfv3-1-area-0.0.0.2] stub no-summary
# 查看Switch D的OSPFv3路由表,可以发现路由表项数目减少了,其他非直连路由都被抑制,只有缺省路由被保留。
[SwitchD] display ospfv3 routing
E1 - Type 1 external route, IA - Inter area route, I - Intra area route
E2 - Type 2 external route, * - Seleted route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: ::/0
Type : IA Cost : 11
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
l Switch A的优先级为100,它是网络上的最高优先级,所以Switch A被选为DR;
l Switch C的优先级为2,它是优先级次高的,被选为BDR;
l Switch B的优先级为0,这意味着它将无法成为DR;
l Switch D没有配置优先级,取缺省值1。
图1-3 配置OSPFv3的DR选择组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 0
[SwitchA-Vlan-interface100] quit
# 配置Switch B,启动OSPFv3,并设置其Router ID为2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 1 area 0
[SwitchB-Vlan-interface200] quit
# 配置Switch C,启动OSPFv3,并设置其Router ID为3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
# 配置Switch D,启动OSPFv3,并设置其Router ID为4.4.4.4。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] ospfv3
[SwitchD-ospfv3-1] router-id 4.4.4.4
[SwitchD-ospfv3-1] quit
[SwitchD] interface vlan-interface 200
[SwitchD-Vlan-interface200] ospfv3 1 area 0
[SwitchD-Vlan-interface200] quit
# 查看Switch A的邻居信息,可以看到DR优先级(缺省为1)以及邻居状态,此时优先级相等,Router ID大者被选为DR,可以看到Switch D为DR,Switch C为BDR。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 1 2-Way/DROther 00:00:36 Vlan200 0
3.3.3.3 1 Full/Backup 00:00:35 Vlan100 0
4.4.4.4 1 Full/DR 00:00:33 Vlan200 0
# 查看Switch D的邻居信息,可以看到Switch D和其他邻居之间的邻居状态都为Full。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 1 Full/DROther 00:00:30 Vlan100 0
2.2.2.2 1 Full/DROther 00:00:37 Vlan200 0
3.3.3.3 1 Full/Backup 00:00:31 Vlan100 0
(3) 配置接口的DR优先级
# 配置Switch A的接口Vlan-interface100的DR优先级为100。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 dr-priority 100
[SwitchA-Vlan-interface100] quit
# 配置Switch B的接口Vlan-interface200的DR优先级为0。
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 dr-priority 0
[SwitchB-Vlan-interface200] quit
# 配置Switch C的接口Vlan-interface100的DR优先级为2。
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 dr-priority 2
[SwitchC-Vlan-interface100] quit
# 显示Switch A的邻居信息,可以看到DR优先级已经更新,但DR/BDR并未改变。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 0 2-Way/DROther 00:00:38 Vlan200 0
3.3.3.3 2 Full/Backup 00:00:32 Vlan100 0
4.4.4.4 1 Full/DR 00:00:36 Vlan200 0
# 显示Switch D的邻居信息,可以看到Switch D仍然为DR。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 100 Full/DROther 00:00:33 Vlan100 0
2.2.2.2 0 Full/DROther 00:00:36 Vlan200 0
3.3.3.3 2 Full/Backup 00:00:40 Vlan100 0
(4) 重新进行DR/BDR选择
# 将所有接口一次shutdown和undo shutdown,使OSPFv3进行DR/BDR的重新选举。
# 查看Switch A的邻居信息,可以看到Switch C为BDR。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 0 Full/DROther 00:00:31 Vlan200 0
3.3.3.3 2 Full/Backup 00:00:39 Vlan100 0
4.4.4.4 1 Full/DROther 00:00:37 Vlan200 0
# 查看Switch D的邻居信息,可以看到Switch A为DR。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 100 Full/DR 00:00:34 Vlan100 0
2.2.2.2 0 2-Way/DROther 00:00:34 Vlan200 0
3.3.3.3 2 Full/Backup 00:00:32 Vlan100 0
l Switch A、Switch B和Switch C位于Area 2内;
l Switch B上运行两个OSPFv3进程:OSPFv3 1和OSPFv3 2。Switch B通过OSPFv3 1和Switch A交换路由信息,通过OSPFv3 2和Switch C交换路由信息;
l 在Switch B上配置OSPFv3进程2引入外部路由,引入直连路由和OSPFv3进程1的路由,并将引入的外部路由的缺省度量值设置为3,使得Switch C能够学习到达1::0/64和2::0/64的路由,但Switch A不能学习到达3::0/64和4::0/64的路由。
图1-4 配置OSPFv3引入外部路由组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3
# 在Switch A上启动OSPFv3进程1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 2
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ospfv3 1 area 2
[SwitchA-Vlan-interface200] quit
# 在Switch B上启动两个OSPFv3进程,进程号分别为1和2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 2
[SwitchB-Vlan-interface100] quit
[SwitchB] ospfv3 2
[SwitchB-ospfv3-2] router-id 3.3.3.3
[SwitchB-ospfv3-2] quit
[SwitchB] interface vlan-interface 300
[SwitchB-Vlan-interface300] ospfv3 2 area 2
[SwitchB-Vlan-interface300] quit
# 在Switch C上启动OSPFv3进程2。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 2
[SwitchC-ospfv3-2] router-id 4.4.4.4
[SwitchC-ospfv3-2] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] ospfv3 2 area 2
[SwitchC-Vlan-interface300] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ospfv3 2 area 2
[SwitchC-Vlan-interface400] quit
# 查看Switch C的路由表信息。
[SwitchC] display ipv6 routing-table
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 : 3::2 Preference: 0
Interface : Vlan300 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 : Vlan400 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引入外部路由
# 在Switch B上配置OSPFv3引入外部路由,,引入直连路由和OSPFv3进程1的路由。
[SwitchB] ospfv3 2
[SwitchB-ospfv3-2] default cost 3
[SwitchB-ospfv3-2] import-route ospfv3 1
[SwitchB-ospfv3-2] import-route direct
[SwitchB-ospfv3-2] quit
# 查看路由引入后Switch C的路由表信息。
[SwitchC] display ipv6 routing-table
Routing Table :
Destinations : 8 Routes : 8
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : OSPFv3
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : Vlan300 Cost : 3
Destination: 2::/64 Protocol : OSPFv3
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : Vlan300 Cost : 3
Destination: 3::/64 Protocol : Direct
NextHop : 3::2 Preference: 0
Interface : Vlan300 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 : Vlan400 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
l Switch A、Switch B和Switch C既属于同一自治系统,也属于同一OSPFv3区域,通过OSPFv3协议实现网络互连,并提供GR机制。
l Switch A作为GR Restarter,Switch B和Switch C作为GR Helper并且通过GR机制与Switch A保持带外同步。
图1-5 配置OSPFv3的GR组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] graceful-restart enable
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B,启动OSPFv3,并设置其Router ID为2.2.2.2。缺省情况下,Switch B的GR helper能力处于开启状态。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 1
[SwitchB-Vlan-interface100] quit
# 配置Switch C,启动OSPFv3,并设置其Router ID为3.3.3.3。缺省情况下,Switch C的GR helper能力处于开启状态。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 1
[SwitchC-Vlan-interface100] quit
(3) 检验配置效果
# 运行稳定后,在Switch A上主备倒换进入OSPFv3协议的GR进程。
l Switch A、Switch B和Switch C上运行OSPFv3,网络层相互可达。
l 当Switch A和Switch B通过L2 Switch通信的链路出现故障时BFD能够快速感知通告OSPFv3协议,并且切换到Switch C进行通信。
图1-6 配置OSPFv3与BFD联动组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int10 |
2001::1/64 |
Switch B |
Vlan-int10 |
2001::2/64 |
|
Vlan-int11 |
2001:2::1/64 |
|
Vlan-int13 |
2001:3::2/64 |
Switch C |
Vlan-int11 |
2001:2::2/64 |
|
|
|
|
Vlan-int13 |
2001:3::1/64 |
|
|
|
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospfv3 1 area 0
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 11
[SwitchA-Vlan-interface11] ospfv3 1 area 0
[SwitchA-Vlan-interface11] quit
# 配置Switch B,启动OSPFv3,并设置其Router ID为2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospf-1] router-id 2.2.2.2
[SwitchB-ospf-1] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospfv3 1 area 0
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 13
[SwitchB-Vlan-interface13] ospfv3 1 area 0
[SwitchB-Vlan-interface13] quit
# 配置Switch C,启动OSPFv3,并设置其Router ID为3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 11
[SwitchC-Vlan-interface11] ospfv3 1 area 0
[SwitchC-Vlan-interface11] quit
[SwitchC] interface vlan-interface 13
[SwitchC-Vlan-interface13] ospfv3 1 area 0
[SwitchC-Vlan-interface13] quit
(3) 配置BFD功能
# 在Switch A上使能BFD检测功能,并配置BFD参数。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospfv3 bfd enable
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] return
# 在Switch B上使能BFD检测功能,并配置BFD参数。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospfv3 bfd enable
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 6
(4) 检查配置结果
下面以Switch A为例,Switch B和Switch A类似,不再赘述。
# 显示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
IPv6 Session Working Under Ctrl Mode:
Local Discr: 1441 Remote Discr: 1450
Source IP: FE80::20F:FF:FE00:1202(Switch A接口Vlan-interface10的链路本地地址)
Destination IP: FE80::20F:FF:FE00:1200(Switch B接口Vlan-interface10的链路本地地址)
Session State: Up Interface: Vlan10
Hold Time: /
# 在Switch A上查看2001:4::0/64的路由信息,可以看出Switch A和Switch B是通过L2 Swtich进行通信的。
<SwitchA> display ipv6 routing-table 2001:4::0 64 verbose
Routing Table :
Summary Count : 2
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface10 Protocol : OSPFv3
State : Active Adv Cost : 1
Tunnel ID : 0x0 Label : NULL
Age : 4538sec
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001:2::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface11 Protocol : OSPFv3
State : Invalid Adv Cost : 2
Tunnel ID : 0x0 Label : NULL
Age : 4515sec
# 打开Switch A的调试开关。
<SwitchA> debugging bfd scm
<SwitchA> debugging bfd event
<SwitchA> debugging ospfv3 event bfd
<SwitchA> terminal debugging
# Switch B和二层交换机之间的链路发生故障后。可以看到Switch A能够快速检测Switch B的变化。
%Nov 5 11:37:43:062 2009 SwitchA BFD/5/BFD_CHANGE_FSM: Sess[FE80::20F:FF:FE00:1202/ FE80::20F:FF:FE00:1200,15/15,Vlan10,Ctrl], Sta: UP->DOWN, Diag: 1
%Nov 5 11:37:43:062 2009 SwitchA OSPFV3/5/OSPFv3_NBR_CHG: OSPFv3 1 Neighbor 2.2.2.2(Vlan-interface10) from Full to Down.
*Nov 5 11:37:43:062 2009 SwitchA RM/6/RMDEBUG: OSPFv3 OSPFv3-BFD: Message Type rcv BFD down, Connect Type direct-connect, Src IP Address FE80::20F:FF:FE00:1202, Dst IP Address FE80::20F:FF:FE00:1200.
*Nov 5 11:37:43:062 2009 SwitchA RM/6/RMDEBUG: OSPFv3 OSPFv3-BFD: Message Type delete session, Connect Type direct-connect, Src IP Address FE80::20F:FF:FE00:1202, Dst IP Address FE80::20F:FF:FE00:1200.
# 显示Switch A的BFD信息。
查看Switch A的BFD信息,Switch A已取消与Switch B的邻居关系,没有任何输出信息。
<SwitchA> display bfd session
# 在Switch A上查看2001:4::0/64的路由信息,可以看出Switch A和Switch B已经切换到Switch C进行通信。
<SwitchA> display ipv6 routing-table 2001:4::0 64 verbose
Routing Table :
Summary Count : 1
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001:2::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface11 Protocol : OSPFv3
State : Active Adv Cost : 2
Tunnel ID : 0x0 Label : NULL
Age : 4610sec
l 所有的交换机都运行OSPFv3,整个自治系统划分为2个区域。
l 要求配置IPsec安全策略对Switch A、Switch B和Switch C之间的OSPFv3报文进行有效性检查和验证。
图1-7 配置OSPFv3 IPsec策略组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,启动OSPFv3,并设置其Router ID为1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B,启动OSPFv3,并设置其Router ID为2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 1
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 1 area 0
[SwitchB-Vlan-interface200] quit
# 在Switch C,启动OSPFv3,并设置其Router ID为3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
(3) 配置OSPFv3 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
(4) OSPFv3区域上应用IPsec安全策略
# 配置Switch A。
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] area 1
[SwitchA-ospfv3-1-area-0.0.0.1] ipsec-policy policy001
[SwitchA-ospfv3-1-area-0.0.0.1] quit
[SwitchA-ospfv3-1] quit
# 配置Switch B。
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] area 0
[SwitchB-ospfv3-1-area-0.0.0.0] ipsec-policy policy002
[SwitchB-ospfv3-1-area-0.0.0.0] quit
[SwitchB-ospfv3-1] area 1
[SwitchB-ospfv3-1-area-0.0.0.1] ipsec-policy policy001
[SwitchB-ospfv3-1-area-0.0.0.1] quit
[SwitchB-ospfv3-1] quit
# 配置Switch C。
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] area 0
[SwitchC-ospfv3-1-area-0.0.0.0] ipsec-policy policy002
[SwitchC-ospfv3-1-area-0.0.0.0] quit
[SwitchC-ospfv3-1] quit
(5) 检验配置结果
以上配置完成后,Switch A、Switch B和Switch C之间的数据流将被加密传输。
OSPFv3邻居无法建立
如果物理连接和下层协议正常,则检查接口上配置的OSPFv3参数,必须保证与相邻路由器的参数一致,区域号相同。
相邻的两台路由器接口的网络类型必须一致。若网络类型为广播网,则至少有一个接口的DR优先级应大于零。
(1) 使用display ospfv3 peer命令查看OSPFv3邻居状态。
(2) 使用display ospfv3 interface命令查看OSPFv3接口的信息。
(3) 检查物理连接及下层协议是否正常运行,可通过Ping命令测试。若从本地路由器Ping对端路由器不通,则表明物理连接和下层协议有问题。
(4) 检查OSPFv3定时器,在同一接口上失效时间应至少为Hello间隔时间的4倍。
(5) 如果网络类型为广播网,则至少有一个接口的DR优先级大于零。
OSPFv3不能发现其他区域的路由
应保证骨干区域与所有的区域相连接。若一台路由器配置了两个以上的区域,则至少有一个区域应与骨干区域相连。骨干区域不能配置成Stub区域。
在Stub区域内的路由器不能接收外部AS的路由。如果一个区域配置成Stub区域,则与这个区域相连的所有路由器都应将此区域配置成Stub区域。
(1) 使用display ospfv3 peer命令查看OSPFv3邻居状态。
(2) 使用display ospfv3 interface命令查看OSPFv3接口的信息。
(3) 使用display ospfv3 lsdb查看LSDB的信息是否完整。
(4) 使用display current-configuration configuration命令查看区域是否配置正确。若配置了两个以上的区域,则至少有一个区域与骨干区域相连。
(5) 如果某区域是Stub区域,则该区域中的所有路由器都要配置stub命令。
(6) 如果配置了虚连接,使用display ospf vlink命令查看邻居状态是否正常。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!