一、什么是OSPF?
OSPF(Open Shortest Path First)中文名称为开放式最短路径优先协议,顾名思义,是一种基于链路状态协议,属于无类别的IGP
特点:更新量大,但是配置简单,应用范围广。为了缓解更新量大这一缺点,就不得不进行结构化部署:区域划分(区域内传拓扑,区域间传路由)和地址规划
更新方式:组播更新224.0.0.5或224.0.0.6,具有触发更新和周期更新,周期更新30min一次
二、OSPF的工作原理
1、OSPF的数据包
Hello包:用于邻居、邻接关系的发现、建立、周期保活(周期收发)
DBD包:数据库描述表,用来描述自己的LSDB目录
LSR:链路状态请求,用于向对方请求自己缺少的LSA
LSU:链路状态更新, 携带各种具体的LSA信息,给对方提供缺少的部分
LSACK:用于对收到的LSU做出回应
其中,LSA为链路状态通告—具体的每条拓扑或路由信息
2、OSPF的状态机
DOWN——尚未接触,一旦收到Hello包进入到下一状态
ATTEMPT——此状态只在NBMA网络中存在,表示没有收到邻居发送的任何信息,但是已经周期性地向邻居发送报文
INIT——初始化,一旦接收到包含自己routerid的Hello包进入下一状态
2-WAY——双向通讯,邻居关系建立的标志
条件:点到点直接进入下一状态 MA网络进行40sDR/BDR选举,非DR/BDR间不能进入下一状态
EXSTART——预启动阶段,使用不携带数据库目录的DBD包进行主从关系选举,RID数值大为主,优先进入下一个状态
EXCHANGE——准交换,使用携带新的的DBD进行数据库目录共享
LOADING——加载状态,查看完对端的DBD之后,基于本地未知的LSA信息,使用LSR请求,对端发来LSU更新包,本地使用LSACK包来确认
FULL——转发,邻接关系建立的标志
三、OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号;进程号仅具有本地意义;
同时配置RID,全网唯一;使用IPV4地址格式;
手工配置—环回接口最大地址数值---物理接口最大地址数值
[r1-ospf-1]
宣告:1)区域划分 2)激活接口协议 3)传递接口信息
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
四、DR,BDR的选举
在MA网络中,同一个网段有多台路由器的存在,如果这些路由器之间全都建立对应的邻接关系,那么更新量将非常巨大,为了缓解这个状况,于是产生了DR和BDR。
DR和BDR是什么??
我们可以理解为,DR是一个老大,而BDR是老二,所有非DR/BDR的路由器,全都与DR和BDR路由器建立邻接关系,但是彼此之间只是邻居关系。非DR/BDR路由器将更新包发送给DR/BDR,然后再转发给其余路由器,这样一来,避免了LSA的重复,也降低了更新量。
BDR是老二,在DR出现故障不能发送更新包的时候,BDR会顶替DR的位置,因此它和其他的路由器也是邻接关系
DR和BDR的选举主要有两种方式
1、修改接口的优先级
进入接口后,输入OSPF dr-priority,后面加优先级数,数字越大,优先级越高
2、修改router-id
如果优先级相同,路由器会默认选routerid更大的一方为DR
修改routerid的方法主要有三种:
首先路由器默认的id是第一个配置的接口,如果配置了环回口,在重启ospf(在用户视图输入reset ospf process)之后,会优先选环回口为router-id,或者将第一个配置的接口删除重新配置即可。
第二种方式最为简单,就是直接在系统视图下修改router-id(在系统视图输入router id +修改的id),修改完成之后也需要重启OSPF
第三种,由于我们在OSPF协议中使用的是和OSPF相关的routerid,可以在进入OSPF模式的指令后,加入routerid+修改的id也可以完成routerid的修改