过程
- 每台路由器都选择一个IP地址作为自己的名字,(Router-ID)
2. 将自己的每个接口的网络信息,带宽信息进行描述,做成链路状态信息
3. 将Router-ID和链路状态一起发送给自己的邻居,并且也帮助其他设备转发
4. 最终会得到全网所有路由器的链路状态信息,通过分析可以得到全网拓扑图
5. 使用最短路径算法(SPF),得到去往每个目的地的最短路线,得到路由表
简介
- ospf在Cisco设备中的管理距离为120
- 不使用传输层的TCP/UDP进行数据封装,更新消息直接放在网络层后,协议号为89
- OSPF使用触发更新的机制,和邻居共享链路状态信息,而不是共享路由信息
- OSPF有邻居的概念,使用Hello消息来建立和维护邻居,在以太网中,10s更新一次,40s没收到就判定邻居失效。
- OSPF建立邻居有7个状态
- OSPF使用
224.0.0.5
和224.0.0.6
来更新LSA(链路状态通告) - ospf宣告的环回口不管子网掩码是多少,传播的时候都时32位
邻居建立过程
- down
表示OSPF启动了,由于某些原因,还没开始发送Hello
- init
表示收到了对方发给我的Hello消息,但是没有在对方的Hello消息中,看的自己的Router-ID
- 2-way
在收到对方发给我的Router-ID中发现了自己的Router-ID
开始选举谁做指定路由器DR
- exstart(预开始)
开始选举谁来主导这个链路状态信息交换的过程,选举(Slave,Master)
注意,此阶段互相传递的消息格式是链路状态数据库摘要(但是内容为空)。
- exchange(预交换)
由Slave发送自己的链路状态数据的摘要给Master,由Master确认之后再将Slave需要的链路状态信息发回去
- loading
开始发送链路状态请求,然后接收对方发送的完整链路状态信息
- Full
完成当前阶段的链路状态数据库同步,之后只需要维持邻居关系和触发更新
LSA和多区域
- LSA(Link-State Advertisement ) ,链路状态通告:链路状态通告,里面包含了路由器的ID和链路状态相关的IP地址,带宽等信息。目前在OSPF内,一共有11中LSA
- LSU(Link-State Advertisement), 链路状态更新:链路状态更新,更新里面含有LSA
- LSDB(Link-State Database), 链路状态数据库:数据库中会记录每个LSA更新的路由器ID,会记录序列号,序列号用16进制表示。数据库每个LSA一个计时器,这个计时器是LSA老化时间,正常情况下1h就会然这条LSA失效,但OSPF每隔30min泛洪会更新一次LSA。
stub
- Stub(末梢区域):OSPF如果不想让非骨干区域学习到OSPF_AS外的条目,达到精简路由表的目的,可以在ABR上对末梢区域进行 area 1 stub 配置,这样ABR就不会向那个区域发送AS外的条目,还会产生一条 0.0.0.0/0 的路由,保障没有路由的情况下,这个区域也可以访问外界。本区域的所有路由器你都别忘了配置Stub,不然邻居关系无法建立。该区域不存在4、5类LSA。
stub no-summary
- Stub no-summary:如果做到极致精简,可以让末梢区域连OSPF其他区域路由也不学习,可以在ABR上对末梢区域进行 area 1 stub no-summary。no-summary 只需要在ABR上加。Stub no-summary 也被称为完全末梢区域。该区域不存在4、5类LSA,以及除了ABR默认路由三类LSA以外的3类
nssa
- NSSA(not so stub area):次末梢区域。由于Stub区域无法存在4、5类LSA,所以stub区域无法引入外部路由,如果使用NSSA区域来做末梢,就看可以引入外部路由条目,不过是以7类LSA的方式进入,并且会在NSSA区域边界路由器上被转为5类。area 1 nssa 默认情况下,NSSA不会像非骨干区域注入一条默认路由,不过可以手动注入一条默认路由的7类LSA:area 1 nssa default-infor orig
T-nssa
- T-NSSA (total-not so stub area)完全次末梢区域,除了可以存在7类LSA引入外部路由以外,其他功能和stub no-summary一致。area 1 nssa no-summary
6种LSA
- 1类LSA :路由器LSA,每台路由器都会产生,用于描述自身的接口状态。
- 2类LSA : 网络LSA,由DR产生,用于向全网告知自己所在的局域网的成员信息
- 3类LSA : 路由器汇总LSA,由ABR(区域边界路由器)产生,用来将其他区域的路由进行汇总,然后转发到本区域。ARB传递的是路由表类似的LSA,会丢失掉拓扑信息,所以区域之间是无法得知拓扑。
- 4类LSA : ASBR汇总LSA,Link state ASBR,由ABR产生,用来告知本区域的路由器如何离开本OSPF自治系统。学校大门在哪里
- 5类LSA : 由ASBR产生,用来告知本区域的路由器外面的条目。学校大门外面有哪些地方
- 7类LSA : 用于在NSSA区域表示外界路由,由NSSA区域的边界路由产生,发布到其他区域时,会被ABR转换为5类的LSA。
OSPF Codes
标识 | 含义 |
---|---|
O | 区域内的路由 |
O IA | 不同区域之间的路由 |
OE1 | 区域外的路由(不是OSPF协议的路由),会累加METRIC值(默认20) |
OE2 | 区域外的路由(不是OSPF协议的路由),不累加METRIC值(默认20),由外部重分布进来默认使用OE2。 |
ON1 | 区域外的路由,由NSSA的ASBR重发布进来的,会累加Metric值 |
ON2 | 区域外路由,由NSSA的ASBR重发布进来的。NSSA区域中的路由器没有LSA-5,用LSA7算出的external路由,就标记为ON1/2 |
OSPF的缺点
1、HMAC,Hash-based Message Authentication Code(哈希消息认证码)只有完整性和源认证,不支持私密性。
2、报文比RIP大
3、配置复杂(这个不是人的问题吗)