收敛快,选路佳,占用资源少
OSPF---Open SHORTEST PATH FIRST---开放式最短路径优先协议
与rip对比
- OSPF计时器的时间短于RIP,所以,从收敛角度看,OSPF优于RIP;
- OSPF由于使用的算法可以避免环路产生,并且,OSPF以带宽作为开销值,所以,从选路看,OSPF优于RIP
- 从单个数据包的资源占用分析,OSPF占用的资源远远大于RIP.但是,从整体来看,RIP存在30s一次的更新,导致RIP整体更新量巨大.而OSPF本身明确其最大的问题在于资源占用,所以,从设计之初便采取了很多减少资源占用的手段,所以,从资源占用的角度看,整体上还是OSPF小优于RIP
相同点:
RIP有三个版本:RIPV1,RIPV2----IPV4 RIPNG---IPV6
OSPF有三个版本: OFPSV1(胎死腹中了属于)
OSPFV2—IPV4, OSPFV3—IPV6
Ospfv2和RIPV2一样,都是无类型的路由协议.
OSPFV2和RIPV2都以组播的形式发送,RIPV2---224.0.09
OSPF---224.0.0.5(OSPF路由器)/224.0.0.6(DR,BDR)
OSPFV2和RIP都支持等开销负载均衡
不同点:
RIP只用于小型网络,OSPF可以应用在中大型的网络中.
OSPF为了适应中大型网络环境,需要进行结构部署__----区域划分
划分区域的目的:区域内部传递拓扑信息.区域之间传递路由信息
中间设备-----区域边界路由器(ABR)---同时属于两个区域,一个接口对应一个区域,且必定有一个接口对应骨干区域.
区域之间可以存在多个ABR
一个ABR也可以属于多个区域
区域划分的要求:
- 区域间必须存在ABR.
- 区域划分必须遵循星型拓扑结构.所有区域连接在中间区域(骨干区域)
为了方便管理,我们给每个区域审定了一个编号(区域id---area ID)—由32位二进制构成.其中,骨干区域的ID为0
我们把只包含一个区域的OSPF网络成为单区域OSPF网络
我们把包含多个区域的OSPF网络成为多区域OSPF网络
------------------------------------------------------------------------------------------------------------------------------
-
OSPF的数据包类型
一共有五种数据包
-
- hello包:用来周期发现,建立和保活邻居关系 ---–默认10s为一个周期
4倍的hello时间---40s---dead time---死亡时间
因为OSPF传递的是拓扑信息,所以,需要对每台路由设备进行标定.所以,需要给每台设备添加RID
- 全网唯一
- 格式统一 (必须按照IP的格式定义
RID有两种生成方法:
- 手动配置
- 默认生成,设备会首先看环回接口,环回接口有多个取大数值的作为RID;如果没有环回接口,看物理接口,选最大数值的作为RID;
Hello包会携带RID
-
- DBD包---数据库描述报文---携带的是路径信息摘要
- LSR包---链路状态请求报文----基于DBD包请求本地未知的LSA信息
- LSU包---链路状态更新报文---真正携带LAS信息的数据包
- LSAck包—链路状态确认报文
OSPF会每30min进行一次周期更新.发送DBD包进行比对,若存在缺失信息,再根据LSR/LSU包进行数据更新
-
OSPF的状态机
Hellow;
Down state---启动OSPF后,发送hello包后进入下一个状态
Init state(初始化状态)---收到的hello包包含本地的RID信息,则进入下一个状态
TWO-WAY---双向通讯状态—标志着邻居关系的建立
(条件匹配)匹配成功则进入下一个状态,否则,仅依靠hello包进行10s一次的周期保活,维持邻居关系
条件匹配: (至少4台设备才能有邻居关系, 主要指的还是接口)
指定路由器---DR()---
备份指定路由器---BDR(与其他设备保持邻接关系)
在一个MA(多路访问)网络中 若所有设备均为邻接关系,将出现大量的重复更新,所以需要选举DR/BDR,所有其他设备之间维持邻居关系即可.
BMA(广播多路访问)—以太网 NBMA(非广播多路访问)
DR/BDR的选举规则:
- 先看优先级,优先级大的为DR,次大的为BDR.
华为设备优先级为1,可以通过修改优先级的大小干涉DR/BDR
DBD包;
[Huawei-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
(自定义DR)---优先级为0 代表放弃选举DR/BDR
Reset ospf 1 process(重启ospf协议)
- 优先级相同时,则比较RID,RID大的路由器的对应接口为DR,次大的为BDR
DR/BDR的选举是非抢占模式的,选举时间是40s
Exstart state---主从关系选举---使用未携带数据的DBD包发送 通过比较rid大小进入下一阶段(为了错开数据交换的时间,精神资源占用)
LSDB----链路状态数据库
Exchange state—准交换状态---使用携带具体数据的DBD包进行目录共享,需要ACK包确认
LSR包: LSU包
Loading ---加载状态---通过对比DBD包和本地数据库中的信息,基于本地未知的LSA信息发送LSR请求,对端使用LSU包回复,需要ACK确认
Full -----最终状态
Full状态---标志着邻接关系的建立,和邻居关系进行区分.邻居关系仅可以使用hello包进行周期保活,只有邻接关系才可以交换信息
--------------------------------------------------------------------------------------------------------------------------
- OSPF的工作过程
启动配置完成后,ospf向本地所以运行协议的接口以组播224.0.0.5的形势发送hello包,hello包中会携带本地的rid以及本地已知邻居的RID,之后,将收集的邻居关系记录在一张表上—邻居表
邻居关系建立后需要进行条件匹配;失败则停留在邻居关系,仅使用hello包进行保活
匹配成功,则开始建立邻居关系.首先,先使用未携带数据的DBD包进行主从关系选举,之后使用携带数据信息的DBD包进行共享链路状态数据库目录,之后基于本地未知的LSA信息使用LSR/LSU/LSACK包进行获取.完成本地数据库的建立,生成数据库表
最后,基于本地的LSA信息,生成有向图及最短路径树,之后计算从本地到未知网段的路由条目,将这些路由条目添加到路由表中
收敛完成后,hello包10s一次周期保活;30min一次周期更新,比对数据库
结构突变;
- 突然新增一个网段---直接发送携带数据的LSU包进行更新,需要ACK确认.触发更新
- 突然断开一个网段---直接发送携带数据的LSU包进行更新,需要ACK确认.触发更新
- 无法沟通----40s
---------------------------------------------------------------------------------------------------------------------------------
- OSPF的基础配置
- 启动
- [r1]ospf 1 router-id 1.1.1.1
- [r1-ospf-1]ar
- [r1-ospf-1]area 0
- [r1-ospf-1-area-0.0.0.0]
- [r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0-