小乔 发表于 2022-9-26 11:08:26

OSPFv3和OSPFv2比较

OSPFv3
OSPFv3的基本工作原理OSPFv3是IETF定义的一种基于链路状态的内部网关路由协议,目前针对IPv4协议使用的是OSPF Version 2(OSPFv2),针对IPv6协议使用OSPF Version 3(OSPFv3)https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164024228-1502266240.pngOSPFv3与OSPFv2的相同点OSPF的基本运行机制没有改变,包括:
[*]
基本概念

[*]区域划分及路由器类型
[*]路由计算影响参数:优先级、度量值
[*]支持的网络类型:Broadcast(广播类型)、NBMA、P2P(点到点类型)、P2MP(点到多点类型)
[*]报文类型:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
[*]
工作原理:

[*]邻居关系的建立及邻居状态的转换
[*]DR与BDR的选举
[*]LSA泛洪机制
[*]路由计算过程
[*]对特殊区域、虚连接、多进程的支持
OSPFv3的基本工作原理与OSPFv2相似https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164024738-1962393245.pngOSPFv3与OSPFv2的不同点
[*]OSPFv3基于链路运行以及拓扑计算,而不再是网段
[*]OSPFv3支持一个链路上多个实例
[*]
OSPFv3报文和LSA中去掉了IP地址的意义,且重构了报文格式和LSA格式

[*]OSPFv3报文和Router LSA/Network LSA中不包含IP地址
[*]OSPFv3的LSA中定义了LSA的泛洪范围
[*]OSPFv3中创建了新的LSA承载IPv6地址和前缀
[*]OSPFv3邻居不再由IP地址标识,只由Router ID标识

唯一邻居标识:Router IDOSPFv3通过Router ID来标识网络设备
[*]Router ID是一个OSPFv3设备在自治系统中的唯一标识。如果用户没有指定Router ID,则OSPFv3进程无法运行
[*]设置Router ID时,必须保证自治系统中任意两台设备的Router ID都不相同
[*]Router ID长度32bit,本地标识符,与IPv6地址无关,用点分十进制表示法表示
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164025235-124853822.pngOSPFv3基于链路运行OSPFv3是基于链路运行的,设备只要在同一链路,就可以建立邻居关系https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164025711-396266949.png链路支持多实例
[*]一个OSPFv3物理接口可以和多个实例绑定,并用不同的实例标识(Instance ID区分),即OSPFv3的单个链路支持运行多个OSPFv3实例
[*]运行在同一条物理链路上的多个OSPFv3实例,分别和链路对端设备建立邻居及发送报文,且互不干扰,这样可以充分共享同一链路资源
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164026063-2013033368.pngOSPFv3对链路本地地址的使用
[*]
OSPFv3使用链路本地地址(FE80::/10)作为发送报文的源地址和路由的下一跳

[*]使用链路本地地址来维持邻居关系,同步LSA数据库
[*]在虚连接上,必须使用全球单播地址或者站点本地地址作为OSPFv3协议报文的源地址
[*]
优势:

[*]不需要配置IPv6全球单播地址,就可以得到OSPFv3拓扑,实现拓扑与地址分离
[*]OSPFv3报文不会被转发到始发链路范围之外,减少了报文不必要的泛洪,节省了带宽

https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164026436-1145528964.pngIPv6使用链路本地地址(Link-Local Address)在同一链路上发现邻居及自动配置。运行IPv6的路由器不转发目的地址为链路本地地址IPv6报文,此类报文只在同一链路有效OSPFv3报文OSPFv3与OSPFv2有相同类型的报文
[*]Hello报文:周期性发送,用来发现、建立和维持OSPFv3邻居关系
[*]DD报文:描述了本地LSDB的摘要信息,用于两台设备进行数据库同步
[*]LSR报文:用于向对方请求所需的LSA。设备只有在OSPFv3邻居双方成功交换DD报文后,才会向对方发出LSR报文
[*]LSU报文:向对方发送其所需的LSA
[*]LSAck报文:用来对收到的LSA进行确认
OSPFv3与OSPFv2使用相同的协议号89
[*]OSPFv2:IPv4报文头部中的协议号(Protocol)为89
[*]OSPFv3:IPv6报文头部中的下一报头好(Next Header)为89
OSPFv3与OSPFv2类似,使用组播地址作为OSPF报文目的地址
[*]
OSPFv2使用IPv4组播地址:

[*]OSPF IGP Routers:224.0.0.5;OSPF IGP DR:224.0.0.6
[*]
OSPFv3使用IPv6组播地址:

[*]OSPF IGP Routers:FF02::5;OSPF IGP DR:FF02::6

