ospf协议号-----89
选路佳,收敛快,占用资源少
RIP --- RIPV1,RIPV2 ---- IPV4
RIPNG --- IPV6
OSPF --- OSPFV1(实验室阶段夭折),OSPFV2 --- IPV4
OSPFV3 --- IPV6
RIPV2和OSPFV2的异同点
1,RIPV2和OSPFV2都是无类别(传递路由信息时是否携带子网掩码)的路由协议。
2,RIPV2(224.0.0.9)和OSPFV2(224.0.0.5,224.0.0.6)都使用组播来更新信息。
--- 所有224.0.0.X格式的组播地址我们称为本地链路组播
--- 目标IP地址是本地链路组播的数据包,中的TTL值被设定为1。
--- 所有本地链路组播都会存在对应的组播MAC地址
--- 01-00-5e-后24位为组播IP地址的后24位。
3,RIPV2和OSPFV2都支持等开销负载均衡
RIPV2只能适用于中小型网络环境中,而OSPFV2可以适用于中大型网络环境。
--- OSPF支持结构化部署 --- 区域划分
如果网络规模不大,只存在一个区域,这样的OSPF网络 --- 单区域OSPF网络
如果存在多个区域,则我们称为 --- 多区域OSPF网络
区域划分的目的 --- 区域内部传递拓扑信息,区域之间传递路由信息。
区域边界路由器 --- ABR --- 同时处于多个区域,一个接口连接一个区域,并且,有一个接口连接在区域0中.
区域之间,可以存在多个ABR设备,一个ABR设备也可以连接多个区域。
区域划分的要求:
1,区域之间必须存在ABR设备
2,必须按照星型拓扑结构划分 --- 所有区域需要连接在骨干区域上
区域ID(area ID) --- 用来区分和标识OSPF的不同区域。 --- 32位二进制构成 --- 可以
使用点分十进制来进行表示,还可以直接使用十进制来表示。其中,骨干区域的区域ID
必须设置为0。
一、OSPF的数据包
hello包,DBD包,LSR包,LSU包,LSACK包
1,hello包 --- 周期性的发现,建立,保活邻居关系。
hello时间 --- 10S(30S)
Dead time --- hello时间的4倍。
RID --- 可以区分和标定不同的路由器 --- 32位二进制构成 --- 1,全网唯一;2,格式统一(采用点分十进制的方式来表达)
RID的获取方法:
1,手工配置 --- 仅需满足以上两点需求即可
2,自动生成
--- 1,优先选择环回接口中IP地址最大的作为RID;
--- 2,如果没有环回接口,则选择物理接口中IP地址最大的作为RID。
2,DBD包 --- 数据库描述报文 --- 数据库 --- LSDB(链路状态数据库 --- 存储LSA信息的数据库)
3,LSR包 --- 链路状态请求报文 --- 基于DBD报文请求未知的LSA信息
4,LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据报
5,LSACK -- 链路状态确认报文
OSPF存在30min一次的周期更新。
- OSPF的状态机
DOWN状态 --- 启动OSPF,发送hello包之后进入下一个状态;
Init(初始化)状态 --- 收到hello包中存在本地的RID,则将进入到下一个状态
Two-way(双向通信)状态 --- 标志着邻居关系的建立。
(条件匹配)条件匹配成功,则进入下一个状态;如果失败,则停留在邻居关系,仅使
用hello包进行周期保活
Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,为主的可以优
先获取LSA信息;
--- 通过比较RID进行主从关系选举,RID大的为主,为主可以优先获得LSA信息。为主的可以主导隐形确认,可以定义隐形确认中的序列号。
--- 这里使用未携带数据的DBD包来进行主从关系选举主要是为了和之前的邻居关系进行区分。
EXCHANGE(准交换)状态 --- 使用携带数据的DBD包共享目录信息
LOADING(加载)状态 --- 使用LSR,LSU,LSACK包获取未知的LSA信息
FULL状态 --- 标志着邻接关系的建立。
--- 邻接关系的设定是为了和之前邻居关系进行区分,邻居关系只是单纯的使用hello包进行保活,而只有邻接关系,才会发LSA信息。
- OSPF的工作过程
启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包,hello包中包含本地的RID以及自己已知的邻居的RID。之后,将收集到的邻居关系记录在一张表 --- 邻居表。
邻居表建立完成后,将进行条件匹配;如果失败,则停留在邻居关系,仅使用hello包进行周期保活。
如果匹配成功,则开始建立邻接关系。首先使用未携带数据的DBD包进行主从关系选举,之后使用携带数据的DBD包共享目录信息。之后,本地使用LSR/LSU/LSAck包获取未知的LSA信息。完成本地数据库的建立 --- LSDB --- 数据库表。
最后,基于本地的链路状态数据库,生成有向图及最短路径树,之后,计算出到达未知网段的路由信息。将生成的路由信息加载到本地的路由表中。
收敛完成后,OSPF依然会没10S一次发送hello包进行周期保活,每30min进行一次周期更新。
结构突变:
1,突然新增一个网段 --- 触发更新,会立即将变更信息通过LSU包传递出去,需要ACK
确认;
2,突然断开一个网段 --- 触发更新,会立即将变更信息通过LSU包传递出去,需要ACK
确认;
3,无法通信 --- dead time
- OSPF的基本配置
1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0 --- 反掩码 --- 由连续的1和连续的0组成,其中,0对应位不可变,1对应位可变。
[r1]display ospf peer --- 查看OSPF邻居表
[r1]display ospf peer brief --- 查看邻居表摘要信息
[r1]display ospf lsdb --- 查看数据库表
[r1]display ospf lsdb router 2.2.2.2 --- 展开一条LSA信息
华为体系下OSPF协议的默认优先级为10。
COST = 参考带宽 / 真实带宽 ---- 华为体系下,参考带宽的默认值为100Mbps
注意:开销值如果算出来是个小数,如果是大于1的小数,则直接取整数部分;如果是小于1的小数,直接取1。
[r1-ospf-1]bandwidth-reference 1000--- 修改参考带宽,要将其他一并修改
Info: Reference bandwidth is changed. Please ensure that the reference bandwidth that is configured for all the routers are the same.