网络协议分析——OSPF


OSPF
【链路状态协议和距离矢量协议的区别】
距离矢量:发送更新信息时以路由表的形式发送
链路状态:发送更新信息时以拓扑表的形式发送
路由表:存放前往目标的最优路径
拓扑表:存放前往目标的所有路径(所有设备对于网络的认知都一致,可以认识整个网络结构)
【OSPF】
一、基本介绍
1、Open Shortest Path First,开放最短路径优先
2、属于链路状态协议
①链路:接口的相关信息
②状态:邻居关系的建立
3、收敛速度较快
4、工作位置:基于IP层之上的89号端口
(RIP--UDP 520)
5、路由更新方式--组播
组播地址:224.0.0.5
224.0.0.6
(RIP--224.0.0.9)
二、术语
1、RID--router ID:唯一标识一台ospf路由器
网络中唯一标识一台通信设备:IP地址
唯一标识一台通信设备:Mac地址
选举规则:
①手动指定的RID具有最高优先级,并且不会随着网络拓扑的变化而变化
②回环口的IP地址,越大越优
③双UP的物理接口IP,越大越优
④选举过程非抢占
2、区域
骨干区域:区域0
非骨干区域:非0区域
注意:所有非骨干区域对于其他区域的路由学习都是通过骨干区域,非骨干区域必须和骨干区域互联
3、LSA--链路状态通告
ospf中所有的信息同步都是依赖于LSA
【三张表】
1、邻居表:表示邻居关系的建立及状态,邻居关系成功建立会形成邻居表
R1#show ip ospf neighbor
2、拓扑表:通过设备交互LSA信息,形成拓扑表(拓扑表-链路状态数据库-LSDB)
R1#show ip ospf database
3、路由表:利用SPF(最小生成树)算法计算拓扑表,得到最优路径,存放到路由表
R1#show ip route ospf
【配置】
R2(config)#router ospf 1 --启用ospf协议
R1(config-router)#router-id 1.1.1.1 --手动指定RID
R2(config-router)#network 192.168.12.0 0.0.0.255 area 0
R2(config-router)#network 192.168.23.0 0.0.0.255 area 0
R1#clear ip ospf process --清理/重置OSPF进程
Reset ALL OSPF processes? [no]: y
正:255.255.255.224
反:0.0.0.31
正反掩码每一位之和为255
【五个报文】
1.hello包:用于建立和维持邻居关系:
(1)邻居的建立条件:①hello间隔和死亡时间要一致②区域要一致
2.DBD:数据库摘要,用于向对方通告LSA信息
(1)I:init:1代表第一个DBD包
(2)M:more:1代表后面还有更多的包
(3)MS:master:1代表主,0代表从
3.LSR:链路状态请求包:对比自己的DBD,向对方发送请求包,只有主会发送(有争议地方)
4.LSU:链路状态回复包:对LSR回复,主从都会发送
5.LSack:链路状态确认包:对LSU包进行确认,ospf就是通过该报文来保证路由更新的可靠性
【七个状态】
1.down:没有发现hello包,没法建立邻居
2.init(初始状态):启用ospf协议后,路由器就会向224.0.0.5发送和接收邻居的hello报文
3.2-way(双向通道):在发送hello包的时候会把自己RID一起发送给对方,如果双方都将对方的RID记录到hello包时,说明建立邻居
4.exstart(预启动状态):开始发送数据库摘要,进行主从关系的选举
5.exchange(交换状态):相互间交换数据库摘要,通过比较,请求缺少的LSA
6.loading(加载状态):发送LSR,LSU,LSACK,专门学习对方的详细的LSA
7.full:LSDB已经同步

