一.ospf(Open Shortest Path First,OSPF)开放式最短路径优先协议
二.ospf五种包
1.hello包,用于邻居的发现,关系建立和周期保活,每台设备必须拥有唯router-id
2.DBD数据库描述,用于携带本地数据库的目录
3.LSR链路状态请求,再查看对端邻居的DBD后,基于本地未知的LSA查询,向对端发出请求。
4.LSU链路状态更新,用于携带各种LSA信息
5.LSack链路状态确认,用于确认接受对端信息
LSA链路状态通告,具体的路由或者拓扑信息
三.七种状态机
1.Down: 一旦本地发出hello包进入下一个状态机
2.init初始化:一旦收到hello包,存在本地的RID
3.2way 双向通讯:邻居关系建立标志
条件匹配:在点到点直接进入下一个状态机,MA(多路访问)中选举DR/BDR,所有非DR/BDR不能进入下一个状态机
4.Exstart预启动:使用不携带数据库目录信息的DBD包进行主从关系的选举,RID大的为主,优先进入下一个状态机
5.Exchange准交换:使用携带目录信息的DBD 包进行进行交换,需要ACK确认
6.Loading加载:在看完对端DBD后,使用LSR信息查询本地未知的LSA信息,对端使用LSU来进行LSA的回复,本地还需要使用ACK来确认接收到的LSU包
7.Full 邻接关系建立的标志
四.ospf的工作过程
启动配置完成后,本地组播224.0.0.5发送hello包,hello包将携带本地RID值及本地已知所有的RID,若接收来自对端的hello包中存在本端的RID,那么将视为双方认识,邻居关系建立,生成邻居表
邻居关系建立,条件匹配,匹配失败将停留于邻居关系,仅hello包,周期保活即可,若条件匹配成功,可以建立邻接关系,先使用不携带数据库信息的 DBD包进行主从关系的选举,RID大为主,优先共享数据库目录,之后本地存在基于对端的 DBD来查找未知的LSA信息,之后使用LSR/LSU/LSack来获取未知的LSA信息最终生成数据库表(LSDB-数据链路状态数据库)之后本地启用SFP算法,基于本地的LSDB成成有向图,在计算出最短路径树,在基于树形结构,算出本地为起点到达所有未知网段的最短路径加载本地的路由表,收敛完成后,hello包周期保活,每30min邻接关系在进行DBD对比,若一致继续保活,不一致重新收敛
五ospf的基础配置
网络拓扑
配置r1,r2,r3的ip地址以及环回地址
R1:
g0/0/0:10.0.12.1/24
loopback0:1.1.1.1/32
R2
g0/0/0:10.0.12.2/24
g0/0/1:10.0.23.1/24
loopback0:2.2.2.2/32
R3
g0/0/0:10.0.23.2/24
loopback0:3.3.3.3/32
[r1]ospf 1 router-id 1.1.1.1启动协议,需要定义进程号
宣告:1.激活 2.路由或拓扑 3区域划分
[r1-ospf-1]area 0 区域划分
[r1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255 直连网段 反掩码
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
r1与r2从邻居建立到邻接建立的过程
r1,r2,r3关系建立后
用r1ping3.3.3.3
能够发现是可以ping通
区域划分规则
1.星型接口 骨干区域为0, 大于0为非骨干区域,所有非骨干区域必须连接到骨干区域
2ABR 域间路由器,两个区域互联时,必须存在ARB-同时工作在两个区域