OSPFv3报文头部与OSPFv2一样,OSPFv3的五种报文都有同样的报文头,只是报文中的字段有些不同变化点:
[*]Instance ID:缺省值为0。允许一个链路上运行多个OSPFv3的实例。每个实例具有唯一的Instance ID。Instance ID只在本地链路上有意义。
[*]OSPFv3报文头部移除了所有的认证字段:OSPFv3的认证可以使用IPv6的认证及安全处理,也可以通过OSPFv3自身机制来完成报文认证
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164026785-9047196.png
Hello报文与OSPFv2的Hello报文相比,OSPFv3的Hello报文去掉了Network Mask字段,增加了Interface ID字段,用来标识发送该Hello报文的接口ID变化点:
[*]Interface ID:4Byte,唯一标识了建立连接的(发送Hello报文的)接口
[*]
Options:扩展到3Byte,可选项。与OSPFv2相比,增加了R位和V6位

[*]R:指明始发路由器是否具备转发能力。设置R位为0时,描述该始发节点的路由信息将不参与路由计算
[*]V6:如果V6位为0,表示该路由器或链路不会参与IPv6路由计算

https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164027125-2031347500.png字段介绍:
[*]Rtr Pri:1Byte,Router Priority,DR优先级。默认为1。如果设置为0,则路由不能参与DR或BDR的选举
[*]
Options:3Byte,可选项

[*]AT:1bit,表示是否支持OSPFv3认证。若AT=1,则在OSPFv3报文后增加认证尾部字段,包含认证信息
[*]DC:1bit,表示是否具有支持按需电路的能力
[*]R:1bit,指明始发路由器是否是一台有效的路由器
[*]NP:1bit,表示是否为NSSA区域
[*]MC:1bit,表示是否支持转发组播数据报文
[*]E:1bit,表示是否支持外部路由
[*]V6:1bit,表示是否参与IPv6路由计算,如果该位为0,表示该路由器或链路不参与IPv6路由计算
[*]HelloInterval:2Byte,发送Hello报文的时间间隔(Hello报文发送的时间间隔:通常为10秒)
[*]RouterDeadInterval:2Byte,失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效(通常是:40秒)
[*]Designated Router ID:4Byte,DR的Router ID
[*]Neighbor ID:4Byte,邻居,以Router ID标识

说明:DD报文、LSR报文、LSU报文和LSAck报文格式与OSPFv2相比变化不大
OSPFv3中的LSAOSPFv3的LSA头部与OSPFv2的LSA头部相比,OSPFv3的LSA头部去掉了Options字段,并扩充了LS Type字段。OSPFv3同样使用LS Type、Link State ID和Advertising Router三元组唯一地标识一个LSAhttps://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164027497-898875060.png
字段介绍:
[*]LS Age:2Byte,LSA产生后所经过的时间,以秒为单位。无论LSA是在链路上传送,还是保存在LSDB中,其值都会在不停的增长
[*]
LS Type:2Byte,LSA的类型。该字段的高3位标识LSA的通用属性,剩下的比特位标识LSA的特定功能

[*]
U位标识了对未知LSA的处理方法,即标识了不识别LSA功能代码的路由器应如何处理LSA

[*]0:把此LSA当作具有链路本地泛洪范围来对待,从而只能泛洪到本地链路上
[*]1:把此LSA当作类型已知的LSA来处理,也就是存储下来并泛洪出去
[*]
S2/S1位标识了LSA的泛洪范围

[*]S2 S1 = 0 0:链路本地范围内,即只在始发链路上泛洪
[*]S2 S1 = 0 1:区域范围内,即泛洪到始发区的所有路由器
[*]S2 S1 = 1 0:AS范围内,即泛洪到本AS的所有路由器
[*]S2 S1 = 1 1:预留

