OSPFv2的LSA https://blog.51cto.com/xxy12345/2572343网络
OSPFv2的报文格式https://blog.51cto.com/xxy12345/2518384ide
1. 与OSPFv2相比,取消了Option字段。性能
2. Link State ID 随机生成,再也不有具体含义,用来同Advertising Router、LS Sequence Number字段一同标识一个LSA。编码
3. OSPFv2中的LS Type长度为8比特,指定LSA的类型;OSPFv3的LSA Type字段由OSPFv2的8比特扩充为16比特。spa
l U位:描述了路由器收到一个类型未知的LSA时如何处理,取值为0表示把类型未知LSA当成具备链路本地范围的LSA同样处理,取值为1表示按照S2/S1位标识的泛洪范围来处理。设计
l S2/S1位:共同标识LSA的泛洪范围,取值00表示LSA只在产生该LSA的本地链路上泛洪;取值01表示LSA的泛洪范围为产生该LSA的路由器所在区域;取值10表示LSA将在整个自治系统内进行泛洪;取值11保留。3d
l LSA Function Code:LSA类型编码,描述LSA 的类型,类型编码取值与LSA类型的对应关系以下表所示(与OSPFv2对比)。orm
类型blog |
OSPFv3 LSA类型接口 |
OSPFv2 LSA类型 |
1 |
Router LSA |
Router LSA |
2 |
Network LSA |
Network LSA |
3 |
Inter Area Prefix LSA |
Network Summary LSA |
4 |
Inter Area Router LSA |
ASBR Summary LSA |
5 |
AS External LSA |
AS External LSA |
6 |
Group Membership LSA |
|
7 |
NSSA AS External LSA |
|
8 |
Link LSA |
|
9 |
Intra Area Prefix LSA |
抓包对比
1 Router-LSA(type 1)
上图为OSPFv2 Router LSA格式,下图为OSPFv3 Router LSA格式,都不包含LSA头部。
与OSPFv2相比,OSPFv3的Router LSA格式变化比较大:
l 新增了Options字段,用来标识该路由器支持的功能。
l 取消了用来描述路由器链接数量的链接数字段#Links。
l 对链路的描述方式发生改变,经过Interface ID、Neighbor Interface ID和Neighbor Router ID进行综合描述。
与OSPFv2不一样的字段解释以下:
l W:(Wild-card):用于MOSPF,其余字段含义见https://blog.51cto.com/xxy12345/2518384,6.2 Router-LSA格式
l Interface ID:所描述链路的本地接口ID。
l Neighbor Interface ID:所描述链路的邻居路由器的接口ID。
l Neighbor Router:所描述链路的邻居路由器ID。
抓包分析
2 Network LSA(Type 2)
与OSPFv2相比:OSPFv3的Network LSA中新增了Option字段,减小了Network mask字段。当网络类型为广播网和NBMA时,OSPFv3的Network LSA仅仅描述了链接到链路上的全部路由器,包括DR自己,因为不包含Network mask字段,OSPFv3的Network LSA仅描述了拓扑信息,再也不描述路由信息。
抓包分析
3 Inter Area Prefix LSA(Type3)
至关于OSPFv2的Network Summary LSA。
经过PrefixLength、PrefixOptions以及Address Prefix来描述到达区域外的IPv6地址前缀的路径信息,每个Pv6地址前缀都会产生一个单独的Inter Area Prefix LSA。
对于Stub区域,Inter Area Prefix LSA还能够用来描述缺省路由,描述缺省路由时前缀长度取值为0。
与OSPFv2 Network Summary LSA不一样字段解释以下:
l PrefixLength:IPv6 地址前缀长度。
l PrefixOptions:IPv6 地址前缀选项,用来标识前缀的功能,根据前缀选项的设置,在路由计算过程当中容许某些前缀被忽略,或者标识为不用从新通告。
l Address Prefix:IPv6 地址前缀。
前缀选项一个字节长度,如上图。
l P(Propagate):传播功能位,在NSSA前缀上设置,置1表示该前缀应该在NSSA区域边界从新通告。
l MC(Multicast):多播功能位,置位表示该前缀应该包含在IPv6 多播路由计算中。
l LA(Local Address):本地地址功能位,置位表示该前缀就是发出该LSA的路由器接口的IPv6 地址。
l NU(No Unicast):非单播功能位,置位表示该前缀不会包括在IPv6 单播路由计算中
抓包分析
4 Inter Area Router LSA(Type4)
至关于OSPFv2中的ASBR Summary LSA,OSPFv2的Type4 LSA与Type3 LSA格式一致。OSPFv3的Type 4 LSA格式比对以下:
主要字段描述以下:
l Metric:到达区域外的目的路由器的路径开销。
l Destination Router ID:区域外的目的路由器的Router ID。
抓包分析
5 AS External LSA(Type5)
至关于OSPFv2中的AS External LSA,
OSPFv3的AS External LSA与OSPFv2 AS External LSA不一样字段解释以下:
l Address Prefix、PrefixLength、PrefixOptions共同标记了一个自治系统外部的一个IPv6 地址前缀。
l Referenced LS Type:引用的LSA的类型。若是该字段非0,则会有一个LSA与该LSA相关,Referenced LS Type 为与该LSA相关的LSA类型。
l Referenced Link State ID:引用的LSA的Link State ID。
抓包分析
6 Group Membership LSA(Type6)
组播OSPF(MOSPF)使用。
7 NSSA AS External LSA(Type7)
OSPFv2 NSSA区域ASBR引入外部路由生成,仅在NSSA区域通告,OSPFv3没有该类型LSA。
8 Link LSA(Type8)
OSPFv3新引入的LSA,用于通告本身的本地链路地址信息。每一个路由器都为它所链接的每条链路产生单独的Link LSA。
l 向链路上的其余路由器通告本地链路(Link-local)地址,OSPFv3 Router-LSA中的Link Data移除了协议地址,代之以接口ID,在计算路由时须要增长接口ID的下一跳ipv6地址,经过Link LSA通告的信息知晓接口ID与Link-local地址的对应关系。
l 通告关联在路由器上且出如今该链路上的全部Ipv6前缀信息。在OSPFv3中,区域内节点的全部前缀信息都在Intra-Area Prefix LSA中,但该LSA没有说明哪些前缀各自对应着哪条链路,Link LSA负责通告指定链路上的前缀信息。
l 若是是MA网络,为Network LSA收集Option位。
主要字段解释以下:
l Router Priority:路由器优先级。
l Options:表明当前路由器支持的可选性能。一个链路上的全部Link LSA的能力并集是Network LSA的能力。
l Link Local Interface Address:链路本地接口地址。
l # prefixes:该LSA中所包含的IPv6 地址前缀个数。
抓包分析
9 Intra Area Prefix LSA(Type9)
OSPFv3的设计思想之一就是拓扑信息和路由信息分离:计算拓扑的基本LSA(Router LSA和Network LSA)中再也不含有路由信息,因此原来OSPFv2中这两类LSA中所携带的路由信息由新的LSA来描述,因而引入了Intra Area Prefix LSA。
路由器使用Intra Area Prefix LSA来通告一个或多个IPv6地址前缀,这些地址前缀信息描述以下路由信息:
l 描述路由器自身的路由信息;
l 描述路由器链接到的一个Stub网络的路由信息;
l 描述路由器链接到的一个传输网络的路由信息。
Intra Area Prefix LSA描述了Router LSA和Network LSA所携带的路由信息,所以在Intra Area Prefix LSA中须要标明该LSA引用的Router LSA或Network LSA,这是经过Referenced LS Type、Referenced Link State ID和Referenced Advertising Router字段来联合标识的。
主要字段的解释以下:
l # Prefixes:包含的IPv6 地址前缀的个数。
l Referenced LS Type:引用LSA的类型,取值为1代表该LSA与Router LSA相关,取值为2代表该LSA与Network LSA相关。
l Referenced Link State ID:引用LSA 的Link State ID。若是引用的是Router LSA,此字段值为0;若是引用的是Network LSA,此字段值为DR在该条链路上的Interface ID。
l Referenced Advertising Router:引用LSA 的发布路由器。若是引用的是Router LSA,此字段值为产生该LSA 路由器的Router ID;若是引用的是Network LSA,此字段值为DR的Router ID。
抓包分析
10 新LSA的特色(LSA8/9)
LSA8实现了拓扑和协议地址的分离,LSA1/2移除了对协议地址的依赖,再也不包含接口的协议地址,而以接口ID代之,这实现了拓扑和协议的分离,可是在计算路由时依旧须要下一跳地址,分离后的协议地址由LSA8提供。
同时,LSA9通告区域内前缀,但因为LSA1/2用ID表示,没法说明LSA9所包含的前缀属于哪一个接口,因此LSA8在完成接口ID和接口Link-local地址对应的同时,还包含接口上所包含的前缀。
通告Link-local 地址、前缀、接口ID的LSA8仅须要直连路由器知晓接口,所以LSA8仅在直连链路上泛洪。
LSA9实现了拓扑和网络信息的分离。LSA9通告每一个节点(包括虚节点和实节点)的网络信息,其内容是原LSA1中Subnet和LSA2中的网络信息,区域内的网络信息由LSA9来提供(type值实际=2009,S2/S1位=01,表明区域内泛洪),这样网络信息的变化(如接口前缀变化)仅仅影响了LSA9,不会影响拓扑变动(拓扑又LSA1/LSA2生成)。
不论须要支持何种协议,OSPFv3仅须要改造LSA8和LSA9,LSA1/2无需变更。这使得OSPFv3具有很强的扩展性和支持多协议的能力。
由于只有LSA1/LSA2变更才会触发拓扑更新(SPF计算),网络信息的变化都有LSA9通告,所以OSPFv3具有更快的收敛。