什么是OSPF?

开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。

目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。

OSPF基础概念

Router ID

如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。

Router ID的设定有两种方式:

  • 通过命令行手动配置,在实际网络部署中,建议手工配置OSPF的Router ID,因为这关系到协议的稳定。
  • 通过协议自动选取。

如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是:

优先从Loopback地址中选择最大的IP地址作为Router ID。

如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。

在路由器运行了OSPF并确定了Router ID后,如果该Router ID对应的接口Down或者接口消失(例如执行了undo interface loopback loopback-number)或者出现更大的IP地址,OSPF将仍然保持原Router ID。只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。

链路状态

OSPF是一种链路状态协议。可以将链路视为路由器的接口。链路状态是对接口及接口与相邻路由器的关系的描述。例如接口的信息包括接口的IP地址、掩码、所连接的网络的类型、连接的邻居等。所有这些链路状态的集合形成链路状态数据库。

COST

OSPF使用cost“开销”作为路由度量值。

每一个激活OSPF的接口都有一个cost值。OSPF接口cost=100M/接口带宽,其中100M为OSPF的参考带宽(reference-bandwidth)。

一条OSPF路由的cost由该路由从路由的起源一路到达本地的所有入接口cost值的总和。

报文类型

报文类型

报文作用

Hello报文

周期性发送,用来发现和维持OSPF邻居关系。

DD报文(Database Description packet)

描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。

LSR报文(Link State Request packet)

用于向对方请求所需的LSA。

设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。

LSU报文(Link State Update packet)

用于向对方发送其所需要的LSA。

LSAck报文(Link State Acknowledgment packet)

用来对收到的LSA进行确认。

OSPF是如何工作的?

OSPF协议路由的计算过程可简单描述如下:

  1. 建立邻接关系,过程如下:
  • 本端设备通过接口向外发送Hello报文与对端设备建立邻居关系。
  • 两端设备进行主/从关系协商和DD报文交换。
  • 两端设备通过更新LSA完成链路数据库LSDB的同步。

此时,邻接关系建立成功。

路由计算

OSPF采用SPF(Shortest Path First)算法计算路由,可以达到路由快速收敛的目的。

实验

拓扑图

linux ospf 配置 ospf的配置_华为

实验步骤:

给PC配置ip及网关

linux ospf 配置 ospf的配置_linux ospf 配置_02

linux ospf 配置 ospf的配置_linux ospf 配置_03

linux ospf 配置 ospf的配置_网络_04

各路由配置内容

R1

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1                    #更改路由名
[R1]un in en                      #关闭信息提示
Info: Information center is disabled.
[R1]
[R1]int e0/0/0                     #进入接口
[R1-Ethernet0/0/0]ip add 192.168.1.2 24 #设置ip
[R1-Ethernet0/0/0]int e0/0/1
[R1-Ethernet0/0/1]ip add 192.168.2.1 24
[R1-Ethernet0/0/1]q
[R1]ospf router-id 1.1.1.1        #设置标记符router-id
[R1-ospf-1]area 0                 #进入区域
[R1-ospf-1-area-0.0.0.0]network 192.168.1.2 0.0.0.0  #宣告ip
[R1-ospf-1-area-0.0.0.0]network 192.168.2.1 0.0.0.0

R2

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R2
[R2]un in en
Info: Information center is disabled.
[R2]int e0/0/0
[R2-Ethernet0/0/0]ip add 192.168.2.2 24
[R2-Ethernet0/0/0]int e0/0/1
[R2-Ethernet0/0/1]ip add 192.168.3.1 24
[R2-Ethernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.6.1 24
[R2-GigabitEthernet0/0/0]q
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 192.168.3.1 0.0.0.0
[R2-ospf-1-area-0.0.0.0]area 2
[R2-ospf-1-area-0.0.0.2]network 192.168.6.1 0.0.0.0

R3

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R3
[R3]un in en
Info: Information center is disabled.
[R3]int e0/0/0
[R3-Ethernet0/0/0]ip add 192.168.3.2 24
[R3-Ethernet0/0/0]int e0/0/1
[R3-Ethernet0/0/1]ip add 192.168.4.1 24
[R3-Ethernet0/0/1]q
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.3.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]area 1
[R3-ospf-1-area-0.0.0.1]network 192.168.4.1 0.0.0.0

R4

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R4
[R4]un in en
Info: Information center is disabled.
[R4]int e0/0/0
[R4-Ethernet0/0/0]ip add 192.168.4.2 24
[R4-Ethernet0/0/0]int e0/0/1
[R4-Ethernet0/0/1]ip add 192.168.5.1 24
[R4-Ethernet0/0/1]q
[R4]ospf router-id 4.4.4.4
[R4-ospf-1]area 1
[R4-ospf-1-area-0.0.0.1]network 192.168.4.2 0.0.0.0
[R4-ospf-1-area-0.0.0.1]network 192.168.5.1 0.0.0.0

R5

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R5
[R5]un in en
Info: Information center is disabled.
[R5]int e0/0/1
[R5-Ethernet0/0/1]ip add 192.168.7.1 24
[R5-Ethernet0/0/1]int e0/0/0
[R5-Ethernet0/0/0]ip add 192.168.6.2 24
[R5-Ethernet0/0/0]q
[R5]ospf router-id 5.5.5.5
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network 192.168.6.2 0.0.0.0
[R5-ospf-1-area-0.0.0.2]network 192.168.7.1 0.0.0.0