一、OSPF的版本
选路佳,收敛快,占用资源少 RIP存在3个版本 — RIPV1,RIPV2 — IPV4, RIPNG — IPV6 OSPF也存在三个版本 — OSPFV1(实验室阶段夭折),OSPFV2 — IPV4 OSPFV3 — IPV6
二、RIPV2和OSPFV2的异同点:
1.相同点
1,RIPV2和OSPFV2一样,都是无类别的路由协议(传递路由信息 的时候携带子网掩码),都支持VLSM和CIDR。 2,OSPFV2和RIPV2(224.0.0.9)都是以组播的形式传递信息。 ---- 224.0.0.5/224.0.0.6 3,OSPFV2和RIPV2都支持等开销负载均衡。
2.不同点
OSPF和RIP不同,RIP要求仅适用于中小型的网络环境中,OSPF可 以应用于中大型的网络环境中。
三、OSPF的区域划分
1.区域划分的目的:
区域划分的主要目的 — 区域内部传递拓扑信息,区域之间传递路由信息
2.OSPF网络区域:
OSPF为了适应中大型网络环境,需要进行结构化部署。— 区域划分
1.单区域 : 当网络规模不大时,我们也可以将OSPF网络划分在一个区域内,这样 的OSPF网络 — 称为单区域OSPF网络 2. 多区域: 如果,一个OSPF网络当中包含多个OSPF区域 — 称为多区域OSPF网络
3.区域边界路由器:ABR
同时处于多个区域,并且一个接口对应一个区域,至少有一个接口属于骨干区域。区域之间可以存在多个ABR,一个ABR也可以对应多个区域
4.区域划分的要求:
1,区域之间必须存在ABR 2,区域划分必须按照星型拓扑结构划分 ---- 所有区域需要连接在中心区域上,这个中心我们称之为骨干区域。
5. RID:
因为OSPF传递的是拓扑信息,需要将所有路由器的位置关系表示清楚,所以,需要有一个参数对所有的路由器进行区分和标定。我们引入RID来完成这个工作。 RID需要满足的条件:
- 唯一性(全OSPF网络内部唯一即可);
- 格式统一 — 由32位二进制构成,采用IP地址的格式
RID的获取方法:
- 手工配置:仅需满足以上两点要求即可。
- 自动获取:如果是自动获取,设备将会在自己环回接口的IP地址中选择最大的作为自己的RID。如果没有环回接口,则将在自己的物理接口上选择IP地址最大的作为RID。hello包中会携带这个RID。
四、OSPF数据包
1.hello包
用来周期发现,建立和保活邻居关系 hello的周期发送时间 ---- 10S(30S) 死亡时间 — dead time ---- 4倍的hello时间 ----40S(120S)
2.DBD包
DBD包 ---- 数据库描述报文 — 携带的是数据库(LSDB — 存放LSA信息的数据库)的目录信息
3.LSR包
LSR包 ---- 链路状态请求报文 — 基于DBD包请求未知的LSA信息
4.LSU包
LSU包 — 链路状态更新报文 — 真正携带LSA信息的数据包
5.LSAck包
LSAck包---- 链路状态确认报文 — 确认包
OSPF存在每30分钟一次的周期更新
五、OSPF的状态机:
1.Two-way
标志着邻居关系的建立。(条件匹配)
2.EXSTART状态
主从关系选举 ---- 使用的未携带数据的DBD包(主要 是为了和之前的邻居关系进行区分),通过比较RID大小进行主从关系选举,RID大的为主,可以优先进入下一个阶段。
3.FULL状态
标志着邻接关系的建立。 ---- 邻接关系主要是为了和之前邻居关系进行区分。邻居关系,仅能使用hello包进行周期保活,只有邻接关系可以去交换LSA信息。
4.总结
- down状态 — 启动OSPF之后,发出hello包进入下一个状态
- init(初始化)状态 —收到Hello包中包含本地的RID时进入下一个状态
- Two-way(双向通讯)状态 — 标志着邻居关系的建立(条件匹配)条件匹配成功,则进入下一个状态;否则,只能停留在邻居关系,靠Hello 包进行周期保活。
- Exstart(预启动)状态 —使用未携带数据的DBD包进行主从关系选 举,比较RID,RID大的为主,可以优先进入下一个状态
- Exchange(准交换)状态 — 使用携带数据的DBD包进行数据库目录摘要 的共享。
- Loading(加载)状态 — 查看对端的DBD包中的信息和本地的LSDB数据 库目录信息进行对比,基于未知的LSA信息发送LSR包,对端回复LSU包, 需要LSACK进行确认。
- FULL状态 —标志着邻接关系的建立
六、OSPF工作过程
- 配置完成后,OSPF向本地所有运行OSPF协议的接口以组播 224.0.0.5发送hello包。Hello包中携带本地的RID以及本地已知邻居的RID。之后,将收集到的邻居关系记录在一张表中 — 邻居表。
- 邻居表建立之后,将进行条件匹配;失败则将停留在邻居关系,仅使hello包进行周期保活。
- 匹配成功,则开始建立邻接关系。首先使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包进行数据库目录的共享。之后,本地使用LSR/LSU/LSACK数据包来获取未知的LSA信息;完成本地数据库的建立。 — LSDB(链路状态数据库) — 生成数据库表。
- 最后,基于本地的链路状态数据库,生成有向图。之后,通过SPF算法将有向图转换成最短路径树。之后,计算本地到达未知网段的路由信息,将路由信息添加到路由表中。
- 收敛完成后,hello包依然需要进行10S(30S)一次的周期保活,没30MIN进行一次周期更新。
- 网络结构突变:
1,增加一个网段:触发更新,直接通过LSU包将变更信息发送,需要ACK确认。 2,断开一个网段:触发更新,直接通过LSU包将变更信息发送,需要 ACK确认。 3,无法沟通:死亡时间 — 40S(120S)
七、OSPF的基本配置
1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1 --- 1 进程号,仅具有本地意义;
手工配置RID在启动进程时完成
[r1-ospf-1]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告
宣告的目的: 1,激活接口 — 只有激活的接口才能收发OSPF的数据 2,发布路由 — 只有激活接口对应网段信息才能发布出去
[r1-ospf-1-area-0.0.0]network 12.0.0.0 0.0.0.255 --- 反掩码
--- 由连续的0和连续的1组成(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信息
[r1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽值
注意,参考带宽修改,则所有设备上都需要改成相同的。
|