介绍:
OSPF,全称为开放最短路径优先(Open Shortest Path First),是一种用于在IP网络中进行路由的协议。它属于内部网关协议(IGP)的一种,用于在同一个自治系统(AS)内部的路由器之间交换路由信息。OSPF是一种链路状态协议,它根据路由器之间相互通告的链路状态信息来计算最短路径,从而确定数据包的传输路径。
OSPF被广泛应用于企业网络和互联网中,它提供了高度灵活性和可伸缩性,适用于不同规模和复杂度的网络环境。
OSPF的工作流程
从对等的路由器重交换他们链路状态数据库的邻居路由信息,从而在每台路由器重建立出一张完整的网络拓扑图
根据获得的链路状态数据库的信息,使用SPF(最短路径树)算法计算出一个自己为根以的树形结构,而后在生成路由表。
当路由器建立ospf进程后每台路由器间隔一段时间就会通过组播地址(224.0.0.5)发送一个hollo包跟邻居建立关系,然后相互发送LSDB(链路状态数据库)路由信息,之后每10秒(nbma【非广播型网络】网络是30秒)或者当路由信息发生变化时更新一次,更新发送DBA(链路状态信息概况)路由器查看在自己的LSDB中有没有缺哪个,有的话会发起请求,请求后就会发过来更新包(只会发送缺少的部分),接受后再回复确认信息
区域类型:
Standard Area(标准区域):
标准区域也称为传统区域或区域0(Area 0),是最常见和基本的OSPF区域类型。标准区域内的所有路由器拥有完整的LSDB(链路状态数据库)和可互相通信。标准区域之间通过ABR(区域边界路由器)连接,ABR负责在区域之间转发路由信息。
Backbone Area(骨干区域):
骨干区域是一个特殊的标准区域,具有区域号0(Area 0)。它是所有OSPF区域的核心,其他区域通过骨干区域相互连接。骨干区域是构建网络的主干,通过它进行跨区域的路由信息传递。
Stub Area(Stub区域):
Stub区域是一种为了简化网络设计和减少路由表的大小而创建的区域类型。在Stub区域中,所有的外部路由信息都被汇总为一个默认路由,不传递来自其他AS(自治系统)的具体路由。这样可以减小每个路由器上的路由表大小,并减少路由信息的传递。
Totally Stubby Area(Totally Stub区域):
Totally Stub区域是一种更为严格的区域类型,比Stub区域进一步减少了路由表的大小。它只保留一个默认路由,并且不允许任何其他外部路由进入该区域。Totally Stub区域适用于非常大的AS,可以进一步简化和优化路由表。
Not-So-Stubby Area (NSSA,非完全Stub区域):
NSSA区域是一种允许非OSPF网络(如使用其他路由协议的网络)连接到OSPF自治系统的区域。在NSSA区域中,可以引入外部路由信息,但这些信息不能传递到整个自治系统,而只能在区域内部转发。
- 区域0(Area 0):区域0是OSPF的骨干区域(Backbone Area),所有其他非骨干区域都必须与之连接。区域0通常用于连接不同的区域,以便实现全局路由的连通性。
- 叶子区域(Leaf Area):叶子区域是指直接连接到骨干区域的OSPF区域。叶子区域是OSPF中的最低级别区域,不能再划分为更小的区域。
- 非叶子区域(Non-Leaf Area):非叶子区域是除叶子区域外的其他区域,可以进一步划分为更小的子区域。
- 区域划分原则:根据OSPF的区域划分原则,一个区域内的所有路由器必须具有相同的区域ID。OSPF区域之间应该通过骨干区域连接,以确保全局路由的连通性和稳定性。
为了适应大型的网络ospf设置了分区域:
每个ospf只维护自己区域内的链路信息,区域之间用边界路由器来连接(边界路由需要学习两个区域的路由信息 所有边界路由需要性能好些)
区域之前的通信要经过骨干区域area0,不能之间area1和area2之间通信,area0是一个特殊的区域,无论area12345都不能做为骨干区域
OSPF在区域间传递LSA信息不是链路状态信息,而是纯粹的路由,此时是基于D-V算法,不再是链路状态算法,这时就 出现一个问题,路由自环,解决方法是所有ABR将本区域内的路由信息封装成LSA后,统一发给一个特定的区域-骨干区域,再由骨干区域转发给其它区域。骨干区域的任务就是汇总每一个区域的网络拓扑到其他的区域。所有的区域间的通信都必须通过骨干区域,非骨干区域间不能通信,所以就不会产生路由自环了。
末节区域(Stub Area):这种区域不接受关于自治系统外部的路由的信息,如来自非 OSPF 路由器的路由(也就是该区域不接受 LSA 4 和 LSA 5)。需要路由到自治系统外部的网络时,路由器使用默认路由(用 0.0.0.0 表示)。末节区域不能包含 ASBR(除非 ABR 也是 ASBR)。
绝对末节区域(Total Stub Area):这种 Cisco 专用的区域不接受来自自治系统外部的路由以及来自自治系统中其他区域的汇总路由(也就是该区域不接受 LSA 3 / 4 / 5)。需要将分组发送到区域外的网络时,路由器使用默认路由。绝对末节区域中不能有 ASBR(除非 ABR 也是 ASBR)。
ABR 区域边界路由器
全称:Area Border Routers,位于一个或多个OSPF区域边界上、将这些区域连接到主干网络的路由器。ABR被认为同时是OSPF主干和相连区域的成员,可以同时属于两个以上的区域,但其中一个必须是骨干区域(area 0)。因此,它们同时维护着描述主干拓扑和其他区域拓扑的路由选择表。
ASBR 自治系统边界路由器
全称:AS Boundary Routers,与其他AS交换路由信息的路由器称为ASBR,使用了多种路由协议。它位于OSPF自主系统和非OSPF网络之间。ASBR可以运行OSPF和另一路由选择协议(如RIP),把OSPF上的路由发布到其他路由协议上。只要一台OSPF路由器引入了外部路由的信息,它就成为了ASBR。ASBR必须处于非存根OSPF区域中。
NSSA 不完全自治系统
NSSA区域允许将非OSPF区域(如其他协议的网络)与OSPF自治系统(AS)连接起来,同时提供一定程度的AS外部路由信息汇总和过渡性能
Router ID:
是在OSPF区域内唯一标识一台路由器的IP地址(IP地址的形式)
Router ID选取取规则:
首先,路由器选取它所有loopback(路由器的环回接口,一个虚拟的接口,可以用来选举router id)接口上数值最高的ip地址
如果没有loopback接口,就在所有物理端口中选取一个数值最高的ip地址
根据接口类型的不同,在建立邻接关系时,ospf路由器会执行的操作也略有不同
在广播建立ospf中会有很多多余的hollo包,所以可以给到优先级建立主路由器,当主路由出问题后备份路由就会出来顶帖主
DR(主路由器)BDR(备份路由器)DRothers(从路由器)