当前位置:网站首页>【技术分享】OSPFv3基本原理
【技术分享】OSPFv3基本原理
2022-08-02 09:17:00 【微思xmws】
OSPFv3是运行于IPv6的OSPF路由协议(RFC2740),它在OSPFv2基础上进行了增强,是一个独立的路由协议。
OSPFv3在Hello报文、状态机、LSDB、洪泛机制和路由计算等方面的工作原理和OSPFv2保持一致。
OSPFv3协议把自治系统划分成逻辑意义上的一个或多个区域,通过LSA(Link State Advertisement)的形式发布路由。
OSPFv3依靠在OSPFv3区域内各设备间交互OSPFv3报文来达到路由信息的统一。
OSPFv3报文封装在IPv6报文内,可以采用单播和组播的形式发送。
OSPFv3报文类型
报文类型 | 报文作用 |
Hello报文 | 周期性发送,用来发现和维持OSPFv3邻居关系。 |
DD报文(Database Description packet) | 描述了本地LSDB的摘要信息,用于两台设备进行数据库同步。 |
LSR报文(Link State Request packet) | 用于向对方请求所需的LSA。 设备只有在OSPFv3邻居双方成功交换DD报文后才会向对方发出LSR报文。 |
LSU报文(Link State Update packet) | 向对方发送其所需要的LSA。 |
LSAck报文(Link State Acknowledgment packet) | 用来对收到的LSA进行确认。 |
LSA类型
LSA类型 | LSA作用 |
Router-LSA(Type1) | 设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态和开销,在所属的区域内传播。 |
Network-LSA(Type2) | 由DR产生,描述本链路的链路状态,在所属的区域内传播。 |
Inter-Area-Prefix-LSA(Type3) | 由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。 |
Inter-Area-Router-LSA(Type4) | 由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。 |
AS-external-LSA(Type5) | 由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。 |
NSSA LSA(Type7) | 由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。 |
Link-LSA(Type8) | 每个设备都会为每个链路产生一个Link-LSA,描述到此Link上的link-local地址、IPv6前缀地址,并提供将会在Network-LSA中设置的链路选项,它仅在此链路内传播。 |
Intra-Area-Prefix-LSA(Type9) | 每个设备及DR都会产生一个或多个此类LSA,在所属的区域内传播。 · 设备产生的此类LSA,描述与Route-LSA相关联的IPv6前缀地址。 · DR产生的此类LSA,描述与Network-LSA相关联的IPv6前缀地址。 |
设备类型
表1 设备的类型及含义 | |
设备类型 | 含义 |
区域内设备(Internal Router) | 该类设备的所有接口都属于同一个OSPFv3区域。 |
区域边界路由器ABR(Area Border Router) | 该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。 ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 |
骨干路由器(Backbone Router) | 该类设备至少有一个接口属于骨干区域。 因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。 |
自治系统边界路由器ASBR(AS Boundary Router) | 与其他AS交换路由信息的路由器称为ASBR。 ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。 |
OSPFv3路由类型
AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPFv3将引入的AS外部路由分为Type1和Type2两类。
表2中按优先级从高到低顺序列出了路由类型。
表2 OSPFv3路由类型 | |
路由类型 | 含义 |
Intra Area Routes | 区域内路由。从区域内生成的且目的地属于该区域的路由。 |
Inter Area Routes | 区域间路由。来自其他区域的路由。 |
External Routes | 外部路由。引入其他路由协议或不同OSPF进程的路由。根据路由开销的计算方式,外部路由可以分为以下两类: · 第一类外部路由(Type1 External):第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。 · 第二类外部路由(Type2 External):第二类外部路由的开销=ASBR到该路由目的地址的开销。 对于同一目的地址,第一类的外部路由的优先级要大于第二类外部路由。 |
区域类型
表3 OSPFv3区域类型 | |
区域类型 | 作用 |
Totally Stub Area | 允许ABR发布的Type3缺省路由,不允许自治系统外部路由和区域间的路由。 |
Stub Area | 和Totally Stub区域的不同在于,该区域允许区域间路由。 |
NSSA Area | 和Stub区域的不同在于该区域允许自治系统外部路由的引入,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPFv3域中。 |
OSPFv3支持的网络类型
OSPFv3根据链路层协议类型,将网络分为如表4所列四种类型。
表4 OSPFv3网络类型 | |
网络类型 | 含义 |
广播类型(Broadcast) | 当链路层协议是Ethernet、FDDI时,缺省情况下,OSPFv3认为网络类型是Broadcast。 在该类型的网络中: · 通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,FF02::5为OSPFv3路由器的预留IPv6组播地址;FF02::6为OSPFv3 DR/BDR的预留IPv6组播地址。 · 以单播形式发送DD报文和LSR报文。 |
NBMA类型(Non-broadcast multiple access) | 当链路层协议是帧中继、ATM或X.25时,缺省情况下,OSPFv3认为网络类型是NBMA。 在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 |
点到多点P2M类型(Point-to-Multipoint) | 没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。 在该类型的网络中: · 以组播形式(FF02::5)发送Hello报文; · 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。 |
点到点P2P类型(point-to-point) | 当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPFv3认为网络类型是P2P。 在该类型的网络中,以组播形式(FF02::5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 |
Stub区域
Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。
Stub区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,Stub区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。
为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。
配置Stub区域时需要注意下列几点:
骨干区域不能配置成Stub区域。
如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置成Stub路由器。
Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
虚连接不能穿过Stub区域。
OSPFv3路由聚合
通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。
OSPFv3路由聚合过程如下:
区域间路由聚合
区域间路由聚合在ABR上完成,主要用于聚合AS内区域之间的路由。ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。
外部路由聚合
外部路由聚合在ASBR上完成,主要用于聚合OSPF引入的外部路由。ASBR将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。
如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。
OSPFv3虚连接
虚连接(Virtual link)是指在两台ABR之间通过一个非骨干区域建立的一条逻辑上的连接通道。
虚连接必须在两端同时配置方可生效。
为虚连接两端提供一条非骨干区域内部路由的区域称为传输区域(Transit Area)。
在实际应用中,可能会因为各方面条件的限制,无法满足所有非骨干区域与骨干区域保持连通的要求。这时可以通过配置OSPFv3虚连接予以解决。
虚连接相当于在两个ABR之间形成了一个点到点的连接,因此,虚连接的两端和物理接口一样可以配置接口的各参数,如发送Hello报文间隔等。
如图2所示,通过虚连接,两台ABR之间直接传递OSPFv3报文信息,他们之间的OSPFv3设备只是起到一个转发报文的作用。由于OSPFv3协议报文的目的地址不是这些设备,所以这些报文对于他们而言是透明的,只是当作普通的IP报文来转发。
OSPFv3多进程
OSPFv3支持多进程,在同一台设备上可以运行多个不同的OSPFv3进程,它们之间互不影响,彼此独立。不同OSPFv3进程之间的路由交互相当于不同路由协议之间的路由交互。
设备的一个接口只能属于某一个OSPFv3进程。
边栏推荐
- node封装一个图片拼接插件
- AutoJs学习-密码生成器
- XML简介
- typeinfo类型支持库学习
- C Language Basics_Union
- PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
- UVM信息服务机制
- 二分类和多分类
- net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
- SAP 云平台上一种 Low Code Development(低代码开发)解决方案
猜你喜欢
RestTemlate源码分析及工具类设计
深度学习汇报(4)
net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
location对象,navigator对象,history对象学习
Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’
编程与哲学(2)——输出是为了更好的输入
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之一:解题思路
ORBSLAM代码阅读
HCIA动态主机配置协议实验(dhcp)
自定义卡包效果实现
随机推荐
Have you ever learned about these architecture designs and architecture knowledge systems?(Architecture book recommendation)
pnpm: Introduction
日元疲软令游戏机在日本变身“理财产品”:黄牛大赚
Hikari连接池源码解读
理解JS的三座大山
pnpm:简介
你有了解过这些架构设计,架构知识体系吗?(架构书籍推荐)
数据库mysql
A little bit of knowledge - why do not usually cook with copper pots
js函数防抖和函数节流及其使用场景
day——05 迭代器,生成器
leetcode:81. 搜索旋转排序数组 II
小程序云开发(十):渐变与动画
PyCharm usage tutorial (detailed version - graphic and text combination)
Postman download localization of installation and use
spark:页面单跳转换率统计(案例)
AlterNET Studio用户界面设计功能扩展
每天花2小时恶补腾讯T8纯手打688页SSM框架和Redis,成功上岸美团
单机部署flink,创建oracle19c rac的连接表时报错 ORA-12505 ,怎么回事?
查看变量的数据格式