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.