第九天
选路佳, 收敛快, 占用资源少
1, 因为RIP使用跳数作为选路依据, 并不是特别的合理;
2, RIP因为计时器时间较长, 所以, 收敛时间较慢;
3, RIP本身单个数据包中的资源占用量并不大, 但是, 因为RIP存在30S一 次的周期更新, 所以, 从整体的角度看, RIP的资源占用较大;
OSPF --- 开放式最短路径优先协议
1, 因为OSPF传递的是链路状态信息(LSA) ,收集所有的LSA信息之后, 将获得整个网络的拓扑结构, 之后根据SPF算法将图形结构转换为树形结 构, 这样选出的路径不会存在环路。OSPF使用带宽作为开销值进行选路, 相对更合理一些。
2, OSPF协议的计时器时间较短, 所以, 从收敛速度的角度看, 优于RIP; 3, 从单个数据包携带的数据量来看, OSPF单个数据包中的数据量远远大 于RIP; 但是, RIP存在30S一次的周期更新, 并且, OSPF本身存在很多减 少更新量的手段, 所以, 从资源占用的角度, 小优于RIP。
RIP存在三个版本: RIPV1, RIPV2 --- IPV4
RIPNG ---- IPV6
OSPF也存在三个版本: OSPFV1(在实验室阶段夭折) ,OSPFV2 ----
IPV4
OSPFV3 ---- IPV6
RIPV2和OSPFV2的相同点
1, OSPFV2和RIPV2一样, 都是无类别的路由协议, 都支持VLSM, CIDR; 2, OSPFV2和RIPV2都是以组播形式发送信息; --- OSPFV2的组播地址: 224.0.0.5和224.0.0.6;
3, OSPFV2和RIPV2都支持等开销负载均衡。
不同点:
RIPV2仅适用于小型网络当中, OSPF可以适用于中大型的网络环境 OSPF为了适应中大型网络, 需要进行结构化部署 --- 划分区域
区域划分的目的: 区域内部传递拓扑信息, 区域之间传递路由信息
如果一个网络只包含单一的OSPF区域, 我们把这样的网络称为单区域OSPF 网络;
如果一个网络只包含多个OSPF区域, 我们把这样的网络称为多区域OSPF网 络;
区域边界路由器 --- ABR --- 同时属于多个区域, 并且一个接口对应一 个区域, 且至少有一个接口属于骨干区域
区域之间可以存在多个ABR, 一个ABR可以属于多个区域
区域划分的要求:
1, 区域之间必须存在ABR
2, 区域划分必须按照星型拓扑结构划分 --- 星型拓扑的中心 --- 骨干区域
为了方便对OSPF区域进行管理, 我们给不同的区域增加了一个编号 ---- 区域ID(area ID) ---- 由32位二进制构成 ---- 可以使用点分十进制 的方式进行表达/也可以直接用十进制来进行表达 ---- 骨干区域的区域 ID为0。
1, OSPF的数据包类型
hello包 --- 周期发现, 建立和保活邻居关系
hello包的发送周期 --- 10S
OSPF中判定邻居失效的时间为4倍的hello时间 --- 死亡时间 dead time
RID --- 区分和标定OSPF网络中不同的路由设备 --- 1, 全网唯 一; 2, 格式统一 ---- 按照IP地址的格式 ---- 32位二进制构 成, 可以按照点分十进制来表示
RID的获取方法: 1, 手工配置
2, 自动获取 --- 首先, 先取自己环回接口中 配置的最大的IP地址作为RID; 如果没有环回接口, 则将在自己物理接口配置的IP地址中选择最大的作 为RID。
hello包中将会携带RID。
DBD包 --- 数据库描述报文 --- 携带的是路径信息的摘要
LSR包 --- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息 LSU包 --- 链路状态更新报文--- 真正携带LSA信息的数据包
LSACK包 --- 链路状态确认报文 --- 确认包
OSPF在收敛完成之后, 存在每30MIN一次的周期更新。
2, OSPF的状态机
two-way 双向通讯 --- 标志着邻居关系的建立
(条件匹配) 如果匹配失败, 则将停留在邻居状态, 仅依靠hello包 进行周期保活。
主从关系选举 ---- 使用未携带数据的DBD包通过比较RID进行主从关 系选举, RID大的为主, 可以优先进入下一个状态。
这里使用未携带数据的DBD包主要是为了和之前的邻居关系进行区分
FULL状态 --- 标志着邻接关系的建立 ---- 邻接主要是为了和之前 的邻居关系进行区分 ---- 邻接关系之间才可以真正的交换LSA信 息, 而邻居之间仅使用hello包进行保活。
down状态 --- 启动OSPF, 之后发送hello包, 进入下一个状态 init(初始化) 状态 --- 收到hello包中包含自己本地的RID, 进入 下一个状态
two-way(双向通信) 状态 --- 标志着邻居关系的建立
(条件匹配) 条件匹配成功, 则将进入下一个状态; 如果条件匹配失 败, 则将停留在邻居关系, 仅使用hello包进行保活。
exstart(预启动) 状态 --- 使用未携带数据的DBD包进行主从关系 选举, RID大的为主, 可以优先进入下一个状态;
Exchange(准交换) 状态 --- 使用携带数据的DBD包进行目录共享 Loading(加载) 状态 --- 基于对端的DBD包中的信息, 使用
LSR/LSU/LSACK来获取未知的LSA信息
full状态 --- 标志着邻接关系的建立
3, OSPF的工作过程
启动配置完成后, OSPF会向本地所有运行协议的接口以组播 224.0.0.5的形式发送hello包; Hello包中携带自己本地的RID以及本地已 知邻居的RID。之后, 将收集到的邻居关系记录在一张表中 --- 邻居表。
邻居表建立完成后, 进行条件匹配; 失败, 则停留在邻居关系, 仅 使用Hello包进行保活。
匹配成功, 则将开始建立邻接关系。首先先使用未携带数据的DBD包 进行主从关系选举; 之后, 使用携带数据的DBD包继续LSA数据库目录共 享。之后, 本地使用LSR/LSU/LSACK数据包来获取未知的LSA信息。完成本地数据库的建立 --- LSDB(链路状态数据库) ---- 生成数据库表。
最后, 基于本地的链路状态数据库, 生成有向图及最短路径树。之后 计算本地到达未知网段的路由信息, 并添加到路由表。
收敛完成后, 依然需要每隔10S发送Hello包进行周期保活, 每30min 进行周期更新。
结构突变
1, 突然新增一个网段
2, 突然断开一个网段
3, 无法沟通: 40S
4, OSPF的基本配置