动态路由OSPF
判断动态路由的性能:
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.从单个数据包携带的数据量来看,因为OSFP携带的是拓扑信息(LSA),所以,数据量较RIP大很多。但是由于RIP存在30s一次的周期更新,并且OSPF本身存在很多减少更新量的措施,所以从整体来看,OSPF小优于RIP。
RIPV1版本: RIPV1,RIPV2----IPV4 RIPNG----IPV6
OSPF版本: OSPFV1(在实验室时已夭折),OSPFV2----IPV4 OSPFNG----IPV6
RIPV2和OSPFV2
相同点:
1)OSPFV2和RIPV2都是无类别的路由协议,都支持LSM,CIDR?
2)OSPFV2和RIPV2都以组播的形式发送信息 OSPFV2组播地址:224.0.0.5、224.0.0.6
3)RIPV2都支持等开销负载均衡
不同点:
1)RIP只能适用于中小型网络,OSPF可以应用在大型网络中
OSPF为了适应中大型网络为了适应中大型网络环境,需要进行结构化部署 ---- 区域划分
如果只有一个区域的OSPF网络,我们将这样的网络成为单区域OSPF网络
如果存在多个区域的OSPF网络,我们将这样的网络成为多区域OSPF网络
区域划分的主要目的:区域内部传递拓扑信息,区域之间传递路由信息(距离矢量信息)。
区域边界路由器(ABR):同时属于两个区域,并且一个接口对应一个区域。至少有一个接口属于骨干区域。
区域之间可以存在多个ABR;一个ABR可以属于多个区域
区域划分的要求:1)区域之间必须存在ABR
2)区域划分必须按照星型拓扑结构划分 (星型拓扑中间区域叫做骨干区域)
OSPF区域存在区域编号(区域ID,area ID) 32位二进制构成,用点分十进制表示,并且骨干区域的area ID为0。
♦️1.OSPF的数据包
hello包:可以用来周期发现、建立和保活邻居关系。
周期:OSPF的hello包默认10s为周期进行周期更新
死亡时间(dead time) 4倍的hello时间
RID(route ID):用来标定和区分网络中不同的路由器。
RID要求:1️⃣全网唯一(OSPF网络) 2️⃣格式统一:要求必须符合IP地址格式(由32位二进制构成,并且使用点分十进制表示)
RID的获取方式:1️⃣手工配置–仅需满足以上两点要求即可
2️⃣自动获取–路由器先从环回地址中选取数值最大的IP地址作为RID。若不存在环回地址,则将从本地的物理接口对应的IP地址中选取最大的作为RID。
DBD包(数据库描述报文)----LSDB(数据链路状态数据库----存储LSA信息)----“数据库的目录”
LSR包(链路请求报文) 基于DBD包请求位置的LSA信息
LSU包(链路状态更新报文) 真正携带LSA信息的数据包
LSAck包(链路状态确认报文) 确认报包
♦️2.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(转发)状态—标志着邻接关系的建立
♦️3.OSPF的工作过程
启动配置完成后,OSPF向本地左右运行OSPF协议的接口以组播(224.0.0.5)的形式发hello包。hello包中需要携带自身本地的RID及自身一直邻居的RID之后,将收集到的邻居关系记录在一张表里**(邻居表)**。
邻居表建立完成后需要进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活。
匹配成功,则开始建立邻接关系。首先需要使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD包的共享数据库目录。之后使用LSR/LSU/LSACK数据包来获取未知网段的LSA信息;完成本地数据库表的建立。-----LSDB–链路状态数据库
最后,基于本地的链路状态数据库,生成有向图及最短路径树,之后,计算本地到达未知网段的路由信息。生成的路由信息嘉爱到路由表中。
收敛完成后,OSPF需要10s一次使用hello包使用周期保活。
结构突变
1️⃣突然增加一个网段:触发更新,立即发送携带LSA信息的LSU包,需要ACK进行确认
2️⃣突然断开一个网段:触发更新,立即发送携带LSA信息的LSU包,需要ACK进行确认
3️⃣无法联系 — 40s死亡时间
♦️4.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 1.1.1.1 0.0.0.0
----反掩码:由连续的0和1组成,其中0代表不可变位,1代表可变位。
查看邻居接口 [R1]display ospf peer
查看邻居接口 [R1]display ospf peer brief
查看OSPF的数据库表 <R1>display ospf lsdb
查看一条LSA信息 <R1>display ospf lsdb router 2.2.2.2
查看OSPF路由表 <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都存在的情况下,至少需要4台路由器才能看到邻居关系
**条件匹配:**在一个广播与众,若所有设备均为邻接关系,将出现大量的重复更新;故需要进行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。
重置ospf进程 <R1>reset ospf 1 process
拓展配置:
1️⃣手工认证:
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
2️⃣手工汇总
[R2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.252.0
3️⃣沉默接口
4️⃣加快收敛 减少计时器时间
[R1-GigabitEthernet0/0/0]ospf timer hello 5
注意:修改hello时间,死亡时间会自动按照4倍关系就进行匹配
注意:邻居之间的hello时间(死亡时间)必须相同,否则无法建立邻居关系。
5️⃣缺省路由
[R3-ospf-1]default-route-advertise
注意:这样下发缺省必须要求边界路由器自身具备缺省路由。
加always可以强制下发缺省信息:[R3-ospf-1]default routeadvertise always