开放最短路径优先协议 OSPF ( Openshortest PathFirst,OSPF )是 IETF 组织建议使用的内部网关协议( IGP ) OSPF 是一种链路状态协议。 OSPF 使用 Dijkstra 的最短优先算法 (SPF) 。是公用的协议。
OSPF 协议的特点:
使用区域的概念,这样可以有效的减少路由选择协议对路由器的 CPU 和内存的占用,划分区域还可以降低路由选择的通信量。
完全无类别处理地址问题,排除了像不连续子网这样的又累路由选择协议的问题;
支持无类别的路由选择表查询、 VLSM 和用来进行有效地址管理的超网技术;
支持多条路由等价负载均衡(注:不支持不等价负载的)
保留组播地址来减少不宣告 OSPF 报文的设备的影响;
支持路由选择认证
使用可跟踪外部路由的路由标记
OSPF 是使用端口号 89 , OSPF 支持明文和密文 MD5 认证。 OSPF 不会使用周期更新,它使用的是触发更新,只有路由发生变动的情况下面才会发送更新信息。实际上面, OSPF 是间接设置了周期更新的路由规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值的时候,该路由会就产生一次更新。默认的时间为 1800 秒( 30 分钟),所有 OSPF 路由的定期更新周期默认为 30 分钟。
OSPF 的路由管理距离是 110 , OSPF 只支持等价负载均衡( EIGRP 是支持不等价负载的)
OSPF 的工作流程:
宣告 OSPF 的路由从所有启动 OSPF 协议的接口上面发出 Hello 报文( 224.0.0.6 )如果有两台路由共享一条公共数据链路,并且能够相互陈公公协商它们各自 Hello 报文中的某些参数,那么它们就会成为邻居关系( Neighbor ) ;
邻接关系( Adjacency ),可以想象成为一条点到点的虚链路,它是在一些邻居路由器之间构成的。 OSPF 协议定义了一些网络类型和一些路由器类型的邻接关系。邻接关系的简历是由 Hello 保卫信息的路由器类型和交换 Hello 保卫信息的网络类型决定的。
每台路由都会在所有形成邻接关系的邻居之间发送链路状态通告( Link State Advertisement,LSA ) .LSA 通告描述了路由器所有的额链路信息(或接口)和链路状态信息。这些链路可以是一个末稍网络( Stub network, 是指没有和其他路由器相连的网络)的链路、到其他 OSPF 路由器的链路、到其他区域网络的连理、或者是外部网络的链路,由于这些链路状态信息的多样性, OSPF 定义了许多的 LSA 类型。
每一个收到从邻近路由器发出的 LSA 通告的路由器都会把这些 LSA 通告记录在它的链路状态数据库当中,并且发送一份 LSA 的拷贝给该路由器的其他所有邻居。
通过 LSA 泛洪到整个区域,所有路由器都会形成同样的连理状态数据库。
当这些路由器的数据库都完全相同的时候,每台路由器都讲以它自身为根,使用 SPF 算法去计算一个环路的拓扑图,来描述它所知道的到达没一个目的的最短路径。这个拓扑图就是 SPF 算法树。
最后,每一台路由器都讲从 SPF 算法树中构建出自己的路由选择表。
邻居之间交换的 Hello 保卫称为 Keepalive 保卫,并且每隔 30 分钟重传一次 LSA 。
Hello 报文的作用:
发现邻居
Hello 报文在邻居之间担当 Keepilve 角色
确保邻居路由之间的双向通信
在非广播多路访问( NBMA )网络上面选取指定路由器( DR )和备份指定路由器( BDR )
在 Cisco 路由上面缺省的 Hello 时间是 10S ,在 NBMA 的网络上面缺省是 30S 。
无效时间是缺省值的 4 倍 40S ,可以使用 ip ospf dead-interval 来修改。
Hello 报文包含的信息:
始发路由的路由 ID ( ROUTERID );
始发路由接口的区域 ID ( AREAID );
始发路由接口的地址掩码;
始发路由接口的认证类型和认证信息;
始发路由接口的 Hello 时间间隔;
始发路由接口的路由无效时间间隔
路由的优先级
指定路由器 (DR) 和备份指定路由器 (BDR)
标识可选的性能的 5 个标记位
始发路由的所有有效邻居的路由器 ID
OSPF Hello Packet
OSPF 的网络类型:
NBMA 网络, X.25 ,帧中继 ,ATM 等。可以连接两台以上的路由器,但是它们没有广播数据包的能力。一个在 NBMA 网络上的路由器发送的报文讲不能被其他与之相连的路由器收到。在 NBMA 网络上面 OSPF 路由器需要选择 DR 和 BDR ,并且所有的额 OSPF 报文都是单薄的。
广播型网络是多址的网络,连接在这种网络上面可以接受到个别传送的报文。广播网络会选举 DR 和 BDR
点到点网络,是连接单独的一对路由的。在点到点网络上有效的邻居总可以形成邻接关系。在这些网络上的 OSPF 报文的目的地址也总是保留的 D 类地址 244.0.0.5 ( ALLSPFRouters )
点到多点 (Point-to-Multipoint)
点到多点网络是 NBMA 网络的一个特殊配置,可以看做是一群点到点的集合。在这些网络上面的额 OSPF 路由器不需要选举 DR 和 BDR ,因为这邪网络可以被看作点到点链路,而且 OSPF 报文是组播的。
可以被路由器认为是没有编号的点到点网络的一种特殊配置。在虚链路上 OSPF 报文是以单薄的方式发送的。
网络类型
Hello时间
选举DR/BDR
邻居建立方式
点到点
(Point-To-Point)
10秒
否
自动
点到多点
(Point-To-Multipoint)
30秒
否
自动
广播
(Broadcast )
10秒
是
自动
非广播
(Non-Broadcast )
30秒
是
手工
点到多点非广播
(Point-To-Multipoint Non-Broadcast)
30秒
否
手
DR 和 BDR 的选举过程:
在路由器和它的邻居路由之间首先建立成功双向通信( 2-way communication )接着检查每台邻居路由器发送的 Hello 报文的优先级、 DR 和 BDR 等字段。列出所有具有 DR 和 BDR 选取资格的路由器的列表(也就是说,路由的优先级要大于 0 ,并且它的邻居状态至少要 2-way 的);接着,所有的路由器也将宣称自己是 DR 路由器( Hello 报文的 DR 字段是他们自身接口的地址);所有的路由器将宣称自己是 DR 路由器( Hello 报文的 DR 字段是它们自身接口的地址)除非没有选取资格。路由器计算的时候也将在这个具有选取资格路由器的列表中包括它本身。
从具有选取资格的理由七的列表中,创建一个还没有宣告为 DR 路由器的所有路由器的子集(宣告子集为 DR 路由器的路由器不能被选取为 BDR 路由器)
如果在这个自己中的一个或者多个邻居路由器,它们在 Hello 报文的 BDR 字段包含了它们自己的接口地址,那么具有最高优先级的邻居路由器将被宣告为 BDR 路由器。在优先级相同的条件下,具有最高的路由器 ID 的邻居路由器将被选作 BDR 路由器。
如果一个或者多个具有选取资格的路由器在 Hello 报文的 DR 字段包含它们自己的接口地址,那么具有最高优先级的邻居路由器将被宣告为 DR 路由器。在优先级相同的条件下面,具有最高的路由器 ID 的邻居路由器将被选作 DR 路由器。
如果没有路由器宣称自己是 DR 路由器,那么新选取的 BDR 路由器将成为 DR 路由器。
如果正在执行计算机的路由器是新选取的 DR 或者 BDR 路由器,或者它不再是 DR 或者 BDR 路由器了,那么就重复以上的 2-6 步骤。
类型 1 路由 LSA
起源:每个区域里面的路由器的每个接口都会产生
泛洪范围:只能在本区域泛洪
内容:描述了当前接口直连链路的状态信息( IP 前缀,接口类型)
类型 2 网络 LSA
起源:在 MBA 网络里面 DR 产生
洪泛范围:只能在本区域
内容:包含了 DR 所直连的状态信息( IP 前缀)
类型 3 LSA
起源: ABR 产生
洪泛范围:在整个 OSPF 网络中洪泛
内容:包含了当前 ABR 所连接的多个区域的 IP 前缀信息
4 类 LSA
起源: ASBR 所在的区域的 ABR 产生的
洪泛范围:在整个 OSPF 网络中洪泛
内容: ABBR RID
五类 LSA
起源: ASBR 产生
洪泛范围:在整个 OSPF 网络中洪泛
内容:外部路由条目
7 类 LSA NSSA 区域允许 ASBR 存在,在外部路由重分发进来后,将产生 7 类 LSA , 7 类只会在 NSSA 区域传递,当要传递到其他区域的时候, ABR 讲把 7 类 LSA 转换成 5 类 LSA 。
Like State ID
LSA类型
Link State ID内容
LSA 1
是产生LSA 1的路由器的Router-ID。
LSA 2
因为LSA 2是由DR产生的,所以LSA 2的Link State ID是DR的接口地址。
LSA 3
是目标网络的网络地址,其实这个等同于路由条目,也就是路由表里显示的是什么,LSA 3的Link State ID就是什么。
LSA 4
是ASBR的Router-ID
LSA 5
和LSA 3的一样,还是目标网络的网络地址,路由表里显示的是什么,LSA 5的Link State ID就是什么。
Link ID
链路类型(Link Type)
Link ID内容
Stub Network Link
使用接口的网络号和子网掩码来表示。
Point-To-Point Link
邻居的Router-ID。
Transit Link
是DR的接口地址。
Virtual link
同Point-To-Point Link,是邻居的Router-ID。
Link Data
是接口上的 IP 地址,如果链路类型( Link Type )为 Stub Network Link ,则 Link Data 是子网掩码。
OSPF 路由表项与 LSA 类型
1.O 由类型 1 、 2LSA 组成
2.OIA 由类型 3 、 4LSA 组成
3.OE1 、 E2 有类型 5LSA 组成
OE1 跟 OE2 的区别在于 Cost
如果是 OE2 到外部路由只计算 ASBR 到达目标网络的开销
如果是 OE1 到外部路由外部成本 + 内部成本
OSPF 特殊区域:
1.Stub (末节区域)拒绝类型 4 和类型 5 的 LSA ;下放一条 3 类默认路由;
2.Totally stub area (完全末节区域)拒接类型 3 、类型 4 和类型 5 的 LSA 。而对于其他局域的非 OSPF 自治系统的网络使用默认路由代替。(下放一跳三类的默认路由)
3.NSSA (同末节区域)可以存在 ASBR ;
4.Totally NSSA (同完全末节区域)可以存在 ASBR
OSPF 虚链路( Virtual Link )
1.OSPF 虚链路必须是在两个拥有共同区域的 ABR 之间建立,其中必须至少一个 ARB 是连接骨干( AREA0 )的。
2.ISOF 虚链路被认为是骨干区域的一个接口,一条链路,也需要建立 OSPF 邻居,但在邻居建立之后,链路上是没有 Hello 包传递的。
3. 虚链路地址一定要是对方的 Router-id
OSPF 认证(认证分为区域认证和链路认证)
1. 区域认证:任何接入这个区域 的路由器都要进行认证;
2. 链路认证:与该链路想了的路由器接口都需要配置认证;
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com