【思科】OSPF原理及配置

【思科】OSPF原理及配置

  • 一、为什么会有OSPF协议?
    • ① OSPF是什么?
    • ② 相比手动配置静态路由,动态路由协议优势
    • ③ 传统的动态路由协议
    • ④ 提高网络的可靠性和性能
  • 二、OSPF的单区域简述
    • 2.1 OSPF的原理
    • 2.2 OSPF的特点
    • 2.3 OSPF的区域
    • 2.4 OSPF的路由状态
    • 2.5 DR、BDR和DRother
      • 2.5.1 Router- id
      • 2.5.2 DR、BDR的选举规则
        • 2.5.3 注意
    • 2.6 OSPF的三张表
    • 2.7 OSPF的五种数据包类型
    • 2.8 OSPF的七种状态
  • 三、配置
    • 3.1 实验拓扑
    • 3.2 路由器配置
      • 3.2.1查看邻居表
      • 3.2.2 查看拓扑表
      • 3.2.3 查看路由表
    • 3.3 测试

一、为什么会有OSPF协议?

① OSPF是什么?

Open Shortest Path First开放式最短路径优先
通过拓扑图的LSA进行Dijkstra算法计算,选择最优路由

② 相比手动配置静态路由,动态路由协议优势

比如当网段较多时候,PCA要pingPCB,需要经过五台路由器,一次就需要配十条以上的静态路由,而且还会弄混。
所以就推荐用动态路由协议,它是自动去学习每台路由器的不同信息,剩下了我们很多时间

③ 传统的动态路由协议

传统的动态路由协议有,如RIP(路由信息协议)和IGRP(内部网关路由协议)等,它们在大型网络中会出现路由环路、路由抖动、路由表过大等问题,从而影响网络的可靠性和性能。

④ 提高网络的可靠性和性能

OSPF协议通过链路状态路由协议的方式,能知道整个网络拓扑
相比较距离尺量协议(RIP),可以在网络中快速计算最短路径,并且支持多路径选择,从而提高网络的可靠性和性能
OSPF协议还支持分层设计和区域划分,可以帮助网络管理员更好地管理大型网络

二、OSPF的单区域简述

2.1 OSPF的原理

先发送Hello包,交换各自的Router-id,建立邻居关系
然后在确定主从,交换DBD包,建立邻接关系,开始交换LSA
把自己所有的LSA存在LSDB中,再进行Dijkstra算法计算,计算出一条最短路径。

2.2 OSPF的特点

  1. 可支持区域划分
  2. 基于IP协议号 : 89
  3. 具有快速收敛、路由更新
  4. 作为一种无类路由协议,可支持VLSM和IPv4、IPv6
  5. 组播地址 :①224.0.0.5 ②224.0.0.6(DR 和 BDR专属)

2.3 OSPF的区域

  1. 骨干区域(区域0):骨干区域只能有一个,必须与非骨干区域相连接,必须连续相连
  2. 非骨干区域(不是区域0):这个也必须与骨干区域相连接,就是连续区域的意思。那如果是不连续区域(可以用虚拟链路,或者管道进行连接),里面通常连接终端设备

2.4 OSPF的路由状态

  1. DR(Designated Router)指定路由器,OSPF协议启动时进行的开始选举
  2. BDR(Backup Designated Router)备份指定路由器,也是在OSPF协议启动时进行的开始选举
  3. DRother :除去DR和BDR的设备
  4. IR:所有接口都在同一个区域内
  5. BR:有一个接口在区域0内
  6. ABR:区域边界路由器,连接骨干和非骨干的路由器
  7. ASBR :自治系统区域边界路由器,连接OSPF区域和非OSPF区域的路由器

2.5 DR、BDR和DRother

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了,极大的提高网络的稳定性、性能和可靠性,还可以简化网络管理

2.5.1 Router- id

Router-id :唯一标识一台路由器
选举规则
①手动选择
②选择最大loopback(环回口)地址
③如果没有loopback环回口,则选择最大的物理地址为Router-id

