Open Shortest Path First开放式最短路径优先
通过拓扑图的LSA进行Dijkstra算法计算,选择最优路由
比如当网段较多时候,PCA要pingPCB,需要经过五台路由器,一次就需要配十条以上的静态路由,而且还会弄混。
所以就推荐用动态路由协议,它是自动去学习每台路由器的不同信息,剩下了我们很多时间
传统的动态路由协议有,如RIP(路由信息协议)和IGRP(内部网关路由协议)等,它们在大型网络中会出现路由环路、路由抖动、路由表过大等问题,从而影响网络的可靠性和性能。
OSPF协议通过链路状态路由协议的方式,能知道整个网络拓扑
相比较距离尺量协议(RIP),可以在网络中快速计算最短路径,并且支持多路径选择,从而提高网络的可靠性和性能
OSPF协议还支持分层设计和区域划分,可以帮助网络管理员更好地管理大型网络
先发送Hello包,交换各自的Router-id,建立邻居关系
然后在确定主从,交换DBD包,建立邻接关系,开始交换LSA
把自己所有的LSA存在LSDB中,再进行Dijkstra算法计算,计算出一条最短路径。
DR和BDR负责维护OSPF数据库
并向网络上的其他路由器(DRother)分发路由信息
DR和BDR的选举规则:先比较优先级,后比较Router - id
为什么要有DR和BDR呢?
DR和BDR只接收同网段的路由信息LSA
然后DRother就是不相互发送LSA,而是只接受DR和BDR发来的LSA信息
如果有5台路由器在同一个网段内
没有DR和BDR的话,每一台路由器至少要产生和接收8条LSA,一共就是40条,极大降低了网络的稳定性和性能
有了DR和BDR后,可以分担网络中所有路由器的任务,减轻每个路由器的工作压力。
每台DRother,只需要产生而接收3条LSA就OK了,极大的提高网络的稳定性、性能和可靠性,还可以简化网络管理
Router-id :唯一标识一台路由器
选举规则
①手动选择
②选择最大loopback(环回口)地址
③如果没有loopback环回口,则选择最大的物理地址为Router-id
里面包括邻居路由器的ID、IP地址、接口类型等。
LSA里面包含路由器或网络中的链路状态信息,包括链路的ID、类型、状态、带宽、延迟、可靠性等信息。
包括目的网络的IP地址、下一跳路由器的IP地址、出接口、路径的度量值等信息。
路由表中的信息是根据拓扑表中的信息计算出来的,通过Dijkstra算法计算出最短路径,并且及时更新路由信息。
Down :刚开启OSPF协议,还没有收到Hello包的时候
Init :收到Hello包,但Hello报文里面没有活跃的邻居字段
2 - way :收到Hello包,该Hello报文里有活跃的邻居字段
进行DR和BDR的选举,以及建立邻居关系
Exstart :使用空DBD进行“主”、“从”关系的选举,RID大的为主
Exchange :交互DBD、LSR、LSU、LSACK
Loading :加载数据库,进行SPF算法
Full :完全邻接状态,在这个状态下是可以交换LSA的
为什么要在exstart状态下,选举“主,从”关系
在交换DD包时,需要保证双方的LSDB(Link State Database)是一致的
如果双方一起发各自的DD包,会导致数据出现冲突
所以,“主”是负责专门发送DD消息,而**“从”就是来接受并回复**
R1的配置
R1>en ##进入特权模式
R1#conf t ##进入全局配置模式
## 配置该接口的Ip地址 ##
R1(config)#int s1/0 ##进入接口
R1(config-if)#no shut ##打开接口
R1(config-if)#ip add 172.16.10.1 255.255.255.0
R1(config-if)#ex
R1(config)#int e0/0
R1(config-if)#no shut
R1(config-if)#ip add 192.168.10.1 255.255.255.0
R1(config-if)#ex
R1(config)#int loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#ex
## 配置OSPF ##
R1(config)#router ospf ? ##需要在后面输入该OSPF的进程号
<1-65535> Process ID
R1(config)#router ospf 1 ##进入该进程1下的OSPF
R1(config-router)#router-id 1.1.1.1 ##事先配置好自己想要的router - id
R1(config-router)#network 172.16.10.0 ? ##宣告该路由的网段,并在后面加上反掩码(通配符)
A.B.C.D OSPF wild card bits
R1(config-router)#network 172.16.10.0 0.0.0.255 area 0 ##宣告该路由信息到区域0中
R1(config-router)#network 192.168.10.0 0.0.0.255 area 0
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0
R2的配置
R2>en
R2#conf t
R2(config)#int e0/0
R2(config-if)#no shut
R2(config-if)#ip add 192.168.10.2 255.255.255.0
R2(config-if)#ex
R2(config)#int loopback 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#ex
R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 192.168.10.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0
R3的配置
Router>en
Router#conf t
Router(config)#hostname R3
R3(config)#int e0/0
R3(config-if)#no shutdown
R3(config-if)#ip address 192.168.10.3 255.255.255.0
R3(config-if)#ex
R3(config)#int loopback 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#ex
R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 192.168.10.0 0.0.0.255 area 0
R3(config-router)#network 3.3.3.0 0.0.0.255 area 0
R4的配置
R4>en
R4#conf t
R4(config)#int e0/0
R4(config-if)#no shut
R4(config-if)#ip address 192.168.10.4 255.255.255.0
R4(config-if)#ex
R4(config)#int l0
R4(config-if)#ip address 4.4.4.4 255.255.255.0
R4(config-if)#ex
R4(config)#router ospf 1
R4(config-router)#router-id 192.168.10.4
R4(config-router)#netw 192.168.10.0 0.0.0.255 area 0
R4(config-router)#network 4.4.4.0 0.0.0.255 area 0
R5的配置
R5>en
R5#conf t
R5(config)#int s1/0
R5(config-if)#no shut
R5(config-if)#ip address 172.16.10.5 255.255.255.0
R5(config-if)#ex
R5(config)#int l0
R5(config-if)#ip add 5.5.5.5 255.255.255.0
R5(config-if)#ex
R5(config)#router ospf 1
R5(config-router)#router-id 5.5.5.5
R5(config-router)#netw 172.16.10.0 0.0.0.255 area 0
R5(config-router)#netw 5.5.5.0 0.0.0.255 area 0
命令 :show ip ospf neighbor
R2与R4分别和R3建立Full状态(DR、BDR、DRother的状态是Full状态)
分别作为该网段192.168.10.0 /24 的DR和BDR,可以去交换各自的LSA信息
可以看到R1与R3建立的状态是2-way(DRother 和 DRother 的状态是2 - way状态)
处于2 - way状态的话,只能是发送LSA,而不能接受到对方的LSA信息。统一接受DR和BDR的LSA,提高网络的稳定性、性能和可靠性,也简化网络管理
注意的一点:
这个是在广播网络类型,它是有DR 和BDR的
而点对点的网络类型中,是没有DR和BDR的,如下图,R1和R5的邻居表
大家可以看到,他们是处在FULL状态,而并没有DR和BDR的选举
等以后再讲原因,先知道这个东西先
命令 :show ip route
这边可以看到,路由表是由目的网络的IP地址、下一跳路由器的IP地址、出接口、路径的度量值等组成。
前面有O的,就是说是通过OSPF获得的路由条目
而前面是C的,就是直连路由
我为什么会去选择写这些,就是因为我自己在上面找了很多配置,大多数都是配上去而实行不了,导致我花了大量的时间在上面,却面临的时间的浪费,所以我就想写出,2023年能用的命令配置
以上,就是OSPF的简述和单区域的配置,希望这些对大家有帮助。