[*]Link State ID:4Byte,本地32位标识符,与IPv6地址无关,与LSA中的LS Type和Advertising Router一起在路由域中描述一个LSA。OSPFv3与OSPFv2相比,Link State ID不再包含地址信息
[*]Advertising Router:4Byte,产生此LSA的路由器的Router ID
[*]LS Sequence Number:4Byte,LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
[*]LS Checksum:2Byte,除了LS Age外其他各域的校验和
[*]Length:2Byte,LSA的总长度,包括LSA Header,以字节位单位
OSPFv3的LSA类型
[*]OSPFv3与OSPFv2相比,具有类似的LSA名称,但是功能略有区别
[*]OSPFv3新增了两类LSA,包括:链路LSA和区域内前缀LSA
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164027844-1801088468.png如表中所示,OSPFv3的LS Type字段,U位缺省位0;除Type5和Type8的LSA外,其余的LSA泛洪范围都是区域范围内(S2 S1 = 0 1)
[*]链路本地范围。LSA仅在本地链路上泛洪,包括:Link-LSA
[*]区域范围。LSA在单个OSPF区域内泛洪,包括:Router-LSA、Network-LSA、Inter-Area-Prefix-LSA,Inter-Area-Router-LSA、NSSA LSA和Intra-Area-Prefix-LSA
[*]AS范围。LSA在整个路由域(自治系统)中扩散,包括:AS-External-LSA
Type1:Router-LSA在OSPFv2中,通过Link Type、Link ID以及Link Data来描述一个接口信息。在OSPFv3中,设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态(Link Type、Interface ID、Neighbor Interface ID和Neighbor Router ID)和开销,在所属的区域内传播https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164028185-1662337180.pngOSPFv3的Router-LSA字段解释:
[*]W:Wide-Card Receiver,值为1时,表示该路由器支持组播路由
[*]V:Virtual Link,值为1时,表示产生此LSA的路由器是虚连接的一端
[*]E:External,值为1时,表示产生此LSA的路由器是ASBR
[*]B:Border,值为1时,表示产生此LSA的路由器是ABR
[*]
Options:3Byte,可选项

[*]DC:1bit,表示是否具有支持按需电路的能力
[*]R:1bit,指明始发路由器是否是一台有效的路由器
[*]NP:1bit,表示是否为NSSA区域
[*]MC:1bit,表示是否支持转发组播数据报文
[*]E:1bit,表示是否支持外部路由
[*]V6:1bit,表示是否参与IPv6路由计算,如果该位为0,表示该路由器或链路不参与IPv6路由计算
[*]
Link-Type:1Byte,链路类型

[*]1:点到点连接到另一台路由器
[*]2:连接到一个传送网络(Transit Network)
[*]3:保留
[*]4:虚链路
[*]metric:2Byte,流量出接口的开销值
[*]Interface ID:4Byte,接口ID
[*]Neighbor Interface ID:4Byte,邻居的接口ID
[*]Neighbor Router ID:4Byte,邻居的路由器ID
Type2:Network-LSA与OSPFv2相比,OSPFv3的Network-LSA删除了网络掩码字段,仅用相连的路由器的Router ID来描述本网段的链路状态,由DR产生,在所属区域内传播https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164028507-1693021474.pngOSPFv3的Network-LSA字段解释:
[*]Options:与Router-LSA中的Options字段相同
[*]Attached Router:4Byte,相连的路由器,指连接在同一网段上的所有路由器的Router ID,也包括DR的Router ID
Type3:Inter-Area-Prefix-LSA与OSPFv2类似,由ABR产生,描述区域内某个IPv6地址前缀的路由,并通告给其他相关区域。每个IPv6地址前缀,ABR都会单独发送一个Type3的LSAhttps://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164028888-211651563.pngOSPFv3的Inter-Area-Prefix-LSA字段解释:
[*]Metric:3Byte,到目的地址的开销值
[*]PrefixLength:1Byte,前缀的比特数
[*]
PrefixOptions:表示这个前缀的一些特性,以便在各种不同的路由计算时做相应的判断和处理

[*]P:传播位。如果一个NSSA区域的前缀需要被ABR转播出去,就需要设置这一位
[*]MC:组播位。如果设置为1,则这个前缀应该纳入组播计算中,否则不纳入组播计算
[*]LA:本地地址位。如果设置为1,则这个前缀是路由器的一个接口地址
[*]MU:非单播位。如果设置为1,则这个前缀不会纳入IPv6单播路由计算中
[*]Address Prefix:变长,IPv6地址前缀
注意:缺省路由的前缀长度为0。ABR也能够始发一个区域间Type3的LSA向一个末梢区域通告一条缺省路由Type4:Inter-Area-Router-LSA与OSPFv2类似,由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。对于所描述的每个ASBR,ABR都会单独发送一个Type4的LSAhttps://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164029205-676100147.pngOSPFv3的Inter-Area-Router-LSA字段解释:
[*]Options:Options字段描述的不是源路由器的能力,而是目的路由器所支持的能力,所以此字段值应该等于目的路由器的Router-LSA的Options字段值
[*]Metric:3Byte,到目的地址的开销值
[*]Destination Router ID:4Byte,LSA中描述的目的路由器的Router ID,即ASBR的Router ID
Type5:AS-External-LSA与OSPFv2类似,由ASBR产生,描述到达AS外部的一个前缀的路由,通告到所有的区域(除了Stub区域和NSSA区域)https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164029547-990555648.pngOSPFv3的AS-External-LSA字段解释:
[*]
E:1bit,外部路由的Metric类型

