OSPFv3
OSPFv3是OSPF用于IPv6网络中的新版本其将报文进行重构并保存OSPFv2原有的工作原理相同点路由计算方式网络类型报文类型工作原理区域划分不同基于链路运行必须配置RouterID点分10进制32位标识运行ospf的设备采用nextheader89号组播地址FF02::5和FF02::6,并且定义了LSA的泛洪范围基于链路运行不要求双方网段一致仅要求双方直连多实例物理接口可以和多个实例绑定可实现资源共享且使用链路本地地址维护邻居关系同步数据库无需配置全球单播地址可实现拓扑与路由计算分离OSPFv2其实也能实现可通过认证来解决不够相对麻烦报文重构报文头部移除认证字段新增1B的Instance ID用于在一个链路上运行多个实例Type1 Byte类型取值1Hello取值2DD取值3LSR取值4LSU取值5LSAckHello报文将网络掩码字段移除并添加Interface ID用于标识建立连接的接口拓展Options字段增加AT是否支持OSPFv3认证依靠IPv6的Nextheader实现R指明始发路由器是否具备转发能力V6(是否参加路由计算)LSA报文去掉Option字段拓展LS Type字段依然保持LSA三要素标识LSA数据U用于标识对于未知LSA类型的处理方式置为1表示存储并泛洪置为0表示仅在本地链路范围内传递S2/S1用于标识LSA的泛洪范围S2 S10 0链路本地范围内即只在始发链路上泛洪S2 S10 1区域范围内即泛洪到始发区域内的所有路由器S2 S11 0AS范围内即泛洪到本AS的所有路由器S2 S11 1预留后面13bit的LSA Function Code用于标识LSA数据类型LSA报文Tpye1 Router-LSAW标识路由器是否支持组播V虚链路E标识设备为ASBRB标识设备为ABRLinkTpye1标识点到点连接的路由器2标识连接的网络Transit Network3保留4标识虚链路Tpye2 Network-LSA同样与由DR产生取消网段字段仅显示相邻的RouterIDType3Inter-Area-Prefix-LSA由ABR产生相较于OSPFv2中删除子网掩码字段并添加前缀长度和前缀选项PrefixOptionsP传播位用于标识此路由来自NSSAMC组播位用于标识该报文用于组播计算LA本地地址位用于标识这条前缀是路由器的接口地址,NU非单播位用于标识该路由不加入ospf单播路由计算AddressPrefix可变长地址前缀Type4Inter-Area-Router-LSA由ABR产生描述ASBR的信息删除网络字段添加DestinationRouterID字段以描述ASBR的信息Type5AS-External-LSA移除网络字段添加FT特殊bit位添加Referenced LS Type和ReferencedLinkStateID字段F标识存在FA字段; T:标识存在外部路由tag字段ExternalRouterTagReferenced LS Type表示该报文需要参考那些LSA进行联系0不参考1参考Route-LSA2参考Network-LSA但在5类中作为扩展保留实际应用中通常置为0ReferencedLinkStateID标明对应要参考的LSA IDType8Link-LSA每个设备都会为每个链路生成该类LSA仅在始发链路进行泛洪用于向其他路由器通告本设备接口的链路本地地址以及IPv6路由前缀当路由器为DR时 在生成会泛洪到整个区域的 Type 2Network-LSA之前先通过仅在本链路内传播的 Type 8 LSA把自己打算放进 Network-LSA 里的协议能力选项提前通告给同一条链路上的所有邻居路由器。Type9Intra-Area-Prefix-LSA用于描述相关网段信息补充1,2类路由根据ReferencedLSType字段和ReferencedLinkStateID以及ReferencedAdvertisingRouter标识具体补充的LSAReferenced LS type4 Byte表明这个LSA是参考一个Router-LSA还是一个Network-LSA取值1表示参考一个Router-LSA取值2表示参考一个Network-LSAReferenced Link State ID4 Byte设为0当这个LSA是参考一个Router-LSA时设为该链路的DR的Interface ID当这个LSA是参考一个Network-LSA时Referenced Advertising Router4 Byte设为这个路由器的Router ID当这个LSA是参考一个Router-LSA时设为该链路的DR的Router ID当这个LSA是参考一个Network-LSA时Referenced LS type4 Byte表明这个LSA是参考一个Router-LSA还是一个Network-LSA取值1表示参考一个Router-LSA取值2表示参考一个Network-LSAReferenced Link State ID4 Byte设为0当这个LSA是参考一个Router-LSA时设为该链路的DR的Interface ID当这个LSA是参考一个Network-LSA时Referenced Advertising Router4 Byte设为这个路由器的Router ID当这个LSA是参考一个Router-LSA时设为该链路的DR的Router ID当这个LSA是参考一个Network-LSA时根据PrefixLengthPrefixOptions以及AddressPredix字段用于标识IPv6地址前缀实验采用全IPv6OSPF接入地址配置[R1]ipv6 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ipv6 en [R1-GigabitEthernet0/0/0]ipv6 enable [R1-GigabitEthernet0/0/0]ipv6 add 2001:12::1 64OSPF配置[R2]ospfv3 1 [R2-ospfv3-1]router-id 2.2.2.2 [R2-ospfv3-1]area 1 [R2-ospfv3-1-area-0.0.0.1]quit [R2-ospfv3-1]area 0 [R2-ospfv3-1-area-0.0.0.0]quit [R2-ospfv3-1]quit [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ospfv3 1 area 1 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ospfv3 1 area 0检验在R2和R3上查看邻居显示完整思考ospfv3的5类LSA为什么没有ReferencedAdvertisingRouter字段根据功能而言5类LSA描述外部网段无需关联其他LSA仅需于4类联系即可无需精确到ReferencedAdvertisingRouter但是对于9类LSA而言其功能需要补充12类路由描述不了路由的能力需要精确到那一条路由OSPFv3 中接口未配置 IPv6 地址也能运行 OSPFv3 吗为什么可以ospfv3实现了拓扑与路由分离而且IPv6有链路本地地址能够自动生成仅需接口启用IPv6并添加至OSPF区域即可运行OSPFv3OSPFv3 的 Router ID 是否必须从 IPv6 地址中选取若设备只有 IPv6 地址未手动配置 Router ID 会出现什么问题RouterID只能手动指定否则会出现OSPF运行不了邻居起不来OSPFv3为什么要8类LSA还要设计9类LSA8类传播范围在链路本地负责链路本地传递路由条目通告接口路由前缀9类传播范围在区域内通告域内路由前缀并将路由和拓扑进行绑定两者功能互补同时如果缺少8类LSA会导致链路本地地址无法通告导致邻居无法建立OSPFv3无法正常工作而缺少9类LSA又会导致整体路由信息不全无法将路由和拓扑精确绑定因此两者缺一不可