OSPFv3和OSPFv2协议比较

1、相同点:
(1)网络类型和接口类型
(2)接口状态机和邻居状态机
(3)链路状态数据库(LSDB)
(4)洪泛机制(Flooding mechanism)
(5)相同类型的报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
(6)路由计算基本相同

2、不同点:

  • OSPFv3基于链路,而不是网段
    OSPFv3运行在IPv6协议上,IPv6是基于链路而不是网段的。
    这样,在配置OSPFv3时,不需要考虑是否配置在同一网段,只要在同一链路,就可以不配置 IPv6 全局地址而直接建立联系。
  • OSPFv3上移除了 IP 地址的意义
    这样做的目的是为了使拓扑与地址分离。OSPFv3可以不依赖IPv6全局地址的配置来计算出OSPFv3的拓扑结构。IPv6全局地址仅用于Vlink接口及报文的转发。
  • OSPFv3的报文及LSA格式发生改变
    OSPFv3报文不包含IP地址。
    OSPFv3的Router LSA和Network LSA里不包含IP地址。IP地址部分由新增的两类 LSA(Link LSA 和Intra Area Prefix LSA)宣告。
    OSPFv3的Router ID、Area ID和LSA Link State ID不再表示IP地址,但仍保留IPv4地址格式。
    广播、NBMA及P2MP网络中,邻居不再由IP地址标识,只由Router ID标识。
  • OSPFv3的LSA报文里添加LSA的洪泛范围
    OSPFv3在LSA报文头的LSA Type里,添加LSA的洪泛范围,这使得OSPFv3的路由器更加灵活,可以处理不能识别类型的LSA:
    OSPFv3可存储或洪泛不识别报文,而OSPF只简单丢弃掉不识别报文。
    OSPFv3允许洪泛范围为区域或链路本地(Link-local),并且设置U位(报文可按洪泛范围为链路本地来处理)的不识别报文存储或通过Stub区域。
    例如,RouterA和B都可识别某类LSA,它们之间通过RouterC连接,但RouterC不识别该类LSA。这样,当RouterA洪泛此类LSA时,RouterC虽然不识别,但还是可以洪泛给RouterB,B收到后继续处理。
    如果运行的是OSPF协议,只会丢弃不能识别的报文,RouterB则不能收到此类LSA。
  • OSPFv3 支持一个链路上多个进程
    一个OSPFv2物理接口,只能和一个多实例绑定。但一个OSPFv3物理接口,可以和多个多实例绑定,并用不同的Instance ID区分。这些运行在同一条物理链路上的多个OSPFv3实例,分别与链路对端设备建立邻居及发送报文,且互不干扰。这样可以充分共享同一链路资源。
  • OSPFv3利用IPv6链路本地地址
    IPv6使用链路本地(Link-local)地址在同一链路上发现邻居及自动配置等。运行IPv6的路由器不转发目的地址为链路本地地址的IPv6报文,此类报文只在同一链路有效。链路本地单播地址从FE80/10开始。
    OSPFv3是运行在IPv6上的路由协议,同样使用链路本地地址来维持邻居,同步LSA数据库。除Vlink外的所有OSPFv3接口都使用链路本地地址作为源地址及下一跳来发送OSPFv3报文。
    这样的好处是:
    不需要配置IPv6全局地址,就可以得到OSPFv3拓扑,实现拓扑与地址分离。
    通过在链路上泛洪的报文不会传到其他链路上,来减少报文不必要的泛洪来节省带宽。
  • OSPFv3移除所有认证字段
    OSPFv3 的认证直接使用IPv6的认证及安全处理,不再需要其自身来完成认证,使用协议时只需关注协议本身即可。
    新增两种 LSA:
    Link LSA:用于路由器宣告各个链路上对应的链路本地地址及其所配置的IPv6全局地址,仅在链路内洪泛。
    Intra Area Prefix LSA:用于向其他路由器宣告本路由器或本网络(广播网及NBMA)的IPv6 全局地址信息,在区域内洪泛。
  • OSPFv3只通过Router ID来标识邻居
    OSPF在广播网,NBMA及P2MP网络中是通过IPv4接口地址来标识的。
    OSPFv3只通过Router ID来标识邻居,这样即使没有配置IPv6全局地址,或是IPv6全局地址配置都不在同一网段,OSPFv3的邻居还是可以建立并维护的,以达到拓扑与地址分离的目的。