前言
本章内容学习路由协议中的ospf链路协议,并且通过实验来熟练掌握。主要学习ospf的工作原理、主要参数,特性、和相关的报文分析。
一、原理
1.1:链路状态协议工作原理简介
OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protocol,简称IGP)。与RIP相对,OSPF是链路状态路有协议,而RIP是距离向量路由协议。 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表
- 架构介绍:花瓣形状,骨干区域为0区域,其他区域1、2、3都围绕区域0相连,及个别的特殊情况,可以通过虚拟链路来连接
- 信息传递:向邻居发送是自己知道的所有状态的链路状态信息
- 路由标识:Router-ID是网络上唯一用于标识的一台路由器,线网用路由器的环回口
来配置Router-ID,这边的地址是32位的公网IP地址,如果没有标,通过物理口来确认 - 区域规划:划分多个区域是为了优化网络性能
二、参数介绍
2.1:Router-id及DR选举原则(结合下文抓包分析)
2.1.1:hello报文与DR宣告
- DR/BDR选举是在接口宣告就启动选举等待时间wait40内进行,和2-way状态无关,
2way只是衡量邻居,有没有选举资格,不能说选举是在2way中(后)选举。 - 当有两台或者多台路由进入ospf状态时,进行选举的条件是都需要对方是2way状态才能参加选举。但不是选举的唯一条件,没有2way关系的邻居(候选人),仍然会进行选举。
2.1.2:DR与BDR选举原则
- 例如路由器R1先配置ospf 并宣告接口 (R1的route id 1.1.1.1),路由器R2(R2 route id 2.2.2.2)紧接着也配置ospf并宣告接口。此时R1开始发送hello包,并启动wait 40s 计时器。并将收到的hello包 放在自己备选DR/BDR 列表中。(如果40秒内没有收到任何HELLO包,就宣布自己是DR)。如果wait时间内收到就比较优先级/route id 越大的胜出。通过hello宣布选举结果。
2.1.3:DR的不抢占原则和wait时间
- 第一个wait时间,这个是每个路由器宣告进网络的时候都要启动的计时器
目的是防止DR抢占(ospf的DR有不抢占原则,就是当有人宣告自己是DR的时候。其他路由器默认承认)
还有个作用就是留出时间进行选举,尤其是初始网络这个时间可以等待收取路由器的hello来比较优先级和route id。 - DR有可能不是优先级最高的路由器
如果某个设备优先级最高,而且加入network的时间不晚于其他设备30s(waiting timer 的40s再留出10s,达到two-way状态),
就一定可以成为DR,晚于30s就不一定能成为DR了(取决于它能参加选举时,选举是否已经完成) - R1和R2优先级相同时