OSPF路由协议基础实验
OSPF(Open Shortest Path First)
即开放式最短路径优先协议,是一种内部网关协议(IGP),用于在单一自治系统(AS)内决策路由。以下是详细的知识点:
一、OSPF 基础概念
-
工作原理
- OSPF 基于链路状态算法。每个路由器都会收集其自身接口的链路状态信息,包括接口的 IP 地址、子网掩码、网络类型、链路开销等。这些信息被封装成链路状态通告(LSA),然后发送给自治系统内的其他路由器。
- 所有路由器通过交换 LSA,构建出一个完整的链路状态数据库(LSDB)。这个数据库描述了整个自治系统的网络拓扑结构。
- 基于 LSDB,每个路由器使用迪杰斯特拉(Dijkstra)算法计算出以自己为根的最短路径树(SPT),从而确定到每个目的网络的最佳路径,并将这些路由信息添加到自己的路由表中。
-
区域(Area)概念
- OSPF 通过划分区域来减少链路状态数据库的规模,降低 SPF 算法的计算复杂度。一个自治系统可以划分为多个区域,区域的边界由区域边界路由器(ABR)来定义。
- 骨干区域(Area 0)是特殊的区域,所有其他区域都必须与骨干区域相连。这种层次化的结构使得 OSPF 网络更易于管理和扩展。
- 例如,在一个大型企业网络中,可以将总部的网络划分为一个骨干区域,各个分支机构的网络划分为不同的非骨干区域。
-
路由器类型
- 内部路由器(IR):所有接口都属于同一个区域的路由器。它只维护所在区域的链路状态信息。
- 区域边界路由器(ABR):连接一个或多个区域到骨干区域的路由器。它维护多个区域的链路状态信息,并且可以将区域间的路由信息进行汇总和传播。
- 自治系统边界路由器(ASBR):连接自治系统与外部网络(如其他自治系统或者非 OSPF 网络)的路由器。它负责引入外部路由信息到 OSPF 自治系统内部。
二、OSPF 报文类型
- Hello 报文
- 用于发现和维护邻居关系。路由器周期性地(默认 10 秒,在多路访问网络中是 30 秒)发送 Hello 报文。
- Hello 报文中包含路由器 ID、区域 ID、认证信息、网络掩码等内容。通过比较这些信息,路由器可以判断是否能与对方建立邻居关系。
- 如果在一定时间(Dead Interval,默认 4 倍 Hello Interval)内没有收到邻居的 Hello 报文,就会认为邻居失效。
- 数据库描述(DBD)报文
- 用于描述本地链路状态数据库的摘要信息。在邻居关系建立的初期,路由器会交换 DBD 报文,以便双方了解对方 LSDB 的内容。
- DBD 报文包含 LSDB 中每一条 LSA 的头部信息,如 LSA 类型、LSA ID、通告路由器等,通过比较这些头部信息,路由器可以确定需要从对方获取哪些完整的 LSA。
- 链路状态请求(LSR)报文
- 当路由器通过比较 DBD 报文发现自己的 LSDB 缺少某些 LSA 时,就会发送 LSR 报文向邻居请求完整的 LSA。LSR 报文中包含需要请求的 LSA 的类型、LSA ID 和通告路由器等信息。
- 链路状态更新(LSU)报文
- 用于发送完整的 LSA。收到 LSR 报文后,路由器会将对方请求的 LSA 封装在 LSU 报文中发送给请求方。一个 LSU 报文可以包含多个 LSA。
- LSU 报文是 OSPF 中最重要的报文类型之一,因为它直接传递了链路状态信息,这些信息的传播和更新对于构建准确的网络拓扑至关重要。
- 链路状态确认(LSAck)报文
- 用于确认收到的 LSA。当路由器收到 LSU 报文后,会发送 LSAck 报文来确认收到的 LSA。这是一种可靠的传输机制,确保 LSA 能够正确地在网络中传播。
三、OSPF 的开销(Cost)
- 计算方式
-
OSPF 的开销与链路的带宽有关。默认情况下,开销的计算公式为:Cost = 100Mbps / 链路带宽(Mbps)。例如,对于一条 10Mbps 的链路,其开销为
100Mbps/10Mbps = 10。
-
可以通过修改接口的开销值来影响路由选择。这在网络优化和流量工程中非常有用,比如当希望某些流量优先通过某条链路时,可以适当调整该链路的开销。
-
- 影响路由选择
-
路由器在计算最短路径树时,会综合考虑路径上所有链路的开销总和。开销越小的路径越优先被选择。
-
例如,从路由器 A 到路由器 C 有两条路径,路径 1 经过链路带宽为 100Mbps 和 50Mbps 的两条链路,其总开销为
100Mbps/100Mbps + 100Mbps/50Mbps = 1 + 2 = 3;路径 2 经过链路带宽为 10Mbps 的三条链路,其总开销为
100Mbps/10Mbps×3 = 30。那么路由器 A 会优先选择路径 1 来转发到路由器 C 的流量。
-
四、配置任务1:建立单区域OSPF
-
实验目标:通过OSPF协议,让4台路由器分别学习到两台PC的网段,以及每台路由器的环回接口地址,实现全网IP互通。
设备 | 接口 | IP地址 | 子网掩码 | 默认网关 |
---|---|---|---|---|
AR1 | G0/0/0 | 172.16.10.1 | 255.255.255.0 | — |
G0/0/1 | 10.10.14.1 | 255.255.255.0 | — | |
G0/0/2 | 10.10.12.1 | 255.255.255.0 | — | |
Lo0 | 10.10.0.1 | 255.255.255.255 | — | |
AR2 | G0/0/1 | 10.10.12.2 | 255.255.255.0 | — |
G0/0/2 | 10.10.23.2 | 255.255.255.0 | — | |
Lo0 | 10.10.0.2 | 255.255.255.255 | — | |
AR3 | G0/0/0 | 172.16.30.3 | 255.255.255.0 | — |
G0/0/1 | 10.10.34.3 | 255.255.255.0 | — | |
G0/0/2 | 10.10.23.3 | 255.255.255.0 | — | |
Lo0 | 10.10.0.3 | 255.255.255.255 | — | |
AR4 | G0/0/1 | 10.10.14.4 | 255.255.255.0 | — |
G0/0/2 | 10.10.34.4 | 255.255.255.0 | — | |
Lo0 | 10.10.0.4 | 255.255.255.255 | — | |
PC1 | E0/0/1 | 172.16.10.10 | 255.255.255.0 | 172.16.10.1 |
PC2 | E0/0/1 | 172.16.30.10 | 255.255.255.0 | 172.16.30.3 |
1. 路由配置
- AR1的配置
system-view
sysname AR1
interface GigabitEthernet 0/0/0
ip address 172.16.10.1 24
quit
interface GigabitEthernet 0/0/1
ip address 10.10.14.1 24
quit
interface GigabitEthernet 0/0/2
ip address 10.10.12.1 24
quit
interface LoopBack 0
ip address 10.10.0.1 32
system-view
:进入系统视图sysname AR1
:设置设备名称为AR1interface GigabitEthernet 0/0/0
:进入千兆以太网接口GigabitEthernet 0/0/0ip address 172.16.30.3 24
:为该接口配置IP地址为172.16.30.3,子网掩码为24位(即255.255.255.0)quit
:退出当前接口配置模式interface LoopBack 0
:进入环回接口LoopBack 0ip address 10.10.0.3 32
:为该环回接口配置IP地址为10.10.0.3,子网掩码为32位(即255.255.255.255,该地址仅用于本地设备标识等用途)
- AR2的配置
system-view
sysname AR2
interface GigabitEthernet 0/0/1
ip address 10.10.12.2 24
quit
interface GigabitEthernet 0/0/2
ip address 10.10.23.2 24
quit
interface LoopBack 0
ip address 10.10.0.2 32
- AR3的配置
system-view
sysname AR3
interface GigabitEthernet 0/0/0
ip address 172.16.30.3 24
quit
interface GigabitEthernet 0/0/1
ip address 10.10.34.3 24
quit
interface GigabitEthernet 0/0/2
ip address 10.10.23.3 24
quit
interface LoopBack 0
ip address 10.10.0.3 32
- AR4的配置
system-view
sysname AR4
interface GigabitEthernet 0/0/1
ip address 10.10.14.4 24
quit
interface GigabitEthernet 0/0/2
ip address 10.10.34.4 24
quit
interface LoopBack 0
ip address 10.10.0.4 32
2. OSPF配置
- AR1上的OSPF配置
ospf 1 router-id 10.10.0.1
area 0
network 172.16.10.0 0.0.0.255
network 10.10.12.0 0.0.0.255
network 10.10.14.0 0.0.0.255
network 10.10.0.1 0.0.0.0
-
ospf 1 router - id 10.10.0.1
ospf 1
:这是在设备上启动 OSPF(开放式最短路径优先)协议的进程号为 1。OSPF 可以同时运行多个进程,每个进程有独立的数据库和计算逻辑。不同的进程之间不交换路由信息,一般在需要对网络进行逻辑隔离或者测试等场景下会使用多个 OSPF 进程。router - id 10.10.0.1
:用于指定路由器 ID(Router - ID)。Router - ID 是一个 32 位的 IP 地址,在整个 OSPF 网络中用于唯一标识一台路由器。它的作用类似于设备的 “身份证”,OSPF 协议使用 Router - ID 来区分不同的路由器。这个 Router - ID 可以手动指定,也可以由设备自动选择(通常是设备上的最大的 IP 地址的接口作为 Router - ID)。在这里手动指定了 Router - ID 为 10.10.0.1。
-
area 0
- 这是进入 OSPF 进程 1 的区域 0(骨干区域)的配置模式。在 OSPF 网络架构中,区域 0 是骨干区域,所有其他区域都需要与区域 0 相连。骨干区域的主要功能是负责在不同区域之间传递路由信息,就像一个交通枢纽,连接各个不同的 “区域子网”。
-
network 172.16.10.0 0.0.0.255
- 这是宣告一个网段到 OSPF 区域 0。
172.16.10.0
是要宣告的网络地址,0.0.0.255
是反掩码。在 OSPF(以及其他一些路由协议)的网络宣告中,反掩码用于确定要匹配的网络范围。反掩码与子网掩码的概念相反,子网掩码中 1 表示网络位,0 表示主机位;而反掩码中 0 表示匹配对应的位,1 表示忽略对应的位。这里的反掩码0.0.0.255
表示精确匹配 172.16.10.0 这个网段,即掩码为 255.255.255.0 的网络。这样,设备会将这个网段的信息通过 OSPF 协议传播到区域 0 中的其他设备,让其他设备知道如何到达这个网段。
- 这是宣告一个网段到 OSPF 区域 0。
-
network 10.10.12.0 0.0.0.255
:功能类似 -
network 10.10.14.0 0.0.0.255
:功能类似 -
network 10.10.0.1 0.0.0.0
:功能类似 -
AR2的OSPF
ospf 2 router-id 10.10.0.2
area 0
quit
quit
interface GigabitEthernet 0/0/1
ospf enable 2 area 0
quit
interface GigabitEthernet 0/0/2
ospf enable 2 area 0
quit
interface LoopBack 0
ospf enable 2 area 0
ospf 2 router - id 10.10.0.2
- 这是在设备上启动 OSPF(开放式最短路径优先)协议的进程 2,并指定路由器 ID(Router - ID)为 10.10.0.2。与前面提到的进程 1 类似,这里的进程 2 也是独立的 OSPF 运行实例。启动 OSPF 进程并指定 Router - ID 是配置 OSPF 的第一步,用于在网络中唯一标识该路由器,方便后续的路由信息交换和处理。
area 0
- 进入 OSPF 进程 2 的区域 0(骨干区域)的配置模式。
ospf enable 2 area 0
- 在接口 GigabitEthernet 0/0/1 上启用 OSPF 进程 2,并将该接口划分到区域 0。这一步的操作使得接口 GigabitEthernet 0/0/1 能够参与 OSPF 进程 2 的路由信息交换,并且该接口所属的网段信息将在区域 0 内传播,其他设备可以通过 OSPF 协议学习到如何通过这个接口到达相应的网段。
两种配置方法均能实现相同的效果
- 第一种方式是通过在区域配置模式下一次性宣告多个网段,这种方式对于已经明确要宣告的网段比较方便,集中配置。
- 第二种方式是逐个接口启用 OSPF 并划分区域,这种方式更直观地体现了每个接口与 OSPF 的关联,在接口较多且网段划分比较复杂的情况下,可能更容易管理和理解每个接口的 OSPF 配置情况。
- 在AR2上查看OSPF邻居
display ospf 2 peer brief
结果
[AR2]display ospf 2 peer brief
OSPF Process 2 with Router ID 10.10.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.10.0.1 Full
----------------------------------------------------------------------------
- AR3上的OSPF配置(匹配所有子网)
ospf 3 router-id 10.10.0.3
area 0
network 0.0.0.0 0.0.0.0
return
- 在AR3上查看OSPF接口
display ospf 3 interface all
结果
<AR3>display ospf 3 interface all
OSPF Process 3 with Router ID 10.10.0.3
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
Interface: 172.16.30.3 (GigabitEthernet0/0/0)
Cost: 1 State: Waiting Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 0.0.0.0
Backup Designated Router: 0.0.0.0
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Interface: 10.10.34.3 (GigabitEthernet0/0/1)
Cost: 1 State: Waiting Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 0.0.0.0
Backup Designated Router: 0.0.0.0
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Interface: 10.10.23.3 (GigabitEthernet0/0/2)
Cost: 1 State: BDR Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 10.10.23.2
Backup Designated Router: 10.10.23.3
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
Interface: 10.10.0.3 (LoopBack0)
Cost: 0 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
- 在AR3上查看OSPF邻居详情
display ospf peer
结果
<AR3>display ospf peer
OSPF Process 3 with Router ID 10.10.0.3
Neighbors
Area 0.0.0.0 interface 10.10.23.3(GigabitEthernet0/0/2)'s neighbors
Router ID: 10.10.0.2 Address: 10.10.23.2
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.10.23.2 BDR: 10.10.23.3 MTU: 0
Dead timer due in 31 sec
Retrans timer interval: 5
Neighbor is up for 00:01:04
Authentication Sequence: [ 0 ]
- 在AR2上查看OSPF路由
display ip routing-table protocol ospf
结果
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 6 Routes : 6
OSPF routing table status : <Active>
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.0.1/32 OSPF 10 1 D 10.10.12.1 GigabitEthernet0/0/1
10.10.0.3/32 OSPF 10 1 D 10.10.23.3 GigabitEthernet0/0/2
10.10.14.0/24 OSPF 10 2 D 10.10.12.1 GigabitEthernet0/0/1
10.10.34.0/24 OSPF 10 2 D 10.10.23.3 GigabitEthernet0/0/2
172.16.10.0/24 OSPF 10 2 D 10.10.12.1 GigabitEthernet0/0/1
172.16.30.0/24 OSPF 10 2 D 10.10.23.3 GigabitEthernet0/0/2
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
- PC1向PC2发起ping测试
PC1>ping 172.16.30.10
Ping 172.16.30.10: 32 data bytes, Press Ctrl_C to break
From 172.16.30.10: bytes=32 seq=1 ttl=125 time=46 ms
From 172.16.30.10: bytes=32 seq=2 ttl=125 time=62 ms
From 172.16.30.10: bytes=32 seq=3 ttl=125 time=31 ms
From 172.16.30.10: bytes=32 seq=4 ttl=125 time=31 ms
From 172.16.30.10: bytes=32 seq=5 ttl=125 time=47 ms
--- 172.16.30.10 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/43/62 ms
- AR4加入OSPF域
- AR4上的OSPF配置
ospf 4 router-id 10.10.0.4
area 0
network 10.10.14.0 0.0.0.255
network 10.10.34.0 0.0.0.255
network 10.10.0.4 0.0.0.0
- AR4上的OSPF邻居关系
display ospf peer brief
结果
OSPF Process 4 with Router ID 10.10.0.4
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.10.0.1 Full
0.0.0.0 GigabitEthernet0/0/2 10.10.0.3 Full
----------------------------------------------------------------------------
- 在AR3上查看OSPF路由
display ip routing-table protocol ospf
结果
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 6 Routes : 8
OSPF routing table status : <Active>
Destinations : 6 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.0.1/32 OSPF 10 2 D 10.10.34.4 GigabitEthernet0/0/1
OSPF 10 2 D 10.10.23.2 GigabitEthernet0/0/2
10.10.0.2/32 OSPF 10 1 D 10.10.23.2 GigabitEthernet0/0/2
10.10.0.4/32 OSPF 10 1 D 10.10.34.4 GigabitEthernet0/0/1
10.10.12.0/24 OSPF 10 2 D 10.10.23.2 GigabitEthernet0/0/2
10.10.14.0/24 OSPF 10 2 D 10.10.34.4 GigabitEthernet0/0/1
172.16.10.0/24 OSPF 10 3 D 10.10.23.2 GigabitEthernet0/0/2
OSPF 10 3 D 10.10.34.4 GigabitEthernet0/0/1
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
五、通过开销进行选路
- 实验目的:通过AR1上的配置,使AR1优先使用AR1-AR2-AR3这条路径转发去往PC2的数据包,将AR1-AR4-AR3路径作为去往PC2的备用路径。
- 更改AR1 G0/0/1接口的OSPF开销
interface GigabitEthernet 0/0/1
ospf cost 5
- 在AR1上查看变更后的OSPF路由
display ip routing-table protocol ospf
结果
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 6 Routes : 6
OSPF routing table status : <Active>
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.0.2/32 OSPF 10 1 D 10.10.12.2 GigabitEthernet0/0/2
10.10.0.3/32 OSPF 10 2 D 10.10.12.2 GigabitEthernet0/0/2
10.10.0.4/32 OSPF 10 3 D 10.10.12.2 GigabitEthernet0/0/2
10.10.23.0/24 OSPF 10 2 D 10.10.12.2 GigabitEthernet0/0/2
10.10.34.0/24 OSPF 10 3 D 10.10.12.2 GigabitEthernet0/0/2
172.16.30.0/24 OSPF 10 3 D 10.10.12.2 GigabitEthernet0/0/2
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
- 对比AR3的OSPF路由
display ip routing-table protocol ospf
结果
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 6 Routes : 8
OSPF routing table status : <Active>
Destinations : 6 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.0.1/32 OSPF 10 2 D 10.10.34.4 GigabitEthernet0/0/1
OSPF 10 2 D 10.10.23.2 GigabitEthernet0/0/2
10.10.0.2/32 OSPF 10 1 D 10.10.23.2 GigabitEthernet0/0/2
10.10.0.4/32 OSPF 10 1 D 10.10.34.4 GigabitEthernet0/0/1
10.10.12.0/24 OSPF 10 2 D 10.10.23.2 GigabitEthernet0/0/2
10.10.14.0/24 OSPF 10 2 D 10.10.34.4 GigabitEthernet0/0/1
172.16.10.0/24 OSPF 10 3 D 10.10.23.2 GigabitEthernet0/0/2
OSPF 10 3 D 10.10.34.4 GigabitEthernet0/0/1
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
- 验证备用路由效果
- 关闭AR1 G0/0/2接口后,查看OSPF路由
display ip routing-table protocol ospf
结果
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 5 Routes : 5
OSPF routing table status : <Active>
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.0.2/32 OSPF 10 7 D 10.10.14.4 GigabitEthernet0/0/1
10.10.0.3/32 OSPF 10 6 D 10.10.14.4 GigabitEthernet0/0/1
10.10.23.0/24 OSPF 10 7 D 10.10.14.4 GigabitEthernet0/0/1
10.10.34.0/24 OSPF 10 6 D 10.10.14.4 GigabitEthernet0/0/1
172.16.30.0/24 OSPF 10 7 D 10.10.14.4 GigabitEthernet0/0/1
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
评论区