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