[*]如果设置为1,表示此为2类外部路由,其Metric不随着路由的传递而增长
[*]如果设置为0,表示此为1类外部路由,其Metric随着路由的传递而增长
[*]F:1bit,如果设置为1,则表示后面的Forwarding Address可选字段存在
[*]T:1bit,如果设置为1,则表示后面的External Route Tag可选字段存在
[*]Metric:3Byte,到目的地址的开销值
[*]PrefixLength、PrefixOptions和Address Prefix为描述前缀的三元组,与Inter-Area-Prefix-LSA中该字段含义相同
[*]
Referenced LS Type:2Byte,引用链路状态类型,表明这个LSA是否需要参考其他LSA

[*]0:不参考
[*]1:参考Router-LSA
[*]2:参考Network-LSA
[*]Forwarding Address:4Byte,可选的128位IPv6地址,当前面的F位位1时存在,表示到达目的的数据应该转发到该地址
[*]External Route Tag:4Byte,可选的标记位。可以用于ASBR之间的通信。一个比较常见的例子时,在OSPF自治系统的两个边界路由器上进行路由引入时,通过对引入的路由进行标记,可以方便地进行路由过滤
[*]Referenced Link State ID:4Byte,若Referenced LS Type不为0,则该字段存在,表示引用链路状态ID
新增Type8:Link-LSA每个设备都会为每个链路产生一个Link-LSA,仅在始发链路内泛洪。Link-LSA作用:
[*]向该链路上其他路由器通告本接口的链路本地地址
[*]向该链路上其他路由器通告本接口的IPv6前缀列表
[*]向该链路上其他路由器通告本链路始发的Network-LSA中设置的可选项
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164029925-1557059357.pngOSPFv3的Link-LSA字段解释:
[*]Rtr Pri:1Byte,该路由器在该链路上的优先级(Router Priority)
[*]Options:3Byte,提供给Network-LSA的Options
[*]Link-Local Interface Address:16Byte,路由器与该链路相连的接口上配置的链路本地地址(该地址只出现在Link-LSA中)
[*]Number of Prefixes:4Byte,该LSA中携带的IPv6地址前缀个数
[*]PrefixLength、PrefixOptions和AddressPrefix为描述前缀的三元组,与Inter-Area-Prefix-LSA中该字段含义相同
新增Type9:Intra-Area-Prefix-LSA在OSPFv2中,可以通过Type1和Type2的LSA来描述拓扑信息和网段信息;OSPFv3使用Type9 LSA描述网段信息,只在所属区域内传播,它需要依赖于拓扑信息,才能实现OSPFv3的路由计算。其类型可分为两种:
[*]每台设备均产生描述与Router-LSA相关联的IPv6前缀地址的Type9 LSA
[*]DR会产生描述与Network-LSA相关联的IPv6前缀地址的Type9 LSA
https://img2022.cnblogs.com/blog/2879831/202207/2879831-20220717164030379-242790010.pngOSPFv3的Intra-Area-Prefix-LSA字段解释:
[*]Number Of Prefix:4Byte,该LSA中携带的IPv6地址前缀个数。必要的话,可以通过多个Intra-Area-Prefix-LSA来携带前缀,这样可以控制LSA的长度
[*]
Referenced LS Type:4Byte,表明这个LSA是参考一个Router-LSA,还是一个Network-LSA

[*]1:表示参考一个Router-LSA
[*]2:表示参考一个Network-LSA
[*]
Referenced Link State ID:4Byte

[*]设为0:当这个LSA是参考一个Router-LSA时
[*]设为该链路的DR的Interface ID:当这个LSA是参考一个Network-LSA时
[*]
Referenced Advertising Router:4Byte

[*]设为这个路由器的Router ID:当这个LSA是参考一个Router-LSA时
[*]设为该链路的DR的Router ID:当这个LSA是参考一个Network-LSA时
[*]PrefixLength、Prefix Options和Address Prefix为描述前缀的三元组,与Inter-Area-Prefix-LSA中该字段含义相同
[*]Metric:2Byte,前缀开销值。与Router-LSA的接口开销值相同单位
在OSPFv3中,当一条链路或它的前缀发生变化时,相连的路由器会发送一个Intra-Area-Prefix-LSA。但是,这条LSA不会触发SPF计算。


JonasWolfxin 发表于 2022-10-2 19:27:34

衷心感谢分享优质资源!

Keithlhc 发表于 2022-10-3 15:20:02

thx for sharing{:6_267:}{:6_267:}{:6_267:}

bluesky9611 发表于 2022-10-18 17:32:26

非常好,谢谢了!!!!

welinker448 发表于 2025-3-14 02:23:08

{:6_267:}{:6_267:}{:6_267:}
页: [1]
查看完整版本: OSPFv3和OSPFv2比较