选取路由协议考虑到的几点要求:
1.占用资源少
2.收敛速度快
3.选路是否合理
RIP
1.以跳数作为开销值进行选路,本身存在不合理性
2.由于RIP本身计时器时间较长,收敛速度慢
3.RIP单个数据包占用资源并不算大,但是,因为RIP存在30s一次的周期更新,所以,整体看来,RIP的资源占用很大。
由于RIP三个维度的表现都不算太好,所以,只适用于中小型网络环境中
OSPF — 开放式最短路径优先协议 — 链路状态型
传递的是LSA — 链路状态信息
1.OSPF因为是链路状态型协议,所以计算出的路径不会出现环路,并且,OSPF以带宽作为开销值进行选路,相较于跳数更加合理。所以,从选路的角度看,OSPF由于RIP。
2.由于OSPF的计时器时间短于RIP的计时器,所以从收敛角度比较,OSPF优于RIP。
3.从单个数据包携带的数据来看,因为OSPF携带的是拓扑信息(LSA),所以数据量较RIP大很多,但是由于RIP存在30s一次的周期更新,并且OSPF本身存在很多减少更新量的措施,所以。从整体的角度看,OSPF小优于RIP。
OSPF版本:
OSPFV1(在实验室阶段夭折)、OSPFV2 — IPV4
OSPFV3 — IPV6
RIPV2和OSPFV2区别
相同点:
1.OSPFV2和RIPV2都是无类别的路由协议,都支持VLSM、CIDR
2.OSPFV2和RIPV2都以组播的形式发送信息 — RIP组播地址(224.0.0.9)、 OSPF组播地址(224.0.0.5和224.0.0.6)
3.OSPFV2和RIPV2都支持等开销负载均衡
不同点:
RIP只能适用于中小型网络,OSPF可以应用在大型网络当中(OSPF为了适应中大型网络环境,需要进行结构化部署 — 区域划分 — 减少更新量的手段之一)
如果只有一个区域的OSPF网络,我们将这样的网络称为单区域OSPF网络
如果只有一个区域的OSPF网络,我们将这样的网络称为多区域OSPF网络
区域划分的主要目的:
- 区域内部传递拓扑信息,区域之间传递路由信息。
- 区域边界路由器 — ABR — 同时属于两个区域,并且一个接口对应一个区域。
区域划分的要求:
- 区域之间必须存在ABR
- 区域划分必须按照星型拓扑结构划分星型拓扑中间区域叫做骨干区域 OSPF区域存在区域编号 — 区域ID —由32为二进制构成,用点分十进制进行表达。骨干区域的ID为0。
OSPF的数据包
hello包 — 可以用来周期发现,建立和保活邻居关系
周期:OSPF的hello包默认10s为周期进行周期发送
死亡时间(dead time)— 4倍的hello时间
RID — 用来标定和区分OSPF网络中不同的路由器
RID的要求:
- 全网(OSPF网络)唯一
- 格式统一 — RID要求必须符合IP地址(由32位二进制构成,并且使用点分十进制进行表达)
RID的获取方式:
- 手工配置 — 仅需要满足以上两点要求即可
- 自动获取 — 路由器先从环回地址中选取数值最大的IP地址作 为RID。若路由器不存在环回地址,则将从本地的物理接口对应的 IP地址中选取数值最大的作为RID。
DBD包 — 数据库描述报文 — LSD(数据链路状态数据库 — 存储LSA信息)—减少更新量手段之一
LSR包 — 链路状态请求报文 — 基于DBD包请求未知的LSA信息
LSU包 — 链路状态更新报文 — 真正携带LSA信息的数据包
LSAck包 — 链路状态确认报文 — 确认包
OSPF的状态机
Two-way — 双向通信 — 标志着邻居关系的建立(条件匹配)
主从关系选举:使用未携带数据的DBD包(主要目的是为了和之前的邻居关系进行区分)进行主从关系选举,通过对比RID,RID大的为主,主可以优先进入下一个状态。
FULL — 标志着邻接关系的建立
Down状态 — 启动OSPF,发送hello包后,进入下一个状态
Init(初始化状态)状态—当你收到一个hello包中包含本地的RID信息时,进入下一个状态
Two-way(双向通讯)状态 — 标志着邻居关系建立
(条件匹配)— 如果条件匹配失败,则停留在邻居关系,仅10s一次,使用hello包进行保活
条件匹配成功,则进入下一个状态
Exstart(预启动)状态 — 使用未携带数据的DBD包进行主从关系选举,RID大的为主,主可以优先进入下一个状态
Exchange(准交换)状态 — 使用携带目录信息的DBD包进行目录信息的共享,需要ACK确认。
Loading(加载)状态 —查看对端的DBD包与本端LSA信息进行对比,基于未知的LSA信息发送LSR包进行请求。对端使用LSU进行恢复,需要ACK确认。
FULL(转发)状态 — 标志着邻接关系的建立
OSPF的工作过程
启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播224.0.0.5的形式发hello包。hello包中需要携带自身本地的RID及自身已知邻居的RID。之后,将收集到的邻居关系记录在一张表中 — 邻居表。
邻居表建立完成后需要进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活。
匹配成功后,则开始建立邻接关系。首先需要使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD包共享数据库目录。之后使用LSR/LSU/LSACK数据包来获取未知网段的LSA信息;完成本地数据库表的建立。 — LSDB — 链路状态数据库。
最后,基于本地的链路状态数据库,生成有向图及最短路径树,之后,计算本地到达未知网段的路由信息,生成的路由信息加载到路由表中。
收敛完成后,OSPF需要10s一次使用hello包进行周期保活。
结构突变
- 突然增加一个网段:触发更新,立即发送携带LSA信息的LSU包,需要ACK确认
- 突然断开一个网段
- 无法联系 — 40s死亡时间
OSPF的基本配置
(1).启动OSPF进程
[R1]ospf 1 router-id 1.1.1.1
(2).创建区域
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]
(2).宣告[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
— 反掩码—由连续的0和1组成,其中0代表不可变位,1代表可变位
查看邻居表[R1]display ospf peer
查看邻居关系间表[R1]display ospf peer brief
查看数据库表[R1]display ospf lsdb
查看一条LSA数据信息[R1]display ospf lsdb router 2.2.2.2
查看路由表[R1]display ip routing-table protocol ospf
OSPF在华为体系中默认优先级为10
OSPF是以带宽作为开销值的度量标准
COST == 参考带宽/真实带宽 — 华为默认的参考带宽是:100Mbps
修改参考带宽:[R1-ospf-1]bandwidth-reference 1000
参考带宽一旦修改,必须OSPF网络内所有设备均修改成相同的参考带宽
条件匹配
指定路由器 — DR
备份指定路由器 — BDR
一个广播域中,在DR和BDR都存在的情况下,至少需要四台路由器才能看到邻居关系。
条件匹配:在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;故需要进行DR/BDR选举;所有非DR/BDR的设备之间仅维持邻居关系。
DR/BDR的选举规则:
1.先比较优先级,优先级最大的是DR,次大的是BDR
优先级初始的默认值为1
[R1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
优先级取值范围0-255,若优先级设置为0,则代表放弃DR/BDR选举
2.如果优先级相同,则比较RID。RID大的路由器对应接口为DR,次大的为BDR。
DR/BDR的选举模式为非抢占模式,选举时间为40s.
5.扩展配置
1.手工认证
2.手工汇总
3.沉默接口
4.加快收敛 — 减少计时器时间
5.缺省路由