动态路由协议OSPF

OSPF路由协议

OSPF路由协议概述

内部网关协议和外部网关协议:开放的最短路径优先协议

  • 自治系统(AS)AS是指同一个技术管理机构管理、使用统一选路策略的一些路由器的集合
  • 内部网关协议(IGP)
  • 外部网关协议(EGP)

外部网关协议现在主要用BGP

OSPF是链路状态路由协议,协议号是89

传信的过程,一层一层叠加发送

在这里插入图片描述

OSPF的工作过程(3个表)

  1. 邻居列表
  2. 链路状态数据库
  3. 路由表

建立邻接关系(传信的过程)——>链路状态数据库(所有链路状态学习后汇总到库里简称LSDB)——>形成最短路径(通过算法)——>形成路由表

OSPF区域

为了适应大型的网络,OSPF在AS内划分多个区域

每个OSPF路由器只维护所在区域的完整状态链路状态信息
在这里插入图片描述

区域ID

区域ID可以表示成一个十进制的数字

也可以表示成一个IP

骨干区域Area 0

负责区域间路由信息传播

非骨干区域

Router ID

OSPF区域内唯一标识路由器的IP地址

Router ID选取规则

自动:

  • 选取路由器loopback接口上数值最高的IP地址
  • 如果没有loopback接口,在物理端口中选取IP地址最高的

手动

  • 也可以使用router-id命令指定Router ID

DR和BDR(2种路由器)

指定路由器(DR)

其他路由器(DRothers)只和DR及BDR形成邻接关系

在这里插入图片描述

DR为老大,BDR为老二

如果不选举DR和BDR,会构成n(n-1)/2个邻接关系,n为路由器个数,导致线路占用过多。

DR和BDR的选举方法

自动选举DR和BDR

  • 网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR

手工选择DR和BDR

  • 优先级范围是0~255,数值越大,优先级越高,默认为1
  • 如果优先级相同,则需要比较Router ID
  • 如果路由器的优先级被设置为0,它将不参与DR和DBR的选举

DR和BDR的选举过程

路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器

先开机的是老大,并且之后不会自动更改

OSPF的组播地址

224.0.0.5
224.0.0.6

如何选举OSPF

路由器刚开机刚开始大家都以为自己是老大,再通过发送hello包选举选择DR和BDR

  1. 第一步大家通过0.5发送hello确认谁是DR谁是BDR
  2. 然后其他路由器通过0.6,把自己的链路发送给DR和BDR
  3. DR和BDR再通过0.5发送给其他路由器

OSPF的度量值为COST

COST=10^8/BW

最短路径是基于接口指定的代价(cost)计算的

接口类型 代价(108/BW)
Fast Ethernet 1
Ethernet 10
56k 1785

OSPF的数据包类型(5种数据包)

OSPF数据包:

承载在IP数据包内,使用协议号89

OSBF的包类型

OSPF的包类型 描述
Hello包 用于发现和维持邻居关系,选举DR和BDR
数据库描述包(DBD) 用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR) 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU) 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
链路状态确认包(LSAck) 确认已经收到DBD/LSU,每个LSA需要被分别确认

OSPF邻接关系的建立(7种转态)

OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程

**一、Down状态:**初始化----路由器启动后开始向外发Hello,但是没有收到对方的Hello报文。

**二、Init状态:**收到第一个hello包----路由器已经接收到相邻路由器发送来的Hello数据包,但自身的IP地址并没有出现在该Hello数据包内,也就是说,双方的双向通信还没有建立起来。

**三、2-Way状态:**双向建立会话----路由器看到自身已经处于相邻路由器的Hello数据包内,双向通信已经建立

OSPF启动的第二个阶段是建立完全的邻接关系

**四、ExStart状态:**建立主从关系----在此状态协商DD报文发送的主从,开始的时候都认为自己是
主路由器,发送一个空的DD报文I=1,M=1,MS=1,自己定义一个DD开始***,对方认同(比较Router-ID谁大)则回一个相同***的DD报文,I=0,M=1,MS=0。不认同则回一个不同的***的DD报文I=1,M=1,MS=1。同时检查MTU是否一致,不同将一直停在Exstart状态。

**五、Exchange状态:**交换摘要信息----在这个状态,路由器向相邻的OSPF路由器发送数据库描述数据包来交换链路状态信息,每一个数据包都有一个数据包***。如果发现DBD里有新信息,路由器向相邻路由 器发送链路状态请求数据包来请求其相应数据。

**六、Loading状态:**加载详细信息----根据之前的DD报文发送LSR请求LSA直到LSDB完全同步

**七、Full状态:**完全连接----收敛(同步)成功,双方达成一致

OSPF的网络类型(4种类型)

OSPF将网络划分为四种类型

  1. 点到点网络------自动发现邻居,不需要DR/BDR、组播224.0.0.5
  2. 广播多路访问网络(BMA)-----自动发现邻居、选DR/BDR、组播
  3. 非广播多路访问网络罗(NBMA)------手工指定邻居,选DR/BDR、单播
  4. 点到多点网络------自动发现邻居,不需要DR/BDR、组播224.0.0.5

OSPF的使用场景

  • 网络规模,网络拓扑,其他特殊要求,路由器自身要求

OSPF的特点

  1. 可适应大规模网络
  2. 路由变化收敛速度快
  3. 无路由环
  4. 支持变长子网掩码VLSM
  5. 支持区域划分
  6. 支持以组播地址发送协议报

OSPF:属于链路状态路由协议,没有跳数限制,支持可变长子网掩码(VLSM),收敛速度快,使用组播发送链路状态更新

路由协议或路由种类 优先级
Direct 0
OSPF 10
IS-IS 15
Static 60
RIP 100
OSPF ASE 150
BGP 255

OSPF配置实验

以下配置图片为例
在这里插入图片描述
首先配完所有路由器的对应网口IP(int进入,ip add IP➕子网掩码)

其次就是重点要在每个路由器上都配一个Router ID也就是路由器ID
int loopback 0-----##进入回环网口 0为名称(每个路由器可重复)
ip add 随意的IP地址,最好能对应上路由器以便分辨,子网掩码为32
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述配完以后进行ospf配置
ospf 1 router-id 1.1.1.1-----##创建ospf进程,配置路由ID
area 0------##在上述命令基础上进入区域0,区域0是骨干区域
network 192.168.10.0 0.0.0.255----##宣告ospf区域内的直连网段,并且加上反掩码(此图有两个直连网段所以配置两个)
network 10.0.0.0 0.0.0.3
network 1.1.1.1 0.0.0.0----###记得不要忘记宣告回环网口的ID和反掩码
在这里插入图片描述
dis ip routing-table-----##查看路由器里的数据库信息
在这里插入图片描述
最后ping一下pc1与pc2(不要忘记设置各自参数)
在这里插入图片描述 这样我们就完成了!