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
OSPFV4——IPV6
1、OSPFV2和RIPV2都是无类别的路由协议,都支持LSM,CIDR
2、OSPFV2和RIPV2都是以组播的形式发送信息——OSPFV2组播地址:224.0.0.5和224.0.0.6
3、OSPFV2和RIPV2都支持都开销负载均衡
为什么OSPFV2也是无类别的路由协议
因为OSPF区域之间传递的是路由信息
1、RIP只能适用于中小型网络
2、OSPF可以应用在大型网络当中
OSPF为了适应中大型网络环境,需要进行结构化部署----区域划分
如果只有一个区域的OSPF网络,我们就将这样的网络称为单区域OSPF网络
如果存在多个区域的OSPF网络,我们就将这样的网络称为多区域OSPF网络
区域内部传递拓扑信息、区域之间传递路由信息(类似于距离矢量型算法)
1、区域之间必须存在ABR
2、区域划分必须按照星型拓扑结构划分,星型拓扑中间区叫做骨干区域
OSPF区域编号
区域IP(area IP)由32位二进制构成,用点分十进制进行表达,骨干区域的area IP为0
中转设备
区域边界路由器(ABR)——同时属于两个区域,并且一个接口对应一个区域区域之间可以存在多个ABR
区域划分、发送DBD包
hello包——可以用来周期发现、建立和保活邻居关系
周期:OSPF的hello包默认10s为周期进行周期发送,在特定的网络中会以30s周期进行发送
死亡时间(dead time):4倍的hello时间
RID:用来标定和区分OSPF网络中不同的路由器
1、全网(OSPF网络)唯一
2、格式统一:RID要求必须符合IP地址格式(由32位二进制构成,并且使用点分十进制)
1、手工配置——仅需满足RID的要求即可
2、自动获取——路由器首先从环回地址中选取数值最大的IP地址作为RID,若不存在环回地址则
将从本地的物理接口对应的IP地址中选取数值最大的IP地址作为RID。
DBD包——数据库描述报文---LSDB(数据链路状态数据库(存储LSA信息))
携带数据库的目录,例如菜单
LSR包——链路状态请求报文---基于DBD包请求未知的LSA信息
例如点菜
LSU包——链路状态更新报文---真正携带LSA信息的数据包
例如上菜
LSACK包——链路状态确认报文---确认包
Down状态:启动OSPF,发送hello包进入下一个状态
Init(初始化)状态:当你收到一个hello包中包含本地的RIP信息时进入下一个状态
Two-Way(双向通信)状态:标志着邻居关系的建立
(条件匹配):如果条件匹配失败,则停留在邻居关系,仅10s一次,使用hello包进行保活条件匹配成功则进入下一个状态
Exstart(预启动)状态:使用未携带数据的DBD包进行主从关系选举,RID大的为主可以先进入下一个状态
Exchange(准交换)状态:使用携带目录信息的DBD包进行目录信息的共享,需要ACK确认
Loading(加载)状态:查看对端的DBD包与本段LSA信息对比,基于未知的LSA新消息发送LSR包进行请求,对端使用LSU进行回复,需要ACK确认
FULL(转发)状态:标志着邻接关系的建立
1、启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播224.0.0.5的形式发送hello包。hello包中需要携带自身本地的RID及自身已知邻居的RID。之后将收集到的邻居关系记录在一张表(邻居表)里面。
2、邻居表建立完成后需要进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活
3、匹配成功则开始建立邻接关系。首先需要使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD
4、包共享数据库目录。之后使用LSR/LSU/LSACK数据包来获取未知网段的LSA信息;完成本地数据库表(链路状态数据库)的建立
5、最后,基于本地的链路状态数据库生成有向图及最短路径树,之后计算本地到达未知网段的路由信息,生成的路由信息加载到路由表中
6、收敛完成后,OSPF需要10s一次使用hello包进行周期保活
1、突然增加一个网段——解决:触发更新立即发送携带LSA信息的LSU包,需要ACK确认
2、突然断开一个网段——解决:触发更新立即发送携带LSA信息的LSU包,需要ACK确认
3、无法联系——解决:40s死亡时间
拓扑图如下:
1、启动ospf——ospf 1 router-id 1.1.1.1 //配置RID启动ospf
[r1]ospf 1 router-id 1.1.1.1
[r2]ospf 1 router-id 2.2.2.2
[r3]ospf 1 router-id 3.3.3.3
2、创建区域
创建区域area 0
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
[r2-ospf-1]area 0
[r3-ospf-1]area 1
3、宣告——不需要按照主类宣告
0.0.0.0——反掩码——由连续的0和1组成,其中0代表不可变位,1代表可变(与子网掩码的规则相反)
[r1-ospf-1-area-0.0.0.0]network 12.0.0.2 0.0.0.0 //限制IP地址为固定
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 //限制为一个网段
[r2-ospf-1-area-0.0.0.0]network 12.0.0.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[r3-ospf-1-area-0.0.0.1]network 3.3.3.3 0.0.0.0
[r3-ospf-1-area-0.0.0.1]network 23.0.0.0 0.0.0.255
查看OSPF邻居表——display ospf peer
查看邻居关系简——display ospf brief
查看ospf的数据库表——display ospf lsdb
查看ospf数据库表中的某一条LSA信息——display ospf lsdb router 2.2.2.2 brief
查看ospf路由表——display ip routing-table protocol ospf
修改ospf默认带宽——bandwidth-reference——参考带宽一旦修改ospf网络内所有设备均修改成相同的
OSPF在华为体系中默认优先级为10
OSPF是以带宽作为开销值的度量标准。
COST=参考带宽/真实带宽——华为默认参考带宽是100Mbps
重启ospf进程(在用户视图下执行)——resset ospf 1 process
指定路由器——DR
备份指定路由器——BDR
一个广播域中,在DR和BDR都存在的情况下,至少需要四台路由器才能看到邻居关系。
DR和BDR实际上是接口的概念
在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;故需要进行DR/BDR选举
所有非DR/BDR的设备之间仅维持邻居关系
1、先比较优先级。优先级最大的为DR,次大的为BDR
优先级初始默认值为1
修改优先级命令(0~255):ospf dr-priority
优先级的取值范围0~255。若优先级设置为0,则表示放弃DR/BDR选举
2、如果优先级相同,则比较RID。RID大的路由器对应接口为DR,次大的为BDR
DR/BDR的选举模式为非抢占模式。选举时间为40s。
重启ospf进程(在用户视图下执行)——resset ospf 1 process
两边的keyip必须相同
[r1]int g 0/0/0
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
原图不具备汇总,汇总出来的黑洞较大
新建环回:新建子网,添加环回,宣告
在ABR上进行汇总
192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 192.168.4.0汇总为192.168.0.0/22,掩码为255.255.252.0
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.252.0
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
注意:修改hello时间,死亡时间会自动按照4倍关系惊醒匹配
注意:邻居之间hello时间(死亡时间)必须相同,否则无法建立邻居关系
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 5
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf timer hello 5
[r3]ospf
[r3-ospf-1]default-route-advertise
[r3-ospf-1]q
[r3]ip route-static 0.0.0.0 0 3.3.3.10
注意:这样下发缺省必须自身具备缺省路由
加always可实现强制下发缺省:
[r3-ospf-1]default-route-advertise always