OSPFv3是在RFC2740规定。之间存在着对RIPv2和RIPng的OSPFv3的关系,以OSPFv2的一些高层次的相似性。最重要的是,OSPFv3的使用与OSPFv2the SPF算法,泛洪,DR选举,地区等,同样的基本机制。常量和如定时器和度量变量也一样。另一种是相似的RIPng对RIPv2的关系是,OSPFv3是不与OSPFv2的向后兼容。因此,如果你想使用OSPF路由IPv4和IPv6,则必须同时运行OSPFv2的和OSPFv3的。
OSPFv3和OSPFv2在很多方面是相同的:
1.Router ID,Area ID仍然是32位的。
2.相同类型的报文:Hello报文,DD(Database Description,数据库描述)报文,LSR(Link State Request,链路状态请求)报文,LSU(Link State Update,链路状态更新)报文和LSAck(Link State Acknowledgment,链路状态确认)报文。
3.相同的邻居发现机制和邻接形成机制。
4.相同的LSA扩散机制和老化机制。
不同:
1.OSPFv3是基于链路(Link)运行,OSPFv2是基于网段(Network)运行。
2.OSPFv3在同一条链路上可以运行多个实例。
3.OSPFv3是通过Router ID来标识邻接的邻居。OSPFv2则是通过IP地址来标识邻接的邻居。
OSPFv3的协议报文
和OSPFv2一样,OSPFv3也有五种报文类型,分别是Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
这五种报文有相同的报文头,但是它和OSPFv2的报文头有一些区别,其长度只有16字节,且没有认证字段。另外就是多了一个Instance ID字段,用来支持在同一条链路上运行多个实例。
Version #:OSPF的版本号。对于OSPFv3来说,其值为3。
Type:OSPF报文的类型。数值从1到5,分别对应Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
Packet Length:OSPF报文的总长度,包括报文头在内,单位为字节。
Instance ID:同一条链路上的实例标识。
0:保留位,必须为0。
OSPFv3的LSA类型:
LSA(Link State Advertisement,链路状态通告)是OSPFv3协议计算和维护路由信息的主要来源。在RFC2740中定义了七类LSA。
1.Router-LSA:由每个路由器生成,描述本路由器的链路状态和开销,只在路由器所处区域内传播。
2.Network-LSA:由广播网络和NBMA(Non-Broadcast Multi-Access)网络的DR(Designated Router,指定路由器)生成,描述本网段接口的链路状态,只在DR所处区域内传播。
3.Inter-Area-Prefix-LSA:和OSPFv2中的Type-3 LSA类似,该LSA由ABR(Area Border Router,区域边界路由器)生成,在与该LSA相关的区域内传播。每一条Inter-Area-Prefix-LSA描述了一条到达本自治系统内其他区域的IPv6地址前缀(IPv6 Address Prefix)的路由。
4.Inter-Area-Router-LSA:和OSPFv2中的Type-4 LSA类似,该LSA由ABR生成,在与该LSA相关的区域内传播。每一条Inter-Area-Router-LSA描述了一条到达本自治系统内的ASBR(Autonomous System Border Router,自治系统边界路由器)的路由。
5.AS-external-LSA:由ASBR生成,描述到达其它AS(Autonomous System,自治系统)的路由,传播到整个AS(Stub区域除外)。缺省路由也可以用AS-external-LSA来描述。
6.Link-LSA:路由器为每一条链路生成一个Link-LSA,在本地链路范围内传播。每一个Link-LSA描述了该链路上所连接的IPv6地址前缀及路由器的Link-local地址。
7.Intra-Area-Prefix-LSA:每个Intra-Area-Prefix-LSA包含路由器上的IPv6前缀信息,Stub区域信息或穿越区域(Transit Area)的网段信息,该LSA在区域内传播。由于Router-LSA和Network-LSA不再包含地址信息,导致了Intra-Area-Prefix-LSA的引入。
OSPFv3报文定时器
Hello报文周期性地被发送至邻居路由器,用于发现与维持邻居关系、选举DR与BDR。需要注意的是,网络邻居间的Hello时间间隔必须一致,并且Hello时钟的值与路由收敛速度、网络负荷大小成反比。
在一定时间间隔内,如果路由器未收到对方的Hello报文,则认为对端路由器失效,这个时间间隔被称为相邻路由器间的失效时间。
当一台路由器向它的邻接发送一条LSA后,需要等到对方的确认报文。若在设定的重传间隔时间内没有收到对方的确认报文,就会向邻接重传这条LSA。重传间隔的值必须大于一个报文在两台路由器之间传送一个来回的时间。