OSPFv3(Open Shortest Path First Version 3,开放式最短路径优先协议)是一种IGP(Interior Gateway Protocol,内部网关协议),应用在AS(Autonomous System,自治系统)内部,使路由器获得远端网络的路由。
说明
OSPFv3 Version 2应用于IPv4,OSPFv3 Version 3应用于IPv6,协议运行机制和大部分配置都相同。
OSPFv3具备如下特点:
适用范围广:适用于更大规模的网络(最大可支持几百台路由器)。
快速收敛:一旦网络拓扑发生变化,路由器之间能够快速通告信息,更新路由。
无自环:路由器之间仅同步链路状态信息,每台路由器独立计算路由,不会生成自环。
区域划分:将一个大的路由域划分为多个较小的区域,可以节省系统资源和网络带宽,使路由稳定可靠。
路由分类:将路由分为多种类型区别对待,支持灵活的控制策略。
等价路由:支持等价路由。
支持认证:支持报文认证,保障协议交互过程的安全。
组播发送:支持以组播地址发送协议报文,可以避免干扰无关者、节省系统资源。
说明
本章使用“路由器”指代支持路由功能的网络设备。这些网络设备可以是三层交换机、路由器、防火墙等。
一个AS(Autonomous System,自治系统)中的所有路由器必须相互连接,运行相同的路由协议。因此,AS也被称为路由域(Routing Domain)。
运行OSPFv3的AS也被称为OSPFv3路由域,简称OSPFv3域。
OSPFv3支持多实例(Instance),每个实例对应一个OSPFv3进程(Process)。
一台路由器上可以启用一个OSPFv3进程,也可以启用多个OSPFv3进程。每个OSPFv3进程独立执行OSPFv3协议,相互隔离。
OSPFv3报文头中包含Instance ID字段,单个链路上可以运行多个OSPFv3实例。但Process ID只有本地意义。
OSPFv3域内,使用Router ID唯一标识一台路由器。任意两台路由器的Router ID不能相同。
如果路由器上存在多个OSPFv3进程,则每个OSPFv3进程使用一个Router ID。任意两个OSPFv3进程的Router ID不能相同。
OSPFv3支持多区域(Area)。将一个OSPFv3域划分为多个区域,有助于缓解大规模网络的计算压力。
区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是路由器,一台路由器可以只属于一个区域,也可以属于多个区域。一个网段(链路)只能属于一个区域,或者说每个运行OSPFv3的接口必须指明属于哪一个区域。
骨干区域和常规区域
区域0为骨干区域(Backbone Area),其他区域为常规区域(Normal Area)。常规区域必须与骨干区域直接相连。
Stub区域
OSPFv3末节区域,配置Stub区域可以减少区域内的LSA数量,Stub区域的ABR(Area Border Router,区域边界路由器)不会传递Type 5 LSA(域外路由),同时向Stub区域通告缺省路由。
Totally Stub区域
完全末节区域,是Stub区域的升级,Totally Stub区域的路由器不会传递Type 3 LSA(域间路由)和Type 5 LSA(域外路由),同时向Stub区域通告缺省路由。
NSSA
Not-So-Stubby Area,次末节区域,NSSA区域和Stub区域相似,但是允许存在ASBR(AS Boundary Router,自治系统边界路由器)。ASBR重分发的路由会以Type 7 LSA形式在NSSA区域传递,在ABR上会将Type 7 LSA转换成Type 5 LSA后传递到其他区域。ABR也会向NSSA区域通告缺省路由。
Totally NSSA
Totally NSSA和NSSA的关系与Totally Stub区域和Stub区域的关系类似。Totally NSSA在NSSA的基础上禁止传递Type 3 LSA(域间路由)。
注意
骨干区域不能是Stub区域、Totally Stub区域、NSSA和Totally NSSA区域。
Stub区域和Totally Stub区域不能存在ASBR。
Stub区域、Totally Stub区域、NSSA和Totally NSSA区域不能存在虚链路。
Stub/Totally Stub、NSSA/Totally NSSA区域,是常规区域的特殊形态,有助于减轻路由器负担,增强OSPFv3路由稳定性。
在OSPFv3中定义了几种路由器类型,并为每种类型的路由器赋予不同的职责。
区域内路由器(Internal Router)
该类路由器的所有接口都属于同一个OSPFv3区域。如图1-1中的A、C、F、G、I、M、J、K和L。
ABR
该类路由器用来连接骨干区域和常规区域。ABR同时属于两个以上的区域,其中一个必须是骨干区域。如图1-1中的B、D、E、H。
骨干路由器(Backbone Router)
该类路由器至少有一个接口属于骨干区域。所有的ABR和Area0的区域内路由器都是骨干路由器。如图1-1中的A、B、C、D、E、H。
ASBR
该类路由器用来与其他AS交换路由信息。ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。如图1-1中的A。
每条OSPFv3路由前都带有一个标识,用来说明此路由的类型。OSPFv3路由共有6种类型。
O:区域内路由
此类路由描述了如何到达本区域内的目标网络。路由开销=本地到目标网络的开销。
OI:区域间路由
此类路由描述了如何到达其他区域的目标网络。路由开销=本地到目标网络的开销。
OE1:第一类外部路由
此类路由描述了如何到达AS以外的目标网络。路由开销=本地到ASBR的开销+ASBR到目标网络的开销。Stub、NSSA区域内的路由器上不存在此类路由。
OE2:第二类外部路由
此类路由描述了如何到达AS以外的目标网络。路由开销=ASBR到目标网络的开销。Stub、NSSA区域内的路由器上不存在此类路由。
ON1:NSSA区域的第一类外部路由
此类路由仅描述了如何经NSSA区域的ASBR到达AS以外的目标网络。路由开销=本地到ASBR的开销+ASBR到目标网络的开销。仅NSSA区域的路由器上存在此类路由。
ON2:NSSA区域的第二类外部路由
此类路由描述了如何经NSSA区域的ASBR到达AS以外的目标网络。路由开销=ASBR到目标网络的开销。仅NSSA区域的路由器上存在此类路由。
说明
OE2、ON2这两类路由的可信度比较低,OSPFv3认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以,计算路由开销时只考虑ASBR到自治系统之外的开销。
OSPFv3使用以下几种类型的协议报文。这些OSPFv3报文被封装在IP报文中,以组播或单播方式发送。
OSPFv3报文格式
Version:OSPFv3版本号,OSPFv3版本号值为3。
Type:OSPFv3报文类型。
Packet length:OSPFv3报文加报文头的长度,单位字节。
Router ID:发送OSPFv3报文的路由器标识。
Area ID:发送OSPFv3报文的路由器所在区域。
Checksum:OSPFv3报文的检验和,不包括认证字段。
Instance ID:OSPFv3实例ID。
0:预留值。
OSPFv3报文类型
报文类型 |
说明 |
|---|---|
Hello |
周期性发送,用来发现OSPFv3邻居,维持邻接关系 OSPFv3报文Type值为1 |
DD(Database Description,数据库描述) |
描述本地LSDB(Link-State Database,链路状态数据库)的摘要信息,用于同步OSPFv3邻居之间的数据库 OSPFv3报文Type值为2 |
LSR(Link State Request,链路状态请求) |
用于向对方请求所需的LSA,只有在OSPFv3邻居双方成功交换DD报文后,才会向对方发出LSR报文 OSPFv3报文Type值为3 |
LSU(Link State Update,链路状态更新) |
用于向对方发送其所需要的LSA OSPFv3报文Type值为4 |
LSAck(Link State Acknowledgment,链路状态确认) |
用来确认收到的LSA OSPFv3报文Type值为5 |
OSPFv3以LSA(Link State Advertisement,链路状态通告)的形式来描述路由信息。
LSA报文格式
LS age:老化时间,LSA产生后经过的时间,单位为秒。
Option:LSA可选字段,决定是否泛洪AS-external-LSA,是否转发IP组播报文,是否处理NSSA LSA,是否处理按需链路等。
LS type:表示不同的LSA
Link State ID:和LSA type共同组成了路由域中LSA的唯一性。
Advertising Router:产生此LSA路由器的Router ID。
LS sequence number:LSA序列号,用于描述LSA的新旧。
LS checksum:除LS age外字段的校验和。
Length:LSA报文加头部的总长度,单位为字节。
OSPFv3 LSA类型
LSA类型 |
说明 |
|---|---|
Router-LSA(Type1) |
由每个路由器始发,描述了路由器的链路状态和开销,在始发路由器所属区域内传播 |
Network-LSA(Type2) |
由DR始发,描述本链路的链路状态,在DR所属区域内传播 |
Inter-Area-Prefix-LSA(Type3) |
由ABR始发,描述到其它区域的路由,通告给非Totally Stub、NSSA区域 |
Inter-Area-Router-LSA(Type4) |
由ABR始发,描述到ASBR的路由,通告给除ASBR所在区域的其他区域 |
AS-external-LSA(Type5) |
由ASBR始发,描述到AS外部的路由,通告到所有区域(除了Stub、NSSA区域) |
NSSA LSA(Type7) |
由ASBR始发,描述到AS外部的路由,仅在NSSA区域内传播 |
Link-LSA(Type8) |
由每个路由器始发,描述每个链路的Link-Local地址、IPv6前缀地址,并提供将会在Network-LSA中设置的链路选项,仅在此链路内传播 |
Intra-Area-Prefix-LSA(Type9) |
每个路由器及DR都会产生一个或多个此类LSA,在所属的区域内传播 路由器产生的此类LSA,描述与Route-LSA相关联的IPv6前缀地址 DR产生的此类LSA,描述与Network-LSA相关联的IPv6前缀地址 |
OSPFv3的网络中,邻居设备需要达到邻接状态才能交互链路信息。OSPFv3邻居状态一共有如下几种,当进入Full状态时,邻接关系建立。
OSPFv3邻居状态机及含义
状态 |
含义 |
|---|---|
Down |
第一个OSPFv3邻居状态,表示邻居失效时间间隔内未收到邻居的Hello报文 |
Attempt |
Attempt状态路由器定期向手工配置的邻居发送Hello报文 Attempt状态只适用于NBMA类型的接口 |
Init |
已经收到了邻居的Hello报文,但是报文中未包含邻居接收路由器Router ID,即对端并没有收到本端发送的Hello报文 |
Two-Way |
互为邻居。收到Hello报文中邻居Router ID字段为自身Router ID双方互相收到了对端发送的Hello报文,建立了邻居关系 此阶段结束后,广播和非广播多路访问将会选取DR和BDR |
Exstart |
协商主/从关系。并选择形成邻接的初始序列号,主从关系保证在后续的DD报文交换中能够有序的发送 |
Exchange |
交换DD报文。以检查邻居是否可提供新的或更新的链路状态信息 |
Loading |
基于DBD提供的信息,路由器将发送LSR和交互LSU,同步LSDB |
Full |
建立邻接。两端设备的LSDB已同步,本端设备和邻居设备建立了邻接状态 |
路由器不一定需要与它的每一个邻居交换LSA、建立邻接关系。为提高效率,OSPFv3将各种链路层协议的网络归类为5种类型,以不同的方式交换LSA、建立邻接关系。
缺省情况下,Ethernet、FDDI为广播类型;X.25、帧中继和ATM为NBMA类型;PPP、HDLC和LAPB为P2P类型。
OSPFv3网络类型介绍
网络类型 |
链路层协议 |
邻居关系与DR选举 |
|---|---|---|
广播(Broadcast) |
Ethernet、FDDI默认属于此类型 |
自动发现邻居,选举DR、BDR DR或BDR与其他所有路由器交换LSA、建立邻接关系 DR、BDR之外的路由器之间不交换LSA、不建立邻接关系 |
NBMA(Non-broadcast Multiple Access,非广播) |
X.25、帧中继、ATM默认属于此类型 |
手工配置邻居,选举DR、BDR DR或BDR与其他所有路由器交换LSA、建立邻接关系 DR、BDR之外的路由器之间不交换LSA、不建立邻接关系 |
P2P(Point-to-Point,点到点) |
PPP、HDLC、LAPB默认属于此类型 |
自动发现邻居,不选举DR/BDR 链路两端路由器之间交换LSA、建立邻接关系 |
P2MP(Point-to-Multipoint,点到多点) |
没有任何链路层协议的网络默认为此类型 |
自动发现邻居,不选举DR/BDR 任意两台路由器之间都要交换LSA、建立邻接关系 |
点到多点非广播 |
没有任何链路层协议的网络默认为此类型 |
手动配置邻居,不选举DR/BDR 任意两台路由器之间都要交换LSA、建立邻接关系 |
在广播或NBMA网络中,构建相关路由器的邻接关系时,会创建很多不必要的LSA。假设有n台路由器,那么就会构建n*(n-1)/2个邻接关系,网络上将产生n^2个LSA通告;建邻居交换LSA过程中会产生很多不必要的副本,使得多址网络本身的洪泛扩散显得比较混乱。为了在一个多路访问网络避免这些问题的发生,OSPFv3定义了指定路由器DR和备份指定路由器BDR的概念。
通过选举产生DR和BDR后,所有路由器都只和DR、BDR建立邻接关系,将信息发给DR/BDR,由DR将网络链路状态广播出去。除DR和BDR之外的路由器(称为DROther)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播和NBMA网络上各路由器之间邻接关系的数量。
DR选举前后邻接数量(未选举DR前)
DR选举前后邻接数量(选举DR后)
OSPFv3支持虚链路(Virtual Link)。虚链路是一条逻辑链路,属于骨干区域,用于解决在物理网络上骨干区域不连续或骨干区域与常规区域不能直接相连的问题。虚链路只能穿越一个常规区域,该区域被称为“传输区域”(Transit Area)。虚链路两端的路由器均为ABR。
虚链路依托于OSPFv3域内路由使得两台ABR成为邻接状态,ABR交互的OSPFv3报文信息对于中间设备来说是透明的。
如图1-6所示:在A、B之间建立虚链路,将Area 0连接;Area 1是传输区域;A、B是Area 1的ABR。
如图1-7所示:在A、B之间建立虚链路,将Area 0延伸到B,则Area 0与Area 2在B上直接相连;Area 1是传输区域;A是Area 1的ABR;B是Area 1、Area 2的ABR。
OSPFv3属于链路状态路由协议(Link-StateRouting Protocols),工作过程包括三个阶段:
邻居发现双向通信
在相连的路由器之间建立OSPFv3邻居关系,并保持双向通信。
数据库同步完全邻接
路由器使用LSA发布本端的全部链路状态。邻居之间交换LSA,同步LSDB,达到完全邻接状态。
计算SPT形成路由表
路由器依据LSDB计算出到达每个目标网络的最短路径,形成OSPFv3路由表。
邻居发现双向通信
路由器从所有启动OSPFv3的接口上或虚链路发出Hello报文。如果两台路由器之间能够交互Hello报文,并且能够成功协商Hello报文中携带的参数,则它们就成为了邻居(Neighbor)。当互为邻居的路由器在彼此的Hello报文中找到本端的Router ID时,双向通信就建立了。
Hello报文中包含(但不限于)如下信息:
始发路由器的Router ID。
始发路由器接口或虚链路的Area ID。
始发路由器接口或虚链路的Instance ID。
始发路由器接口或虚链路的Interface ID。
始发路由器接口的优先级(用于DR/BDR竞选)。
始发路由器接口或虚链路的Hello时间间隔。
始发路由器接口或虚链路的邻居失效时间。
DR(Designated Router,指定路由器),BDR(Backup Designated Router,备份指定路由器)的Router ID。
始发路由器的邻居的Router ID。
数据库同步完全邻接
邻居路由器之间建立双向通信后,使用DD、LSR、LSU和LSAck报文交换LSA,建立邻接关系。简要过程如下:
路由器产生LSA,用来描述该设备上的全部链路状态。
邻居之间交换LSA。当路由器接收到邻居发送的LSA时,将拷贝一份到本地LSDB,再传播给其它邻居。
当路由器及其邻居都获得了相同的LSDB时,达到完全邻接状态。
说明
如果没有链路开销、网络增删变化,OSPFv3将会十分稳定。如果发生变化,则通告变化的链路状态,快速同步LSDB。
计算最短路径形成路由表
路由器上获得完整的LSDB后,将运行Dijkstra算法生成一棵从本地到每个目标网络的SPT(Shortest Path Tree,最短路径树)。SPT中记录了:目标网络、下一跳地址和开销。OSPFv3依据SPT形成路由表。
如果发生链路开销、网络增删变化,则会引起LSDB的更新。设备将再次运行Dijkstra算法,生成新的SPT,并更新路由表。
说明
Dijkstra算法用来在一个有权重的有向图中,找到从一个顶点到其他顶点的最短路径。
路由开销
如果网络中存在冗余链路或设备,则从本地到目的网络之间可能存在多条路径。OSPFv3选择其中总开销最小的路径形成OSPFv3路由。一条路径的总开销等于沿途链路上的开销之和。通过修改沿途链路上的开销,使一条路径的总开销最小,即可使OSPFv3选择此路径形成路由。
通过配置命令,可以修改如下链路开销:
从接口到直连网段的开销(即接口上的开销值)。
从接口到邻居的开销(即从本地到指定邻居的开销值)。
从ABR到缺省网段的开销(ABR自动向Stub、NSSA区域发布的缺省路由的开销值)。
从ASBR到外部网段的开销(ABR自动向Stub、NSSA区域发布的缺省路由的开销值)。
从ASBR到缺省网段的开销(人为引入的缺省路由的度量值)。
OSPFv3管理距离
AD(Administrative Distance,管理距离)用于评价路由的可信度。取值范围0~255(整数)。AD值越小,则表示此路由更值得信任。到达同一目的地存在多条路由时,路由器优先选择AD值较小的路由。AD值较大者,成为浮动路由(作为最优路由的备份)。
缺省情况下,每种来源的路由对应一个AD值。AD值为本地概念,修改AD值只会影响当前路由器上的路由选择。
路由协议缺省管理距离
路由来源 |
直连网络 |
静态路由 |
EBGP路由 |
OSPFv3路由 |
IS-IS路由 |
RIP路由 |
IBGP路由 |
不可达路由 |
缺省AD |
0 |
1 |
20 |
110 |
115 |
120 |
200 |
255 |
路由重分布
路由重分布是指:将设备上存在的“其他路由协议的路由、其他OSPFv3进程的路由、静态路由、直连路由”引入OSPFv3进程,以LSA Type 5、7的方式发送给邻居。路由重分布不能引入缺省路由。
路由重分布常用于AS间互联。通过在ASBR上配置路由重分布,可以将AS外部的路由信息传播到AS内部,也可以将AS内部的路由信息传播到AS外部。
引入缺省路由
通过在ASBR上配置命令,可以将一条缺省路由引入OSPFv3进程,以LSA Type 5、7的方式发送给邻居。
“引入缺省路由”常用于AS间互联,以一条缺省路由代替所有AS外部的路由信息。
配置路由重分布、引入缺省路由后,路由器自动成为ASBR。
路由汇聚是指将具有相同前缀的路由信息汇聚为一条路由,并将汇聚后的路由(替代大量琐碎路由)发布给邻居。路由汇聚有助于减轻协议交互负担、减小路由表的规模。
缺省情况下,对于区域间的路由信息,ABR以网段为单位发布LSA Type 3;对于重分布进来的路由信息,ASBR逐条发布LSA Type 5、7。如果其中存在连续的网段,则建议配置路由汇聚。
配置路由汇聚后,ABR只会发送聚合IPv6地址前缀的LSA Type 3,ASBR只会发送聚合IPv6地址前缀的LSA Type 5、7,归属于IPv6地址前缀的LSA将不再发送。
OSPFv3允许过滤学习、交互的路由和LSA,可以满足特定场景中安全需求,如部分网段路由不愿意被其他区域学习等。
通过配置命令,可以在以下几处进行路由过滤:
针对接口。禁止接口发出路由信息(任意LSA)、或禁止接口与邻居交互路由信息(任意LSA)。
针对AS外部的路由信息。只有满足过滤条件的路由信息才能被重分布到OSPFv3进程(LSA Type 5、7)。
针对路由器收到的LSA。OSPFv3路由表中,只有由满足过滤条件的LSA计算出的路由,才能执行报文转发。
Stub/Totally Stub、NSSA/Totally NSSA区域有助于减轻协议交互负担、减小路由表的规模。
将适当的区域设置为Stub/Totally Stub、NSSA/Totally NSSA区域,则可以免除大量的LSA Type 5、3在区域内传播。
Stub/NSSA区域中的LSA
区域 |
LSA Type 1、2 |
LSA Type 3 |
LSA Type 4 |
LSA Type 5 |
LSA Type 7 |
|---|---|---|---|---|---|
非Stub/Totally Stub、NSSA/Totally NSSA区域 |
允许 |
允许 |
允许 |
允许 |
不允许 |
Stub区域 |
允许 |
允许,包括一条缺省路由 |
不允许 |
不允许 |
不允许 |
Totally Stub区域 |
允许 |
只允许一条缺省路由 |
不允许 |
不允许 |
不允许 |
NSSA区域 |
允许 |
允许,包括一条缺省路由 |
允许 |
不允许 |
允许 |
Totally NSSA区域 |
允许 |
只允许一条缺省路由 |
允许 |
不允许 |
允许 |
说明
ABR使用LSA Type 3向Stub/Totally Stub、NSSA/Totally NSSA区域发布一条缺省路由。
ABR将NSSA和Totally NSSA区域内的LSA Type 7转换成LSA Type 5,发布到骨干区域。
将适当的区域设置为Stub/Totally Stub、NSSA/Totally NSSA区域,则区域内路由器的路由表中可以免除大量OE1、OE2、OI类型的路由。
Stub/NSSA区域中的路由类型
区域 |
区域内路由器的路由表中存在哪些路由 |
|---|---|
非Stub/Totally Stub、NSSA/Totally NSSA区域 |
O:到本区域某目标网段的路由 OI:到其他区域某目标网段的路由 OE1或OE2:(经过AS内任意ASBR)到AS外部某目标网段的路由、缺省路由 |
Stub区域 |
O:到本区域某目标网段的路由 OI:到其他区域某目标网段的路由、缺省路由 |
Totally Stub区域 |
O:到本区域某目标网段的路由 OI:缺省路由 |
NSSA区域 |
O:到本区域某目标网段的路由 OI:到其他区域某目标网段的路由、缺省路由 ON1或ON2:(经过本区域内的ASBR)到AS外部某目标网段的路由、缺省路由 |
Totally NSSA区域 |
O:到本区域某目标网段的路由 OI:缺省路由 ON1或ON2:(经过本区域内的ASBR)到AS外部某目标网段的路由、缺省路由 |
说明
骨干区域不能设置为Stub或NSSA区域。
虚链路穿过的区域不能设置为Stub或NSSA区域。
包含ASBR的区域不能设置为Stub区域。
认证与BFD(Bidirectional Forwarding Detection,双向转发检测)联动等功能使OSPFv3更安全、更稳定可靠。
认证
OSPFv3利用IPv6提供的认证机制,即AH(Authentication Header,认证头)和ESP(Encapsulating Security Payload,封装安全负载),来阻止非法接入网络的路由器和伪造OSPFv3报文的主机参与OSPFv3路由交换。在OSPFv3接口或虚链路两端上认证收到的OSPFv3报文。如果认证失败,则丢弃报文,邻接关系将建立失败。启动认证功能后,可以避免学到非认证、无效路由,避免将有效路由通告到非认证设备。在广播类型网络中,认证还可以避免非认证设备成为指定设备的可能性,保证了路由系统的稳定性和抗入侵性。
认证分为以下两种类型:
区域认证:区域级别认证,对区域内所有接口传输的报文进行认证,在OSPFv3路由进程模式下配置。
接口认证:邻居级别认证,对接口上传输的报文进行认证,在接口模式下配置。
MTU校验
OSPFv3在收到DD时会校验邻居接口的MTU和本端接口的MTU是否相同,如果收到的DD报文中指示的接口的MTU大于接收接口的MTU,则邻接关系将不能被建立。关闭MTU的校验,可以避免此问题。
OSPFv3路由器之间通过周期性发送Hello报文来维持邻接关系。在较大的网络中,可能会出现大量的报文收发,占用较高的CPU和内存资源,造成部分报文的延迟或丢弃。如果Hello报文的处理超出了失效间隔,将导致邻接关系断开。
如果启用双向维持功能,则除了Hello报文外,DD、LSU、LSR、LSAck报文也能用来维持邻居之间的双向通信,从而使邻接关系更加稳定。
并发邻居数量限制
当路由器同时与多个邻居交换数据时,其性能会受到影响。限制OSPFv3进程可并发交互(发起或接受)的邻居最大数目,使路由器可以分批与邻居进行交互,有助于保障数据转发或其他关键业务。
GR
路由器普遍采用了控制和转发分离的技术。在网络拓扑保持稳定的情况下,启用GR(Graceful Restart,优雅重启)功能的路由器在控制层面的重启过程中转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能,从而避免了路由震荡引发的业务中断,提高了整网的可靠性。
目前,GR功能只在主备切换和系统升级过程中使用。
正常的OSPFv3 GR过程
GR过程需要Restarter和Helper的协作。Restarter是发生GR的路由器。Helper是Restarter的邻居。
Restarter在开始和退出GR时向邻居发送Grace-LSA,通知邻居进入和退出Helper状态。
Restarter与Helper邻居关系达到Full状态,则GR可成功退出。
Fast Hello、OSPFV3与BFD联动
当发生链路故障后,OSPFv3需要一段时间(约40秒)才能感知邻居失效。而后再将此信息传播出去、并重新计算SPT。这期间会发生流量中断。
启动Fast Hello功能(即将邻居失效时间设置为1秒)后,一旦发生链路故障后,OSPFv3可以在1秒内感知到邻居失效。从而加快路由收敛,避免流量中断。
BFD用于检测设备之间的连通性,最短能够在150毫秒内发现链路故障。将OSPFv3与BFD联动后,一旦发生链路故障,OSPFv3最短可以在150毫秒内感知到邻居失效。从而加快路由收敛,避免流量中断。
MIB、Syslog等功能使OSPFv3更易于管理。
MIB
MIB(Management Information Base,管理信息库)是设备端维护的设备状态信息集。管理程序可以对MIB节点进行查阅和设置。
路由器上可以同时启动多个OSPFv3进程,但OSPFv3 MIB只能与一个OSPFv3进程绑定。
告警是系统检测到故障而产生的通知,告警中携带对应的故障信息。
启动Trap功能,则路由器可以主动将告警信息发送到网管设备。
Syslog
日志记录了用户对路由器的操作(比如命令配置)以及特定事件(比如网络连接失效)等信息。
允许日志记录邻接状态变化,则网络管理员可以通过查看日志了解OSPFv3邻居之间建立和维持邻接关系的全过程。
RFC 2740:This document describes the modifications to OSPFv3 to support version 6 of the Internet Protocol (IPv6).
draft-ietf-ospf-ospfv3-graceful-restart:This document describes the OSPFv3 graceful restart. The OSPFv3 graceful restart is identical to OSPFv3v2 except for the differences described in this document. These differences include the format of the grace Link State Advertisements (LSA) and other considerations.
draft-ietf-ospf-ospfv3-mib-11:This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in IPv6-based internets. In particular, it defines objects for managing the Open Shortest Path First Routing Protocol for IPv6.
配置OSPFv3基本功能
配置OSPFv3
(可选)配置虚链路
(可选)配置OSPFv3网络类型
(可选)配置OSPFv3路由发布,以下配置均可选,请根据实际情况选择。
配置重分发外部路由
配置生成缺省路由
配置设备为ASBR
(可选)配置Stub区域和NSSA区域
(可选)配置OSPFv3路由汇聚
(可选)配置OSPFv3路由过滤
(可选)调整OSPFv3选路,以下配置均可选,请根据实际情况选择。
配置参考带宽
配置接口开销值
配置Stub/NSSA区域缺省路由的Cost值
配置重分布路由缺省度量值
配置管理距离
(可选)调整OSPFv3网络的收敛速度,以下配置均可选,请根据实际情况选择。
配置OSPFv3报文传输时间
配置OSPFv3路由计算时间
(可选)启动OSPFv3认证功能,以下配置均可选,请根据实际情况选择。
配置区域认证和加密
配置接口认证和加密
(可选)启动双向维持
(可选)启动OSPFv3与BFD联动,以下配置均可选,请根据实际情况选择。
配置OSPFv3接口与BFD联动
配置OSPFv3全局与BFD联动
(可选)启动GR功能
(可选)启动NSR功能
(可选)开启4类LSA冲突检测
(可选)修改并发邻居数量限制
(可选)配置网管功能
(可选)关闭MTU校验
在网络中建立一个OSPFv3路由域,为网络内用户提供IPv6单播路由服务。
需要确保IPv6路由功能启用,即ipv6 routing开关未被关闭,才能够启用OSPFv3。
接口必须配置IPv6。
OSPFv3基本功能配置任务如下:
配置OSPFv3
(可选)配置虚链路
配置OSPFv3基础功能是使用所有OSPFv3功能的前提,必须要创建OSPFv3进程,可以指定该进程的Router ID,最后必须在接口上配置OSPFv3。
每台运行OSPFv3的路由器都需要配置。
建议配置Router ID。
可以在接口配置模式下,先使用ipv6 ospf area启动接口参与OSPFv3,再通过ipv6 router ospf配置OSPFv3进程,配置完OSPFv3进程后,接口将自动参与相应的进程。只有instance-id相同的设备之间才能正常建立邻接关系。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建OSPFv3进程,并进入OSPFv3配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)设置实例ID。
router-id router-id
缺省情况下,OSPFv3路由进程选举所有环回接口IPv4地址最大的作为路由设备标识,如果没有配置IP地址的环回接口,那么OSPFv3将选取它所有的物理接口IPv4地址最大的作为路由设备标识。
退回全局配置模式
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
在接口上启动OSPFv3,指定Area ID
ipv6 ospf process-id area area-id [ instance instance-id ]
缺省情况下,接口上未启动OSPFv3。
在OSPFv3自治域中,所有区域都必须与主干区域连接,以保证能够正确学习到整个OSPFv3自治域的路由信息。如果一个区域无法直接与主干区域连接,可以使用虚拟连接使该区域同主干区域相连。
虚拟连接所在的区域不允许是Stub或者NSSA区域。
虚拟连接邻居两端上配置的参数中,hello-interval、dead-interval和instance都必须一致,否则虚拟邻居之间无法正确建立邻居关系。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置虚链路。
area area-id virtual-link router-id [ dead-interval dead-interval | hello-interval hello-interval | instance instance-id | retransmit-interval retransmit-interval | transmit-delay transmit-delay ] * [ authentication ipsec spi spi { md5 | sha1 | sha2-256 } [ 0 | 7 ] key | encryption ipsec spi spi esp [ 3des | aes-cbc { 128 | 192 | 256 } [ 0 | 7 ] des-key | des [ 0 | 7 ] des-key | null ] { md5 | sha1 } [ 0 | 7 ] key ]
缺省情况下,未配置虚链路。
物理网络为X.25、帧中继和ATM时,也可以运行OSPFv3协议,提供IPv6单播路由服务。
OSPFv3根据链路层协议类型将网络分为五种不同的类型,以不同的方式交换LSA、建立邻接关系。通过配置接口的网络类型,可以强制改变接口的网络类型。
广播网络以组播方式发送OSPFv3报文,自动发现邻居,需要选举DR和BDR。
P2P网络以组播方式发送OSPFv3报文,自动发现邻居。
NBMA网络以单播方式发送OSPFv3报文,必须手动指定邻居,需要选举DR和BDR。
P2MP网络(不携带non-broadcast参数)以组播方式发送OSPFv3报文,自动发现邻居。
P2MP网络(携带non-broadcast参数)以单播方式发送OSPFv3报文,必须手动指定邻居。
当广播网络类型中,需要选举DR/BDR。在选举DR/BDR时,优先级值高的设备将优先成为DR或BDR,如果优先级值相同,Router ID值高的设备,将优先成为DR或BDR。优先级值为0的设备,将不参与DR/BDR的选举。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口网络类型。
ipv6 ospf network { broadcast | non-broadcast | point-to-multipoint [ non-broadcast ] | point-to-point } [ instance instance-id ]
缺省情况下,未配置OSPFv3的接口类型。链路两端路由器都需要配置相同网络类型。
(可选)配置邻居。
ipv6 ospf neighbor ipv6-address [ cost cost | [ poll-interval poll-interval | priority value ] * ] [ instance instance-id ]
缺省情况下,未定义邻居。
(可选)配置接口优先级。
ipv6 ospf priority priority [ instance instance-id ]
缺省情况下,优先权值为1。
在OSPFv3域内引入其他AS域的单播路由,或者通往其他AS域的默认路由,为OSPFv3域内的用户提供到其他AS域的单播路由服务。引入路由的路由器会自动成为ASBR。
OSPFv3有两种外部路由,类型1外部路由的路由量度会改变,而类型2外部路由的路由量度是固定不变。到一个目标网络存在两条并行路径,同样的路由量度,类型1会比类型2优先级高,所以show ipv6 route只显示类型1的路由。
以下配置均可选,请根据实际情况配置
配置重分发外部路由
配置生成缺省路由
配置设备为ASBR
在AS边界路由器上需要引入OSPFv3域外路由时,配置重分发外部路由。
在AS边界路由器上配置redistribute。
重分发IS-IS协议路由时,允许后面配置level-1、level-2或level-1-2参数,表示重分发IS-IS路由中对应Level的路由,缺省情况为重分发Level-2类型的IS-IS路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置重分发外部路由。
redistribute { bgp | connected | isis [ area-tag ] [ level-1 | level-1-2 | level-2 ] * | ospf process-id [ match { external [ 1 | 2 ] | internal | nssa-external [ 1 | 2 ] } * ] | rip | static } [ metric metric-value | metric-type { 1 | 2 } | route-map route-map-name | tag tag-value ] *
缺省情况下,未配置路由重分布功能。Metric-type缺省为2。
重分发IS-IS时,缺省重分发Level-2路由。
重分发OSPFv3时,缺省重分发所有子类型的OSPFv3路由。缺省未关联route-map。
在AS边界路由器上需要引入默认路由,使得OSPFv3域内访问其他AS域默认通过该边界路由器。
当执行redistribute或者default-information命令时,OSPFv3路由设备会自动变为ASBR(自治域边界路由设备)。
redistribute无法产生缺省路由,并通告给OSPFv3路由域中的所有路由设备。ASBR产生缺省路由,必须用default-information originate路由进程配置命令进行配置。
如果选择always参数,不管核心路由表是否存在缺省路由,OSPFv3进程都会向邻居通告一条外部缺省路由。但是本地路由设备不会显示该缺省路由,可以用show ipv6 ospf database观察OSPFv3链路状态数据库确认是否产生缺省路由。OSPFv3的邻居通过执行show ipv6 route ospf命令可以看到缺省路由。
外部缺省路由的路由度量值,只能由default-information originate命令进行定义,不能通过命令default-metric设置。
Stub区域中的路由设备不可以产生外部缺省路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置生成缺省路由
default-information originate [ always | metric metric | metric-type type | route-map map ] *
缺省情况下,不产生缺省路由。
在AS域内或者AS边界配置某台设备为ASBR。
当执行redistribute或者default-information命令后,OSPFv3路由设备会自动变为ASBR。若未配置上述命令,也希望设备成为ASBR,则配置asbr enable。
若删除asbr enable配置,但redistribute或者default-information仍然有配置,则设备仍然是ASBR。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置设备为ASBR。
asbr enable
缺省情况下,设备为非ASBR。
将末梢区域设置为Stub区域,有助于减少路由信息的交互,缩小路由表规模,增强路由稳定性。Stub区域学习不到AS外部路由信息(Type 5 LSAs),而在实际应用中,外部路由信息在链路状态数据库中又占有很大比重,所以Stub区域内部设备将只学习到很少的路由信息,从而降低了运行OSPFv3协议所需要占用的系统资源。
希望减小区域内路由器的路由表规模,又希望本区域可以引入OSPFv3域外路由,需要将末梢区域设置为NSSA区域。
骨干区域、传输区域不能设置为Stub区域、NSSA区域。
Stub区域内路由器不能引入外部路由,NSSA区域内路由器可以引入外部路由。
如果一个区域处于整个网络的末梢部分,可以将该区域设计为Stub区域,Stub区域内所有的路由设备都必须执行area stub命令。
如果需要配置Totally Stub(完全Stub)区域,只需在ABR上执行area stub命令时,选择no-summary关键字。
如果需要配置Totally NSSA区域,可以在ABR上配置no-summary属性,禁止ABR向NSSA区域内发送Summary LSAs(Type-3 LSA)。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置OSPFv3特殊区域。请选择其中一项进行配置。
配置Stub区域。
area area-id stub [ no-summary ]
缺省情况下,Stub区域功能处于关闭状态。
配置NSSA区域。
area area-id nssa [ default-information-originate [ metric metric | metric-type metric-type ] * | no-redistribution | no-summary | translate type7 suppress-fa | translator [ always | stability-interval stability-interval ] * | zero-address-forwarding ] *
缺省情况下,NSSA区域功能处于关闭状态。
明细路由汇聚,减少路由信息的交互,缩小路由表规模,增强路由稳定性。
路由汇聚有两种:
区间路由汇聚是对OSPFv3区域之间路由进行汇聚。
外部路由汇聚是对OSPFv3路由域的外部路由进行汇聚。
汇总路由的地址范围有可能超出路由表中实际的网络范围,如果数据发往汇总范围内不存在的网络,将有可能发生路由环路或加重路由设备的处理负担。为阻止这种情况的发生,需要向路由表中添加一条Discard路由屏蔽或者过滤路由。
区间路由汇聚在ABR上配置,并且只在ABR上有效。
外部路由汇聚在引路由的ASBR上配置。
summary-prefix命令配置在NSSA的ABR转换者上时,汇聚重分布的路由及LSA从7类转5类的路由,而配置在ASBR(非NSSA的ABR转换者)时,只汇聚重分布的路由。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)配置区间路由汇聚。
area area-id range ipv6-prefix/prefix-length [ advertise | not-advertise ]
缺省情况下,不进行区间路由汇聚。
(可选)配置外部路由汇聚。
summary-prefix ipv6-prefix/prefix-length [ [ cost cost | tag tag-value ] * | not-advertise ]
缺省情况下,汇聚路由处于关闭状态。
路由过滤可以限制路由被加载到路由表或被传播给邻居,网络内用户将无法访问指定的目的网络。
路由过滤有如下三种方式:
当一个接口被设置为被动接口,将不再接收和发送Hello报文。
ASBR引入外部路由时。
若需要限制用户访问指定的目的网络,配置distribute-list in过滤收到的LSA计算出的路由,满足过滤条件的路由才能用于转发。它并不会影响链路状态数据库,对邻居的路由表也不会产生任何影响。
passive-interface只对参与OSPFv3运行的接口生效,且对虚链路不生效。
distribute-list out一般与redistribute命令配合使用。ACL过滤规则和前缀列表过滤规则不能在本配置中共存,即若对某一来源的路由使用ACL过滤规则,则不能再配置前缀列表进行过滤。
通过distribute-list in过滤只影响本地路由转发,不影响LSA计算路由。因此,如果确定需要在ABR上配置过滤,则由于LSA仍然可以计算出路由,仍会生产Type-3 LSA往其他区域通告,这将导致黑洞路由存在。这时可以在ABR上使用area filter-list或area range带not-advertise选项来避免产生黑洞路由。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)配置被动接口。
passive-interface { default | interface-type interface-number }
缺省情况下,接口的被动模式处于关闭状态,允许所有接口收发OSPFv3报文。
distribute-list { acl-name | prefix-list prefix-list-name } out [ bgp | connected | isis [ area-tag ] | ospf process-id | rip | static ]
缺省情况下,重分布路由过滤功能处于关闭状态,即重分布路由全通过。
配置对学习的路由过滤。
distribute-list { acl-name | prefix-list prefix-list-name | route-map route-map-name } in [ interface-type interface-number ]
缺省情况下,LSA计算的路由过滤功能处于关闭状态,即LSA计算出的路由全通过。
实际网络中,管理员希望能够控制OSPFv3路由,使流量经过或避开某些节点,或者调整某一类OSPFv3路由的优先级。
调整OSPFv3选路的方式有如下两个方式:
调整开销值
配置参考带宽
配置接口开销
配置Stub/NSSA缺省路由开销
配置重分布路由开销
修改管理距离
使用本功能前必须配置OSPFv3基本功能。
调整OSPF选路的配置任务如下,以下配置均可选,请根据实际情况配置:
配置参考带宽
配置接口开销值
配置Stub/NSSA区域缺省路由的Cost值
配置重分布路由缺省度量值
配置管理距离
OSPFv3参考带宽缺省值为100Mbps,开销为参考带宽/实际带宽,在千兆和万兆网络环境中,计算出的开销值均为1,缺省带宽值无法适应如今高速传输网络。路由器连接不同带宽的线路,若希望优先选择带宽大的线路,建议根据实际带宽调整配置。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置参考带宽。
auto-cost reference-bandwidth reference-bandwidth
缺省情况下,接口的度量计算的带宽参考值为100Mbps。
修改OSPFv3的接口开销可以优化路由选路,链路的开销值越低,选路时的优先级越高。
缺省情况下,OSPFv3接口开销值等于自动代价参考值/接口带宽。
路由器连接多条线路,若希望手动指定优先的线路,建议配置。
使用auto-cost命令自动代价参考值。缺省值100Mbps。
使用bandwidth命令设置接口带宽。
几种典型线路的OSPF接口开销缺省值为:
64K串行线路,Cost为1562;
E1线路,Cost为48;
10M以太网,Cost为10;
100M以太网,Cost为1。
如果用命令ipv6 ospf cost设置了接口的开销,则将覆盖自动代价算出的开销。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口开销值。
ipv6 ospf cost cost [ instance instance-id ]
缺省情况下,OSPFv3接口开销值为100Mbps/Bandwidth,其中Bandwidth为接口的带宽,通过接口配置命令bandwidth进行设置。
区域设置为Stub/NSSA区域后,ABR会向Stub/NSSA区域通告缺省路由,保证Stub/NSSA区域到其他区域路由可达。缺省路由的缺省开销值为1,希望降低缺省路由的选路优先级时,可以将该值调大。
只有在Stub区域的ABR或NSSA区域的ABR/ASBR上配置才能生效。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置Stub/NSSA区域缺省路由的Cost值。
area area-id default-cost cost
缺省情况下,路由的开销值为1。
重分发外部路由时,可以调整外部路由开销值,以灵活调整路由选路。
在ASBR上引入域外路由时,若需要指定域外路由的代价,必须配置。
default-metric命令必须与redistribute路由进程配置命令配合使用,可以修改所有重分布路由的初始化量度值。
default-metric命令的设置,对以default-information originate方式注入OSPFv3路由域的外部路由不起作用。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置重分布路由缺省度量值。
default-metric metric
缺省情况下,重分布路由的量度值为20。
管理距离是在使用多种路由协议去往同一个目标时,用来选择最佳路径的功能。管理距离定义了路由协议的可靠性。管理距离越低,可靠性越高,路由选择的优先级越高。OSPFv3域内路由,域间路由和域外路由的管理距离缺省值都为110,可以设定不同的管理距离来控制路由选择。
在同时运行多种单播路由协议的路由器上,若希望改变OSPFv3路由的优先级,必须配置。
若要指定OSPF不同类型路由对应不同管理距离时,用此命令。
管理距离越小,路由优先级越高。管理距离设置为255,表示路由表项不可信,将不参与报文转发。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置管理距离。
distance { distance | ospf { external distance | inter-area distance | intra-area distance } * }
缺省情况下,所有OSPFv3路由管理距离均为110。
通过调整OSPFv3报文传输时间和路由计算时延,从而调整OSPFv3网络收敛速度。
使用本功能前必须配置OSPFv3基本功能。
以下配置均可选,请根据实际情况配置
配置OSPFv3报文传输时间
配置OSPFv3路由计算时间
通过调整OSPFv3接口的Hello、Dead和LSU传输时间,来控制OSPFv3路由的收敛速度。
Hello时间
Hello时间越短,OSPFv3检测到拓扑变化的时间也将越快,但是将增加网络流量。
邻居失效时间缺省为Hello报文时间间隔的4倍,如果修改了Hello时间间隔,会自动修改邻居失效时间。
邻居失效时间不得小于Hello间隔时间。
同一网段上的所有路由设备的Hello报文时间间隔和邻居失效时间必须一致。
邻居失效时间
失效时间间隔,不能小于Hello报文时间间隔。
同一网段上的所有路由设备的失效时间间隔必须一致。
设置transmit-delay必须考虑到该接口的发送和线路传播时延,对于低速线路,接口的传输延时应该设置得大于缺省值。
retransmit-interval命令定义的时间内,没有得到邻居的确认,将重新发送LSU。为了避免不必要的重传,在串行线路或虚拟链路上,可以将重传时间设置得大于缺省值。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
(可选)配置Hello时间。
ipv6 ospf hello-interval hello-interval [ instance instance-id ]
缺省情况下,广播网络与点对点网络Hello时间为10秒;点对多点网络与NBMA网络Hello时间为30秒。
(可选)配置Dead时间。
ipv6 ospf dead-interval { dead-interval | minimal hello-multiplier multiplier } [ instance instance-id ]
缺省情况下,Fast Hello功能处于关闭状态,邻居失效时间为hello报文发送间隔的4倍。
(可选)配置LSU发送延迟。
ipv6 ospf transmit-delay transmit-delay [ instance instance-id ]
缺省情况下,LSU的传输延时为1秒。
(可选)配置LSU重传间隔。
ipv6 ospf retransmit-interval retransmit-interval [ instance instance-id ]
缺省情况下,重传时间间隔为5秒。
通过调整OSPFv3的LSA生成时间、LSA分组刷新时间,SPF计算时间和路由计算时间,来控制OSPFv3路由的收敛速度。
LSA生成时间
对链路变化时收敛性要求较高时,delay-time可以配置为较小值。若希望减少CPU消耗,可以把几个值适当调高。
hold-time不允许小于delay-time,max-wait-time也不允许小于hold-time。
LSA分组刷新时间
每个LSA都有各自的生存时间,当生存时间达到1800秒时,需要进行重刷新以防止正常的LSA通告达到最大生存时间而被清除掉。如果对每个LSA都独立进行LSA的更新和老化计算,将消耗大量的CPU资源。为了有效利用CPU资源,将设备内LSA分组进行刷新操作。一个分组刷新操作的时间间隔为组步调间隔,分组刷新操作即将一个组步调间隔内需要刷新的LSA编成一组统一刷新。
在LSA数量一定的情况下,步调时间间隔越大,定时器期满后处理的LSA数量越多。为了保持CPU的稳定,建议每次期满处理的LSA数量不宜太多,所以如果LSA数量较大,建议降低步调间隔。比如,数据库中有10000条LSA,可以降低步调时间间隔,如果只有40~100条,则可以调整到10~20分钟。
LSA分组发送间隔。
环境中LSA数量很多,设备本身负荷太大时,配置适当的transimit-time和transimit-count可以抑制网络中洪泛的LS-UPD报文数量。CPU负荷不高,网络带宽负荷不大时,减小transimit-time增加transimit-count可以加快环境的收敛。
SPF计算时间
spf-delay和spf-holdtime可以设置小些以加快拓扑的收敛,spf-max-waittime可以设置大些以减少SPF计算。
spf-holdtime的值不能小于spf-delay,否则spf-holdtime的值将被自动设置为与spf-delay相等。
spf-max-waittime的值不能小于spf-holdtime,否则spf-max-waittime的值将被自动设置为与spf-holdtime相等。
timers throttle spf配置与timers spf配置会互相覆盖。
当timers spf与timers throttle spf都未配置时,缺省值参见timers throttle spf配置的缺省值。
区间、外部路由计算延时时间
对于存在大量区间、外部路由的网络,且网络不稳定时,可调整相应的延时时间,优化路由计算,减轻设备负担。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)配置LSA生成时间。
timers throttle lsa all delay-time hold-time max-wait-time
缺省情况下,LSA生成的最小延迟时间为0毫秒,首次与第2次刷新LSA最短时间间隔为5000毫秒,连续刷新LSA最大时间间隔为5000毫秒。
(可选)设置LSA分组刷新时间。
timers pacing lsa-group update-time
缺省情况下,LSA分组刷新时间为30秒。
(可选)配置LSA分组发送间隔。
timers pacing lsa-transmit transmit-time transmit-count
缺省情况下,LSA分组发送间隔为40毫秒,每组LS-UPD报文数量为1个。
(可选)配置SPF计算时间。
timers throttle spf spf-delay spf-holdtime spf-max-waittime
缺省情况下,SPF计算的等待时间为50毫秒,两次SPF运算之间的最小时间间隔为200毫秒,两次SPF运算之间的最大时间间隔为5000毫秒。
(可选)配置区间、外部路由计算延时时间。
timers throttle route { ase ase-delay | inter-area ia-delay }
缺省情况下,区间路由计算延时为0毫秒,外部路由计算延时为0毫秒。
(可选)配置LSA重复接收延迟。
timers lsa arrival arrival-time
缺省情况下,重复接收延时为1000毫秒。
OSPFv3利用IPv6提供的认证机制,即IP认证头部(AH)和IP封装安全负载(ESP),来阻止非法接入网络的路由器和伪造OSPFv3报文的主机参与OSPFv3路由交换。
在区域上配置认证,则在属于此区域的所有接口上生效。
OSPFv3区域,接口配置认证优先级:OSPFv3区域下认证 < 接口下认证。
使用本功能前必须配置OSPFv3基本功能。
以下配置均可选,请根据实际情况配置
配置区域认证和加密
配置接口认证和加密
使用区域认证和加密时,区域中所有设备的认证模式和口令都需要保持一致,以保证邻居关系正常建立。
设备可以支持四种认证类型:
不要求认证(未配置认证时)
MD5认证模式
SHA1认证模式
SHA2-256认证模式
设备可以支持三种加密类型:
DES加密模式
3DES加密模式
AES-CBC模式
OSPFv3配置区域加密认证,则对该区域内的所有接口生效(虚链路除外),但是接口配置加密认证优先。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)配置区域认证。
area area-id authentication ipsec spi spi { md5 [ string-key ] | sha1 | sha2-256 } [ 0 | 7 ] key
缺省情况下,OSPFv3区域认证功能处于关闭状态。
(可选)配置区域加密认证。
area area-id encryption ipsec spi spi esp { { 3des | aes-cbc { 128 | 192 | 256 } | des } [ 0 | 7 ] des-key | null } { md5 | sha1 } [ 0 | 7 ] key
缺省情况下,加密认证处于关闭状态。
接口认证用于邻居设备之间,优先级高于区域认证。邻居之间的认证模式和口令必须相同。
设备可以支持四种认证类型:
不要求认证(未配置认证时)
MD5认证模式
SHA1认证模式
SHA2-256认证模式
设备可以支持三种加密类型:
DES加密模式
3DES加密模式
AES-CBC模式
OSPFv3配置接口认证,接口配置的加密认证参数必须一致。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
(可选)配置接口认证。
ipv6 ospf authentication { ipsec spi spi { md5 [ string-key ] | sha1 | sha2-256 } [ 0 | 7 ] key | null } [ instance instance-id ]
缺省情况下,接口上没有设置认证方式,此时接口上采用的是所在区域的认证类型。
(可选)配置接口加密认证。
ipv6 ospf encryption { ipsec spi spi esp { { 3des | aes-cbc { 128 | 192 | 256 } | des } [ 0 | 7 ] des-key | null } { md5 | sha1 } [ 0 | 7 ] key | null } [ instance instance-id ]
缺省情况下,加密认证处于关闭状态。
除了Hello报文外,来自某个邻居的DD、LSU、LSR和LSAck报文也能够用于维持该邻居的双向关系,避免由于Hello报文的延迟或丢弃而导致邻居的失效。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置双向维持.
two-way-maintain
缺省情况下,OSPFv3双向维持功能处于开启状态。
OSPFv3协议通过Hello报文动态发现邻居。当OSPFv3启动BFD检测功能后,将会为达到Full关系的邻居建立BFD会话。通过BFD机制检测邻居状态,一旦BFD邻居失效,OSPFv3会立刻进行网络收敛。此项配置有助于缩短流量中断时间。
接口必须先配置BFD参数。
进程和接口同时配置BFD时,接口下的配置优先生效。
使用本功能前必须配置OSPFv3基本功能。
启动OSPFv3与BFD联动配置任务如下,以下配置均可选,请根据实际情况配置:
配置OSPFv3接口与BFD联动
配置OSPFv3全局与BFD联动
配置指定接口的BFD与OSPFv3联动,可以快速检测该接口故障,加快OSPFv3收敛速度。
接口配置BFD的优先级高于OSPFv3进程下配置BFD。
用户可以根据实际环境,通过ipv6 ospf bfd命令选择指定的接口使用BFD进行链路检测,也可以使用OSPFv3进程配置模式下的命令bfd all-interfaces配置参与OSPF运行的所有接口通过BFD进行链路检测,使用ipv6 ospf bfd disable选择关闭指定接口的BFD检测功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置OSPFv3接口与BFD联动。
ipv6 ospf bfd [ disable ]
缺省情况下,接口下的BFD功能处于关闭状态,以OSPFv3进程配置模式下的BFD配置为准。
OSPFv3协议通过Hello报文动态发现邻居,当OSPFv3启动BFD检测功能后,将会为达到Full关系的邻居建立BFD会话,通过BFD机制检测邻居状态,一旦BFD邻居失效,OSPFv3会立刻进行网络收敛。
用户也可以通过接口配置模式命令ipv6 ospf bfd [ disable ]启动或者关闭指定接口的BFD检测功能,接口配置的优先级高于进程配置模式下的bfd all-interfaces命令。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
进入OSPF配置模式与BFD联动。
bfd all-interfaces
缺省情况下,所有接口BFD功能处于关闭状态。
启用GR功能的路由器在控制层面的重启过程中转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能,从而避免了路由震荡引发的业务中断,提高了整网的可靠性。
GR Helper当邻居设备实施优雅重启时,将发送Grace-LSA通告其所有的邻居设备,如果本设备配置GR Helper能力,在收到GraceLSA时,会成为GR Helper,辅助邻居完成优雅重启。
邻居路由器必须支持GR Helper。
GR时间不能小于邻居路由器的邻居维持时间。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置GR功能。
graceful-restart [ grace-period grace-period | inconsistent-lsa-checking ]
缺省情况下,GR功能处于开启状态。
配置OSPFv3 GR Helper功能。
graceful-restart helper { disable | internal-lsa-checking | strict-lsa-checking }
缺省情况下,GR Helper能力处于开启状态。设备进入GR Helper后,不检查LSA变化。
NSR(Nonstop Routing,不间断路由)通过将OSPFv3的相关信息从分布式设备的主管理板备份到备用管理板,或者从VSU(Virtual Switching Unit,虚拟交换单元)的主机备份到从机,使设备在发生主备切换时可以自行完成链路状态的恢复和路由的重新生成,在恢复过程中不需要邻居设备的帮助。需要备份的信息包括邻接关系、链路状态等。
该命令用于开启NSR功能。同一个OSPFv3进程,NSR和GR只需开启一种,因此开启GR时将自动关闭NSR能力,开启NSR时将自动关闭GR能力,但不影响GR Helper能力。
分布式设备、VSU的切换需要一段时间,若OSPFv3的邻居到期时间比切换时间短,将导致邻居设备上OSPFv3邻居断开,切换期间业务中断。因此,开启NSR功能时,建议OSPFv3的邻居到期时间不小于默认配置。开启Fast Hello时,OSPFv3的邻居到期时间小于1秒,建议不开启NSR。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
启动NSR功能。
nsr
缺省情况下,NSR功能处于关闭状态。
开启4类LSA冲突检测,对收到4类LSA进行冲突检测。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
开启4类LSA冲突检测。
detect-conflict lsa-4
缺省情况下,4类LSA冲突检测功能处于关闭状态。
当路由设备与多个邻居同时交换数据,其性能受到影响时,可限制每个OSPFv3实例允许同时并发交互(发起或接受)的邻居最大数目。可在进程级别和设备级别分别设置最大邻居数量。
进入特权模式。
enable
进入全局配置模式。
configure terminal
(可选)配置所有进程并发邻居数。
ipv6 router ospf max-concurrent-dd number
缺省情况下,最大邻居数目为10。
进入OSPFv3路由进程配置模式。
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
(可选)配置当前进程并发邻居数。
max-concurrent-dd number
缺省情况下,单进程最大并发邻居数为5。
通过网管软件管理OSPFv3协议的参数及监控协议运行状态。
要开启OSPFv3的MIB功能,必须开启SNMP-server的MIB功能。
要开启OSPFv3的Trap功能,必须开启SNMP-server的Trap功能。
要输出OSPFv3的日记信息,必须开启设备的日记开关。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入OSPFv3配置模式
ipv6 router ospf [ process-id [ vrf vrf-name ] ]
配置MIB绑定。
enable mib-binding
缺省情况下,MIB绑定的进程为进程号最小的OSPFv3进程。
配置Trap。
enable traps [ error [ IfConfigError | IfRxBadPacket | VirtIfConfigError | VirtIfRxBadPacket ] * | state-change [ IfStateChange | NbrStateChange | NssaTranslatorStatusChange | VirtIfStateChange | VirtNbrStateChange | RestartStatusChange | NbrRestartHelperStatusChange | VirtNbrRestartHelperStatusChange ] * ]
缺省情况下,Trap开关处于关闭状态。
(可选)配置日记输出。
log-adj-changes [ detail ]
缺省情况下,日志记录处于开启状态,不带detail参数,只记录以下4类事件的日志信息:邻接状态达到Full状态;邻接状态离开Full状态;邻接状态达到Down状态;邻接状态离开Down状态。
OSPFv3在收到数据库描述报文时会校验邻居接口的MTU和本端接口的MTU是否相同。如果收到的数据库描述报文中指示的邻居接口的MTU大于本端接收接口的MTU,那么邻接关系将不能被建立。配置此功能后,相邻路由器的接口MTU不同,也能建立邻接关系,提供单播路由服务。
使用本功能前必须配置OSPFv3基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置关闭MTU校验。
ipv6 ospf mtu-ignore
缺省情况下,MTU校验处于关闭状态。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
同时还可以通过执行clear命令来清除各类信息。
注意
在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。
OSPFv3监视与维护
作用 |
命令 |
|---|---|
查看OSPFv3进程的配置信息 |
show ipv6 ospf [ process-id ] |
查看OSPFv3链路状态数据库 |
show ipv6 ospf [ process-id ] database [ lsa-type [ adv-router router-id ] ] |
查看LSA泛洪信息 |
show ipv6 ospf [ process-id ] flood [ normal | realtime | statistics ] |
查看运行OSPFv3的接口 |
show ipv6 ospf [ process-id ] interface [ interface-type interface-number | brief ] |
查看OSPFv3的邻居表 |
show ipv6 ospf [ process-id ] neighbor [ interface-type interface-number [ detail ] | neighbor-id | detail ] |
查看OSPFv3路由表 |
show ipv6 ospf [ process-id ] route [ count ] |
查看OSPFv3重分布路由的汇聚路由 |
show ipv6 ospf [ process-id ] summary-prefix |
查看OSPFv3网络拓扑信息 |
show ipv6 ospf [ process-id ] topology [ area area-id ] |
查看OSPFv3的虚链路 |
show ipv6 ospf [ process-id ] virtual-links |
清除并重启OSPFv3进程 |
clear ipv6 ospf [ process-id ] process |
打开OSPFv3事件的调试开关 |
debug ipv6 ospf events [ abr | asbr | os | nssa | router | vlink ] |
打开OSPFv3接口的调试开关 |
debug ipv6 ospf ifsm [ events | status | timers ] |
打开OSPFv3邻居的调试开关 |
debug ipv6 ospf nfsm [ events | status | timers ] |
打开OSPFv3 NSM的调试开关 |
debug ipv6 ospf nsm [ interface | redistribute | route ] |
打开OSPFv3 LSA的调试开关 |
debug ipv6 ospf lsa [ flooding | generate | install | maxage | refresh ] |
打开OSPFv3报文的调试开关 |
debug ipv6 ospf packet [ dd | detail | hello | ls-ack | ls-request | ls-update | recv | send ] |
打开OSPFv3路由的调试开关 |
debug ipv6 ospf route [ ase | ia | install | spf | time ] |
所有的设备都运行OSPFv3,一共划分3个区域,Device A和Device B作为ABR转发区域间路由,以此实现所有网络的互联互通。
OSPFv3基本功能组网图
在所有设备上配置接口IP地址。
在所有设备上启动IPv4单播路由功能(该功能默认已开启)。
在所有设备上配置OSPFv3实例、Router ID。
在所有设备接口上配置OSPFv3。
在设备A上配置。
# 启用OSPFv3进程,配置Router ID。
Device A> enable
Device A# configure terminal
Device A(config)# ipv6 router ospf 1
Device A(config-router)# router-id 1.1.1.1
Device A(config-router)# exit
# 配置接口IP,并在接口上配置OSPFv3。
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ipv6 enable
Device A(config-if-GigabitEthernet 0/1)# ipv6 address 2001:1::1/64
Device A(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# ipv6 enable
Device A(config-if-GigabitEthernet 0/2)# ipv6 address 2001:2::1/64
Device A(config-if-GigabitEthernet 0/2)# ipv6 ospf 1 area 1
Device A(config-if-GigabitEthernet 0/2)# exit
在设备B上配置。
# 启用OSPFv3进程,配置Router ID。
Device B> enable
Device B# configure terminal
Device B(config)# ipv6 router ospf 1
Device B(config-router)# router-id 2.2.2.2
Device B(config-router)# exit
# 配置接口IP,并在接口上配置OSPFv3。
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ipv6 enable
Device B(config-if-GigabitEthernet 0/1)# ipv6 address 2001:1::2/64
Device B(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# ipv6 enable
Device B(config-if-GigabitEthernet 0/2)# ipv6 address 2001:3::1/64
Device B(config-if-GigabitEthernet 0/2)# ipv6 ospf 1 area 2
Device B(config-if-GigabitEthernet 0/2)# exit
在设备C上配置。
# 启用OSPFv3进程,配置Router ID。
Device C> enable
Device C# configure terminal
Device C(config)# ipv6 router ospf 1
Device C(config-router)# router-id 3.3.3.3
Device C(config-router)# exit
# 配置接口IP,并在接口上配置OSPFv3。
Device C(config)# interface gigabitethernet 0/3
Device C(config-if-GigabitEthernet 0/3)# ipv6 enable
Device C(config-if-GigabitEthernet 0/3)# ipv6 address 2001:2::2/64
Device C(config-if-GigabitEthernet 0/3)# ipv6 ospf 1 area 1
Device C(config-if-GigabitEthernet 0/3)# exit
在设备D上配置。
# 启用OSPFv3进程,配置Router ID。
Device D> enable
Device D# configure terminal
Device D(config)# ipv6 router ospf 1
Device D(config-router)# router-id 4.4.4.4
Device D(config-router)# exit
# 配置接口IP,并在接口上配置OSPFv3。
Device D(config)# interface gigabitethernet 0/3
Device D(config-if-GigabitEthernet 0/3)# ipv6 enable
Device D(config-if-GigabitEthernet 0/3)# ipv6 address 2001:3::2/64
Device D(config-if-GigabitEthernet 0/3)# ipv6 ospf 1 area 2
Device D(config-if-GigabitEthernet 0/3)# exit
在Device A上查看。
# OSPFv3邻居信息。
Device A# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
2.2.2.2 1 Full/BDR 00:00:30 0 GigabitEthernet 0/1
3.3.3.3 1 Full/BDR 00:00:35 0 GigabitEthernet 0/2
# OSPFv3路由表。
Device A# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O IA 2001:3::/64 [110/20] via FE80::2D0:F8FF:FE22:4524, GigabitEthernet 0/1
在设备B上查看。
# OSPFv3邻居信息。
Device B# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
1.1.1.1 1 Full/DR 00:00:30 0 GigabitEthernet 0/1
4.4.4.4 1 Full/BDR 00:00:35 0 GigabitEthernet 0/2
# OSPFv3路由表。
Device B# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O IA 2001:2::/64 [110/20] via FE80::2D0:F8FF:FE22:4536, GigabitEthernet 0/1
在设备C上查看。
# OSPFv3邻居信息。
Device C# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
1.1.1.1 1 Full/DR 00:00:30 0 GigabitEthernet 0/3
# OSPFv3路由表。
Device C# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O IA 2001:1::/64 [110/2] via FE80::2D0:F8FF:FE22:4537, GigabitEthernet 0/3
O IA 2001:3::/64 [110/3] via FE80::2D0:F8FF:FE22:4537, GigabitEthernet 0/3
在设备D上查看。
# OSPFv3邻居信息。
Device D# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
2.2.2.2 1 Full/DR 00:00:30 0 GigabitEthernet 0/3
# OSPFv3路由表。
Device D# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O IA 2001:1::/64 [110/2] via FE80::2D0:F8FF:FE22:4547, GigabitEthernet 0/3
O IA 2001:2::/64 [110/3] via FE80::2D0:F8FF:FE22:4547, GigabitEthernet 0/3
# Device D上ping 2001:2::2/64正确。
Device D# ping 2001:2::2
Sending 5, 100-byte ICMP Echoes to 2001:2::2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/9/14 ms.
Device A的配置文件。
!
ipv6 router ospf 1
router-id 1.1.1.1
!
interface gigabitethernet 0/1
ipv6 enable
ipv6 address 2001:1::1/64
ipv6 ospf 1 area 0
!
interface gigabitethernet 0/2
ipv6 enable
ipv6 address 2001:2::1/64
ipv6 ospf 1 area 1
!
Device B的配置文件。
!
ipv6 router ospf 1
router-id 2.2.2.2
!
interface gigabitethernet 0/1
ipv6 enable
ipv6 address 2001:1::2/64
ipv6 ospf 1 area 0
!
interface gigabitethernet 0/2
ipv6 enable
ipv6 address 2001:3::1/64
ipv6 ospf 1 area 2
!
Device C的配置文件。
!
ipv6 router ospf 1
router-id 3.3.3.3
!
interface gigabitethernet 0/3
ipv6 enable
ipv6 address 2001:2::2/64
ipv6 ospf 1 area 1
!
Device D的配置文件。
!
ipv6 router ospf 1
router-id 4.4.4.4
!
interface gigabitethernet 0/3
ipv6 enable
ipv6 address 2001:3::2/64
ipv6 ospf 1 area 2
!
接口没有配置IPv6。
IPv6单播路由功能被关闭,OSPFv3协议无法启用。
相连接口配置的区域号不一致。
多台设备上配置了相同的Router ID,导致Router ID冲突。
Device A和Device B之间运行OSPFv3,为提高OSPFv3网络的安全性,配置MD5认证。
OSPFv3认证配置组网图
所有设备接口配置MD5认证。
配置OSPFv3基本功能。(略)
接口配置OSPFv3认证。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ipv6 ospf authentication ipsec spi 256 md5 01234567890123456789012345678912
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ipv6 ospf authentication ipsec spi 256 md5 01234567890123456789012345678912
确认Device A和Device B邻居是否正常建立。
查看Device A的邻居信息。
Device A# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
2.2.2.2 1 Full/DR 00:00:38 0 GigabitEthernet 0/1
查看Device B的邻居信息。
Device B# show ipv6 ospf neighbor
OSPFv3 Process (1), 1 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Instance ID Interface
1.1.1.1 1 Full/BDR 00:00:38 0 GigabitEthernet 0/1
Device A的配置文件。
!
interface gigabitethernet 0/1
ipv6 ospf authentication ipsec spi 256 md5 01234567890123456789012345678912
!
Device B的配置文件。
!
interface gigabitethernet 0/1
ipv6 ospf authentication ipsec spi 256 md5 01234567890123456789012345678912
!
配置的认证方式不一致。
配置的认证密钥不一致
Device A、B、C、D之间通过OSPFv3路由协议互联。
Device A和Device B作为ABR负责OSPFv3区域间路由信息传递,Device D作为ASBR引入了外部静态路由。
为减少Area 1内LSA数量,节约设备性能,Area 1配置成Totally Stub区域。
Stub区域配置组网图
所有设备接口配置IPv6。
所有设备配置OSPFv3基本功能。
Device D上配置引入外部静态路由。
Device A、C上区域1配置成Stub类型。
所有设备配置接口配置IPv6,所有设备配置OSPFv3基本功能。(略)
Device D上配置引入外部静态路由。
Device D> enable
Device D# configure terminal
Device D(config)# ipv6 router ospf 1
Device D(config-router)# redistribute static
Device A上区域1配置成Stub类型,并过滤Type 3 LSA。
Device A> enable
Device A# configure terminal
Device A(config)# ipv6 router ospf 1
Device A(config-router)# area 1 stub no-summary
Device C上区域1配置成Stub类型。
Device C> enable
Device C# configure terminal
Device C(config)# ipv6 router ospf 1
Device C(config-router)# area 1 stub
在Device C上使用show ipv6 route ospf查看路由表,只有一条默认区间路由,没有D引入的外部静态路由。
Device C# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O IA::/0 [110/3] via FE80::2D0:F8FF:FE22:4547, GigabitEthernet 0/2
Device A的配置文件。
!
ipv6 router ospf 1
area 1 stub no-summary
!
Device C的配置文件。
!
ipv6 router ospf 1
area 1 stub
!
Device D的配置文件。
!
ipv6 router ospf 1
redistribute static
!
同一区域中的设备,区域类型配置不一致。
在Stub区域中配置路由重分布,将无法加入外部路由。
Device A、B、C、D之间通过OSPFv3路由协议互联。
Device A和Device B作为ABR负责OSPFv3区域间路由信息传递,Device D作为ASBR引入了外部静态路由。
为减少Area 2内LSA数量,节约设备性能,Area 2配置成NSSA区域。
NSSA区域配置组网图
所有设备配置接口配置IPv6。
所有设备配置OSPFv3基本功能。
Device D上配置引入外部静态路由。
Device B、D上区域2配置成NSSA类型。
所有设备接口配置IPv6,所有设备配置OSPFv3基本功能。(略)
Device D上配置引入外部静态路由。并将区域2配置成NSSA类型。
Device D> enable
Device D# configure terminal
Device D(config)# ipv6 router ospf 1
Device D(config-router)# area 2 nssa
Device D(config-router)# redistribute static
Device B上区域2配置成NSSA类型。
Device B> enable
Device B# configure terminal
Device B(config)# ipv6 router ospf 1
Device B(config-router)# area 2 nssa
在Device D上使用show ipv6 ospf database查看数据库,有生成7类LSA。
Device D# show ipv6 ospf database nssa-external
OSPFv3 Router with ID (1.1.1.1) (Process 1)
NSSA-external-LSA (Area 0.0.0.1)
LS age: 1196
LS Type: NSSA-external-LSA
Link State ID: 0.0.0.3
Advertising Router: 1.1.1.1
LS Seq Number: 0x80000004
Checksum: 0x1F25
Length: 52
Metric Type: 2 (Larger than any link state path)
Metric: 20
Prefix: 2001:10::/64
Prefix Options: 8 (P|-|-|-)
Forwarding Address: 4000::1
在Device A上使用show ipv6 route ospf查看路由表,有D引入的外部静态路由。
Device A# show ipv6 route ospf
IPv6 routing table name - Default - 0 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area
O N2 2001:10::/64 [110/20] via FE80::2D0:F8FF:FE22:4547, GigabitEthernet 0/1
Device B的配置文件。
!
ipv6 router ospf 1
area 2 nssa
!
Device D的配置文件。
!
ipv6 router ospf 1
area 2 nssa
redistribute static
!
同一区域中的设备,区域类型配置不一致。
Device A、B、C在同一个广播网络中。
配置Device A的优先级为10,成为DR,Device B的优先级为5,成为BDR,Device C的优先级为0,不参与DR选举。
OSPFv3的DR选择配置举例组网图
所有设备接口配置IPv6。
所有设备配置OSPFv3基本功能。
修改各个设备DR选举优先级。
OSPFv3基本功能配置。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# ipv6 router ospf 1
Device A(config-router)# router-id 1.1.1.1
Device A(config-router)# exit
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# ipv6 router ospf 1
Device B(config-router)# router-id 2.2.2.2
Device B(config-router)# exit
# Device C的配置。
Device C> enable
Device C# configure terminal
Device C(config)# ipv6 router ospf 1
Device C(config-router)# router-id 3.3.3.3
Device C(config-router)# exit
配置接口IP,配置OSPFv3,并修改各个设备DR选举优先级。
# Device A的配置。
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ipv6 address 2001::1/64
Device A(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device A(config-if-GigabitEthernet 0/1)# ipv6 ospf priority 10
# Device B的配置。
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ipv6 address 2001::2/64
Device B(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device B(config-if-GigabitEthernet 0/1)# ipv6 ospf priority 5
# Device C的配置。
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ipv6 address 2001::3/64
Device C(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device C(config-if-GigabitEthernet 0/1)# ipv6 ospf priority 0
在Device C上使用show ipv6 ospf interface命令查看DR和BDR
Device C# show ipv6 ospf interface
GigabitEthernet 0/1 is up, line protocol is up
Interface ID 4098
IPv6 Prefixes
fe80::250:56ff:feb5:820b/64 (Link-Local Address)
2001::3/64
OSPFv3 Process (1), Area 0.0.0.0, Instance ID 0
Router ID 3.3.3.3, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DROther, Priority 0
Designated Router (ID) 1.1.1.1
Interface Address fe80::250:56ff:feb5:694e
Backup Designated Router (ID) 2.2.2.2
Interface Address fe80::250:56ff:feb5:fdb4
Timer interval configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Neighbor Count is 2, Adjacent neighbor count is 2
Hello received 73 sent 39, DD received 8 sent 7
LS-Req received 1 sent 2, LS-Upd received 9 sent 5
LS-Ack received 5 sent 5, Discarded 6
在Device A上使用show ipv6 ospf neighbor命令看到广播网络中的DROther为Device C。
Device A# show ipv6 ospf neighbor
OSPFv3 Process (1), 2 Neighbors, 2 is Full:
Neighbor ID Pri State BFD State Dead Time Instance ID Interface
2.2.2.2 5 Full/BDR - 00:00:36 0 GigabitEthernet 0/1
3.3.3.3 0 Full/DROther - 00:00:38 0 GigabitEthernet 0/1
Device A的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 2001::1/64
ipv6 ospf priority 10
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 1.1.1.1
graceful-restart
!
Device B的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 2001::2/64
ipv6 ospf priority 5
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 2.2.2.2
graceful-restart
!
Device C的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 2001::3/64
ipv6 ospf priority 0
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 3.3.3.3
graceful-restart
!
Device A、B、C通过OSPFv3互联互通。
Device A到3::3的主链路为Device ADevice C,备份链路为Device ADevice BDevice C。
当Device A到Device C的链路故障时,BFD能够感知并告诉OSPFv3,快速切换到备份链路。
BFD for OSPFv3配置举例
所有设备接口配置IPv6。
所有设备配置OSPFv3基本功能。
OSPFv3路由进程下开启BFD功能。
配置接口IP以及配置OSPFv3基本功能。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# ipv6 address 12::1/64
Device A(config-if-GigabitEthernet 0/2)# ipv6 ospf 1 area 0
Device A(config-if-GigabitEthernet 0/2)# exit
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ipv6 address 13::1/64
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# ipv6 router ospf 1
Device A(config-router)# router-id 1.1.1.1
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ipv6 address 12::2/64
Device B(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# ipv6 address 23::2/64
Device B(config)# ipv6 router ospf 1
Device B(config-router)# router-id 2.2.2.2
# Device C的配置。
Device C> enable
Device C# configure terminal
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ipv6 address 13::3/64
Device C(config-if-GigabitEthernet 0/1)# ipv6 ospf 1 area 0
Device C(config-if-GigabitEthernet 0/1)# exit
Device C(config)# interface gigabitethernet 0/2
Device C(config-if-GigabitEthernet 0/2)# ipv6 address 23::3/64
Device C(config-if-GigabitEthernet 0/2)# ipv6 ospf 1 area 0
Device C(config-if-GigabitEthernet 0/2)# exit
Device C(config)# ipv6 router ospf 1
Device C(config-router)# router-id 3.3.3.3
OSPFv3路由进程下开启BFD功能。
# Device A的配置。
Device A(config-router)# bfd all-interfaces
# Device B的配置。
Device B(config-router)# bfd all-interfaces
# Device C的配置。
Device C(config-router)# bfd all-interfaces
网络正常时。
# Device A路由表信息。
Device A# show ipv6 route ospf
IPv6 routing table name - Default - 11 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area, EV - BGP EVPN, N - Nd to host
O 3::3/128 [110/1] via FE80::2D0:F8FF:FE22:358D, GigabitEthernet 0/1
O 23::/64 [110/2] via FE80::2D0:F8FF:FE22:358D, GigabitEthernet 0/1
[110/2] via FE80::274:9CFF:FEEE:53CB, GigabitEthernet 0/2
# Device A上traceroute 3::3。
Device A# traceroute 3::3
< press Ctrl+C to break >
Tracing the route to 3::3
1 3::3 5 msec 8 msec 10 msec
Device A到Device C链路故障时。
# Device A路由表信息。
Device A# show ipv6 route ospf
IPv6 routing table name - Default - 7 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area, EV - BGP EVPN, N - Nd to host
O 3::3/128 [110/2] via FE80::274:9CFF:FEEE:53CB, GigabitEthernet 0/2
O 23::/64 [110/2] via FE80::274:9CFF:FEEE:53CB, GigabitEthernet 0/2
# Device A上traceroute 3::3。
Device A# traceroute 3::3
< press Ctrl+C to break >
Tracing the route to 3::3
1 12::2 6 msec 9 msec 9 msec
2 3::3 7 msec 9 msec 10 msec
Device A的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 13::1/64
ipv6 ospf 1 area 0
!
interface gigabitethernet 0/2
ipv6 address 12::1/64
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 1.1.1.1
graceful-restart
bfd all-interfaces
!
Device B的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 12::2/64
ipv6 ospf 1 area 0
!
interface gigabitethernet 0/2
ipv6 address 23::2/64
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 2.2.2.2
graceful-restart
bfd all-interfaces
!
Device C的配置文件。
!
interface gigabitethernet 0/1
ipv6 address 13::3/64
ipv6 ospf 1 area 0
!
interface gigabitethernet 0/2
ipv6 address 23::3/64
ipv6 ospf 1 area 0
!
ipv6 router ospf 1
router-id 3.3.3.3
graceful-restart
bfd all-interfaces
!
Device A和Device B位于OSPFv3 Area 0,Device A和Decice C位于OSPFv3 Area 1。在Device C上引入2条静态路由。为减小路由条目,Device C会将引入的静态路由聚合成为2001:3::/32后发布到OSPFv3域,Decice A将Area 1路由汇聚成2001:13::/32后,通告给OSPFv3邻居。
OSPFv3路由聚合配置举例组网图
所有设备接口配置IPv6。
所有设备配置OSPFv3基本功能。
Device C重分发两条静态路由,并配置域外路由汇聚。
Device A对Area 1路由进行汇聚。
OSPFv3基本功能配置(略)。
Device C重分发静态路由,并将重分发路由汇聚成2001:3::/32。
Device C> enable
Device C# configure terminal
Device C(config)# ipv6 router ospf 1
Device C(config-router)# redistribute static
Device C(config-router)# summary-prefix 2001:3::/32
Device A将Area 1路由汇聚成2001:13::/32。
Device A> enable
Device A# configure terminal
Device A(config)# ipv6 router ospf 1
Device A(config-router)# area 1 range 2001:13::/32
Device A上查看OSPFv3路由,只能查看到汇聚的静态路由,查看不到明细静态路由信息。
Device A# show ipv6 route ospf
IPv6 routing table name - Default - 11 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area, EV - BGP EVPN, N - Nd to host
O E2 2001:3::/32 [110/20] via FE80::250:56FF:FEB5:7BF5, GigabitEthernet 0/2
O 2001:13::/32 [110/0] via ::1, Null0
Device B上查看OSPFv3路由,只能查看到Area 1汇聚后的路由信息,查看不到明细路由信息。
Device B# show ipv6 route ospf
IPv6 routing table name - Default - 7 entries
Codes: C - Connected, L - Local, S - Static
R - RIP, O - OSPFv3, B - BGP, I - IS-IS, V - Overflow route
N1 - OSPFv3 NSSA external type 1, N2 - OSPFv3 NSSA external type 2
E1 - OSPFv3 external type 1, E2 - OSPFv3 external type 2
SU - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
IA - Inter area, EV - BGP EVPN, N - Nd to host
O E2 2001:3::/32 [110/20] via FE80::250:56FF:FEB5:694E, GigabitEthernet 0/1
O IA 2001:13::/32 [110/2] via FE80::250:56FF:FEB5:694E, GigabitEthernet 0/1
Device A的配置文件。
!
router-id 1.1.1.1
graceful-restart
area 1 range 2001:13::/32
!
Device C的配置文件。
!
router-id 3.3.3.3
graceful-restart
redistribute static
summary-prefix 2001:3::/32
!