IPv6 OSPFv3路由协议

IPv6 OSPFv3路由协议
 

3.1      IPv6 OSPFv3

3.1.1 OSPFv3 VS OSPFv2

OSPF 路由协议是链路状态型路由协议,这里的链路即设备上的接口。链路状态型路由协议基于连接源和目标设备的链路状态作出路由的决定。链路状态是接口及其与邻接网络设备的的关系的描述,接口的信息即链路的信息,也就是链路的状态(信息)。这些信息包括接口的 IPv6 前缀( prefix )、网络掩码、接口连接的网络(链路)类型、与该接口在同一网络(链路)上的路由器等信息。这些链路状态信息由不同类型的 LSA 携带,在网络上传播。
路由器把收集到的 LSA 存储在链路状态数据库中,然后运行 SPF 算法计算出路由表。链路状态数据库和路由表的本质不同在于:数据库中包含的是完整的链路状态原始数据,而路由表中列出的是到达所有已知目标网络的最短路径的列表。
OSPF 协议是为 IP 协议提供路由功能的路由协议。 OSPFv2 OSPF 版本 2 )是支持 IPv4 的路由协议,为了让 OSPF 协议支持 IPv6 ,技术人员开发了 OSPFv3 OSPF 版本 3 ), OSPFv3 RFC2740 定义。
无论是 OSPFv2 还是 OSPFv3 OSPF 协议的基本运行原理是没有区别的,然而,由于 IPv4 IPv6 协议意义的不同,地址空间大小的不同,它们之间的不同之处也是必然存在的。
相似之处
Ø  路由器类型相同
²  包括内部路由器( internal router )、骨干路由器( backbone router )、区域边界路由器( area border router )和自治系统边界路由器( autonomous system boundary router )。
Ø  支持的区域类型相同
²  包括骨干区域、标准区域、末节区域、 NSSA 和完全末节区域。
Ø  路由计算方法相同
²  都使用 SPF 算法。
Ø  DR 选举机制相同
²  DR BDR 的选举过程相同。
Ø  网络类型相同
²  包括点到点链路、点到多点链路、多路访问、 NBMA 链路和虚拟链路。
Ø  邻居和邻居形成机制相同
²  OSPF 路由器启动后,便会通过 OSPF 接口向外发送 Hello 报文,收到 Hello 报文的 OSPF 路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定,只有当双方成功交换 DBD 报文,交换 LSA 并达到 LSDB 的同步之后,才形成真正意义上的邻接关系。
²  LSA 的传播和老化机制相同。
Ø  基本数据包类型相同
²  都使用 Hello DBD LSR LSU LSA
 
