1.OSPFv3与OSPFv2的比较

image.png

2.与OSPFv2的不同点介绍

2.1 不同点介绍

image.png
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区域。


    OSPFv3支持一个链路上多个进程

  • 一个OSPFv2物理接口,只能和一个多实例绑定。但一个OSPFv3物理接口,可以和多个多实例绑定,并用不同的Instance ID区分。


    OSPFv3利用IPv6链路本地地址

  • 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的邻居还是可以建立并维护的,以达到“拓扑与地址分离”的目的。(这也意味着,如果不配置Router ID,那么是无法建立OSPFv3邻居的

2.2 OSPFv3基于链路运行

image.png

  • 基于链路运行也可以,是因为发送OSPFv3的各种报文是使用Link-Local地址作为源地址发送的。

2.3 OSPFv3移除IP地址

image.png

  • 前缀信息其实就是路由信息。

2.4 OSPFv3链路多进程

image.png

  • 区域号+实例号相同才能形成邻居关系。
  • 首先,需要形成多个OSPFv3邻居,则每个邻居关系都需要通过不同的进程建立;
  • 其次,即使是不同的OSPFv3进程,如果需要存在多个进程,则需要不同的实例进行标识;
  • 否则会出现下面的提示:

image.png

  • 因为默认使用的都是实例0,即不管进程号是否相同,实例号都是基于所有进程的。默认属于实例0。

  • 应用场景

image.png

  • E需要和C进程通信,F和D需要进行通信,但是除此之外它们都不能进行互通;
  • 可以在A和B上运行两个进程,其中进程1为实例1,进程2为实例2;
  • 在A上,与E相连的接口运行在进程1实例1,在B上,与C相连的接口运行在进程1实例1,这样就形成了E-A-B-C的OSPFv3进程1实例1的邻居关系;
  • F-A-B-D的OSPFv3进程2实例2邻居关系类似;
  • 这样不同进程之间的OSPFv3数据库是不会相互关联的,就达到了上面的需求。

2.5 使用Link-local地址

image.png

2.6 OSPFv3报文格式变化

  • OSPFv3报文头部变化

image.png

  • 因为IPv6头部没有校验和,而IPv4头部是有校验和的。

image.png

  • Hello包变化

image.png

  • Interface ID:当接口运行了OSPFv3,会随机分配一个接口ID。
    • 作用:通过接口ID来描述在哪个接口上与哪个路由器有邻居关系(会记录本地的接口ID与对端的接口ID的映射,这样就可以用来描述拓扑信息了);

image.png
image.png

  • LSA报头变化

image.png
image.png
image.png
image.png

  • 应该是:DR所在的接口IP地址,而不是网段。

2.7 Router LSA(1类LSA)

image.png

  • 实际上就是描述拓扑信息

image.png

2.8 Network LSA(2类LSA)

image.png

2.9 Intra-Area-Prefix-LSA(9类LSA)

image.png
image.png

2.10 Link LSA(8类LSA)

image.png
image.png

2.11 Inter-Area-Prefix-LSA(3类LSA)

image.png
image.png
image.png

  • R1将Area 0的9类LSA转成3类LSA再发送到Area3中,但是对于Area 1中的9类LSA,是由R3进行转换的,而不是R1,此时R1只是将通告路由器改成自己;

2.12 AS-External LSA(5类LSA)

image.png
image.png

2.13 Inter-Area-Router-LSA(4类LSA)

image.png
image.png