2.5.2 DR、BDR的选举规则

  1. 首先比较优先级,但默认都为1,优先级越大越好
  2. 当优先级为0,则失去选举资格,直接当DRother
  3. 若优先级默认一样,则再比较Router - id,越大越优
  4. 选举顺序是从BDR → DR,而不是直接DR
  5. DR和BDR是非抢占机制,若要再次指定谁为DR,则需要重启OSPF进程
2.5.3 注意
  1. 在同一个网段内进行DR和BDR的选举
  2. 当确定好后DR, 而要再次选择谁是DR的话,则需要重新启动OSPF的进程
  3. DR、BDR、DRother说的都是接口的概念,采用物理接口来标识路由的状态信息
  4. 在串行网络中,并不存在DR和BDR的选举,这个是存在于广播网络及NBMA
  5. OSPF协议启动后,在40s内没有新设备接入就会开始选举,若想按照自己的想法来配置DR和BDR,建议可以先配置优先级

2.6 OSPF的三张表

  1. 邻居表
    存放了与本地路由器直接相连的邻居路由器的信息

里面包括邻居路由器的ID、IP地址、接口类型等。

  1. 拓扑表
    存放了整个网络的拓扑结构信息(LSA),包括所有路由器和链路的状态信息。

LSA里面包含路由器或网络中的链路状态信息,包括链路的ID、类型、状态、带宽、延迟、可靠性等信息。

  1. 路由表
    OSPF中的路由表中存放了路由器计算出的最优路径信息及直连路由信息

包括目的网络的IP地址、下一跳路由器的IP地址、出接口、路径的度量值等信息。
路由表中的信息是根据拓扑表中的信息计算出来的,通过Dijkstra算法计算出最短路径,并且及时更新路由信息。

2.7 OSPF的五种数据包类型

  1. Hello :用于邻居路由器之间发现和建立邻居关系的一种协议包
    里面含有本地路由的路由ID、下一个Hello包的时间间隔、路由状态、网络类型等。
  2. DBD(DD):用来建立主、从关系的一种关系包
    里面存有LSA的摘要(就是不完整LSA信息)
  3. LSR :向对方请求本地数据库所缺少的LSA完整信息
  4. LSU :根据对方发给我的LSA完整信息,进行本地数据库的更新
  5. LSACK :向对方回应我已经接受到你的LSA并且更新完毕

2.8 OSPF的七种状态

  1. Down :刚开启OSPF协议,还没有收到Hello包的时候

  2. Init :收到Hello包,但Hello报文里面没有活跃的邻居字段

  3. 2 - way :收到Hello包,该Hello报文里有活跃的邻居字段
    进行DR和BDR的选举,以及建立邻居关系

  4. Exstart :使用空DBD进行“主”、“从”关系的选举,RID大的为主

  5. Exchange :交互DBD、LSR、LSU、LSACK

  6. Loading :加载数据库,进行SPF算法

  7. Full :完全邻接状态,在这个状态下是可以交换LSA的

为什么要在exstart状态下,选举“主,从”关系

​在交换DD包时,需要保证双方的LSDB(Link State Database)是一致的
​如果双方一起发各自的DD包,会导致数据出现冲突
​所以,“主”是负责专门发送DD消息,而**“从”就是来接受并回复**

三、配置

3.1 实验拓扑

【思科】OSPF原理及配置_第1张图片

3.2 路由器配置

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

3.2.1查看邻居表

命令 :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的选举
等以后再讲原因,先知道这个东西先

3.2.2 查看拓扑表

命令 : show ip ospf database
【思科】OSPF原理及配置_第2张图片

3.2.3 查看路由表

命令 :show ip route
【思科】OSPF原理及配置_第3张图片
这边可以看到,路由表是由目的网络的IP地址、下一跳路由器的IP地址、出接口、路径的度量值等组成。
前面有O的,就是说是通过OSPF获得的路由条目
而前面是C的,就是直连路由

3.3 测试

用ping指令去测试就好啦
【思科】OSPF原理及配置_第4张图片

我为什么会去选择写这些,就是因为我自己在上面找了很多配置,大多数都是配上去而实行不了,导致我花了大量的时间在上面,却面临的时间的浪费,所以我就想写出,2023年能用的命令配置

以上,就是OSPF的简述和单区域的配置,希望这些对大家有帮助。

你可能感兴趣的:(网工,-,思科,网络,网络协议,tcp/ip)