不同之处
Ø  术语不同
²  OSPFv3 中,用 " 链路( link " 取代了 OSPFv2 中的 " 网络( network " " 子网( subnet " 的概念。
Ø  路由进程运行方式不同
²  OSPFv3 进程运行在链路上,
²  OSPFv2 进程运行在子网上。
Ø  链路多实例复用
²  OSPFv3 支持链路多实例复用 ,一条链路上可以运行多个 OSPF 实例( instance )。例如,可以使用两个实例让一条链路运行在两个区域内。
²  OSPFv2 不支持链路多实例复用
Ø  Router ID 唯一标识邻居
²  OSPFv2 中,当网络类型为点到点或者通过虚连接与邻居相连时,通过 Router ID 来标识邻居路由器,当网络类型为广播或 NBMA 时,通过邻居接口的 IP 地址来标识邻居路由器。
²  OSPFv3 取消了这种复杂性,无论对于何种网络类型,都是通过 Router ID 来唯一标识邻居。
Ø  认证方式不同
²  OSPFv3 协议自身不再提供认证功能,而是通过使用 IPv6 提供的安全机制来保证自身报文的合法性。所以, OSPFv2 报文中的认证字段,在 OSPFv3 报文头中被取消。
²  OSPFv2 自身提供认证功能
Ø  报文不同
²  OSPFv3 报文封装在 IPv6 报文中,每一种类型的报文都是以一个 16 字节的报文头部开始。
²  OSPFv3 的报文头、 Hello DBD 以及 LSR 报文中的字段与 OSPFv2 有差别。
Ø  LSA 类型不同
²  OSPFv2 相比, OSPFv3 新增了 Link LSA Intra Area Prefix LSA
Ø  LSA 的泛洪范围
²  LSA 的泛洪范围已经被明确地定义在 LSA LS Type 字段,目前,有三种 LSA 泛洪范围。
²  链路本地范围: LSA 只在本地链路上泛洪,不会超出这个范围,该范围适用于新定义的 Link LSA
²  区域范围: LSA 的泛洪范围仅仅覆盖一个单独的 OSPFv3 区域。 Router LSA Network LSA Inter Area Prefix LSA Inter Area Router LSA Intra Area Prefix LSA 都是区域范围泛洪的 LSA
²  自治系统范围: LSA 将被泛洪到整个路由域, AS External LSA 就是自治系统范围泛洪的 LSA
Ø  支持对未知类型 LSA 的处理
²  OSPFv2 中,收到类型未知的 LSA 将直接丢弃
²  OSPFv3 LSA LS Type 字段中增加了一个 U 比特位来位标识对未知类型 LSA 的处理方式:
²  如果 U 比特置 1 ,则对于未知类型的 LSA 按照 LSA 中的 LS Type 字段描述的泛洪范围进行泛洪;
²  如果 U 比特置 0 ,对于未知类型的 LSA 仅在链路范围内泛洪。
Ø  Stub 区域的支持
²  由于 OSPFv3 支持对未知类型 LSA 的泛洪,为防止大量未知类型 LSA 泛洪进入 Stub 区域,对于向 Stub 区泛洪的未知类型 LSA 进行了明确规定,只有当未知类型 LSA 的泛洪范围是区域或链路而且 U 比特没有置位时,未知类型 LSA 才可以向 Stub 区域泛洪。
Ø  Option 字段不同
²  OSPFv2 中, Option 字段出现在每一个 Hello 报文、 DD 报文以及每一个 LSA 中。
²  OSPFv3 中, Option 字段只在 Hello 报文、 DD 报文、 Router LSA Network LSA Inter Area Router LSA 以及 Link LSA 中出现。
Ø  LSA 报文格式不同
 

3.1.2 OSPFv3协议数据结构

 
OSPFv3 协议直接运行在 IPv6 上,因此, OSPFv3 的数据由 IPv6 报文携带。在 IPv6 报文头的 ' 下一个报文头 ' 字段中,用协议号 89 代表该数据包中携带的是 OSPFv3 的数据。
紧跟着 IPv6 报文头的后面是 OSPFv3 的报文首部,其格式如下图所示。
 
OSPFv3 首部报文结构:
如下图所示:
 
其中:
Ø  Version ――代表 OSPF 的版本号,其值为 3
Ø  Type ――代表 OSPF 数据报类型。 OSPF 数据报的类型包括:
n  Hello 包,类型代码为 1
n  DBD ,类型代码为 2
n  LSR ,类型代码为 3
n  LSU ,类型代码为 4
n  LSAck ,类型代码为 5
Ø  Packet length ――以字节为单位的 OSPF 数据报的长度,包含报头部分。
Ø  Router ID ――发送该数据包的路由器 ID 号。
Ø  Area ID ――该数据报所属的区域。
Ø  Checksum ――整个 OSPF 数据报的校验和。
Ø  Instance ID ――实例标志号。
Ø  Reservation ―― OSPFv3 报头的最后 8 比特保留,值总为 0
 
下图是使用 ethereal 采集到的报文。
 
Hello 报文结构
如下图所示:
 
报文字段的含义:
Ø  Interface ID ――接口标志符。路由器的每一个接口都有一个唯一的标志符。
Ø  Router priority ――路由器优先级。路由器根据该值选举 DR BDR
Ø  Options ――该 24 比特字段出现在 Hello 包、 DBD 和某些 LSA 中, OSPF 路由器使用该字段实现某些与其他路由器通信的能力(详见 RFC2740 )。
Ø  Hello interval ――发送 Hello 包的周期时间。
Ø  Router dead interval ――邻居路由器认为该路由器的失效时间。
Ø  Designated router ID ―― DR 路由器的 ID
Ø  Backup designated router ID ―― BDR 路由器的 ID
Ø  Neighbors ID ――邻居列表。每个邻居 ID 4 字节。
 
如下图所示:
 

你可能感兴趣的:(ipv6,路由,休闲,ospf,OSPFv3)