第五章:OSPF
开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。目前针对IPv4协议使用的是OSPF Version 2(RFC2328),本章只讨论单区域的OSPF。
5.1 OSPF概述
- OSPF特性
- 版本: V2支持IPV4,V3支持IPV6
- 基于SPF算法,也被称为Dijkstra算法
- 使用组播收发部分协议报文 组播地址:224.0.0.5、224.0.0.6
- 支持区域划分
- 支持等价路由
- 支持报文认证(明文 、密文)
- OSPF专业术语
- Router-id:用于在一个OSPF域中唯一地标识一台路由器
- Area:区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识
- Cost:Cost值 = 100 Mbit/s 接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值
- 进程号:SPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立
- OSPF维护三张表
- 邻居表:查看了OSPF路由器之间的邻居状态,使用display ospf peer查看。
- LSDB表:保存自己产生的及从邻居收到的LSA信息,使用命令行display ospf lsdb查看LSDB表。
- OSPF路由表:包含Destination、Cost和NextHop等指导转发的信息,使用命令display ospf routing查看OSPF路由表。
- OSPF的包文类型
- Hello 发现和维护邻居关系
- Database Description 交互链路状态数据库摘要
- Link State Request 请求特定的链路状态信息
- Link State Update 发送详细的链路状态信息
- Link State Ack 发送确认报文
- OSPF的邻居状态
- down 邻居的初始状态,表示没有从邻居收到任何信息
- init 收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中
- two-way 收到了对方的hello包,而且在hello包里看到了自己的router-id,选DR/BDR
- extart 发送DD包,选主/从
- exchange 相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。
- loading 相互发送LSR报文请求LSA,发送LSU通告LSA。
- full 两台路由器的LSDB已经同步。
- DR/BDR的选择原则
- 等待40s
- 比较优先级 默认为1,范围 0-255,0不能参与选举
- 比较router-id
5.2实验一:点到点链路上的OSPF
- 实验需求
在R1、R2、R3上运行OSPF,实现网络的互联互通。
- 实验拓扑
本实验拓扑结构如图5-1所示:
图5-1 点到点链路上的OSPF
- 实验步骤
(1)步骤1: IP地址的配置
配置路由器R1
<Huawei>system-view
[Huawei]sysname R1
[R1]interface s0/0/0
[R1-Serial0/0/0]ip address 192.168.12.1 24
[R1-Serial0/0/0]undo shutdown
[R1-Serial0/0/0]quit
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 1.1.1.1 24
[R1-LoopBack0]quit
配置路由器R2
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R2
[R2]interface s0/0/0
[R2-Serial0/0/0]ip address 192.168.23.2 24
[R2-Serial0/0/0]undo shutdown
[R2-Serial0/0/0]quit
[R2]interface s0/0/1
[R2-Serial0/0/1]ip address 192.168.12.2 24
[R2-Serial0/0/1]undo shutdown
[R2-Serial0/0/1]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 2.2.2.2 24
[R2-LoopBack0]quit
配置路由器R3
<Huawei>system-view
[Huawei]undo info-center en
[Huawei]undo info-center enable
[Huawei]sysname R3
[R3]interface s0/0/1
[R3-Serial0/0/1]ip address 192.168.23.3 24
[R3-Serial0/0/1]undo shutdown
Info: Interface Serial0/0/1 is not shutdown.
[R3-Serial0/0/1]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 3.3.3.3 24
[R3-LoopBack0]quit
步骤2:OSPF路由协议的配置
路由器R1的配置
[R1]ospf router-id 1.1.1.1 //OSPF的进程为1,router-id为1.1.1.1
[R1-ospf-1]area 0 //进入到区域0
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255 //宣告网络 192.168.12.0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255 //宣告网络1.1.1.0
[R1-ospf-1-area-0.0.0.0]quit // 退出
路由器R2的配置
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
路由器R3的配置
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
【技术要点】
OSPF进程是配置与OSPF协议有关参数的首要步骤。OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。可以在创建OSPF进程时指定进程号,若不指定,默认进程号为“1”。
- 实验调试
- 查看R1的邻居表
[R1]display ospf peer brief
OSPF Process 1 with Router ID 1.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 Serial0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------
- 查看R1的LSDB表
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 374 84 80000005 1562
Router 1.1.1.1 1.1.1.1 421 60 80000004 1562
Router 3.3.3.3 3.3.3.3 372 60 80000003 1562
(3)查看R1的路由表
[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
-------------------------------------------------
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 Direct 0 0 D 1.1.1.1 LoopBack0
1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
2.2.2.2/32 OSPF 10 1562 D 192.168.12.2 Serial0/0/0
3.3.3.3/32 OSPF 10 3124 D 192.168.12.2 Serial0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 Serial0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 Serial0/0/0
192.168.12.2/32 Direct 0 0 D 192.168.12.2 Serial0/0/0
192.168.23.0/24 OSPF 10 3124 D 192.168.12.2 Serial0/0/0
【技术要点】
- 环回接口OSPF路由条目的掩码长度都是32位,这是环回接口的特性,尽管通告了24位。解决的办法是在环回接口下修改网络类型为” broadcast”,操作如下:
[R3]interface LoopBack 0
[R3-LoopBack0]ospf network-type broadcast //ospf的网络类型为广播
- 路由条目”3.3.3.3”的度量值为5124,计算过程如下:
cost的计算公式为100/带宽(bps),然后取整,而且是所有链路入口的cost之和,环回接口的cost为1,路由条目”3.3.3.3”到路由器R1经过的入接口包括路由器R3的loopback 0,路由器R2的s0/0/0,路由器R1的s0/0/0,所以计算如下:0+100/0.064+100/0.064=3124,也可以直接通过命令”ospf cost”设置接口的cost值,并且它是优先计算的cost值
- 查看R1接口状态
[R1]display ospf interface s0/0/0
OSPF Process 1 with Router ID 1.1.1.1
Interfaces
Interface: 192.168.12.1 (Serial0/0/0) --> 192.168.12.2
Cost: 1562 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
以上输出的关键字解释如下:
- Cost:1562 接口开销
- State:P-2-P 链路类型
- Type:P2P 网络类型
- Mtu:1500 最大传输单元
- Hello 10 hello包间隔时间
- Dead 40 hello包死亡时间
【技术要点】
OSPF邻居关系不能建立的常见原因:
- Hello间隔和Dead间隔不同
同一链路上的Hello包间隔和Dead间隔必须相同才能建立邻接关系。默认Dead间隔是Hello间隔的4倍,可以在接口下通过” ospf timer hello”和” ospf timer hello “命令调整。
② 区域号码不一致。
③ 特殊区域(如stub和nssa等)区域类型不匹配。
④ 认证类型或密码不一致。
⑤ 路由器ID相同。
- Hello包被ACL deny。
- 链路上的MTU不匹配。
- 接口下OSPF网络类型不匹配。
5.3实验二:MA网络上的OSPF
- 实验需求
在R1、R2、R3、R4上运行OSPF,并查看DR和BDR。
- 实验拓扑
实验拓扑如图5-2所示:
图5-2 MA网络上的OSPF
- 实验步骤
(1)步骤1: IP地址的配置
配置路由器R1
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R1
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.1.1.1 24
[R1-GigabitEthernet0/0/0]undo shutdown
[R1-GigabitEthernet0/0/0]quit
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 1.1.1.1 24
[R1-LoopBack0]quit
配置路由器R2
<Huawei>system-view
[Huawei]sysname R2
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.1.1.2 24
[R2-GigabitEthernet0/0/0]undo shutdown
[R2-GigabitEthernet0/0/0]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 2.2.2.2 24
[R2-LoopBack0]quit
配置路由器R3
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R3
[R3]interface g0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.1.1.3 24
[R3-GigabitEthernet0/0/0]undo shutdown
[R3-GigabitEthernet0/0/0]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 3.3.3.3 24
[R3-LoopBack0]quit
配置路由器R4
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R4
[R4]interface g0/0/0
[R4-GigabitEthernet0/0/0]ip address 10.1.1.4 24
[R4-GigabitEthernet0/0/0]undo shutdown
[R4-GigabitEthernet0/0/0]quit
[R4]interface LoopBack 0
[R4-LoopBack0]ip address 4.4.4.4 24
[R4-LoopBack0]quit
(2)步骤2:OSPF的配置
配置路由器R1
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]quit
配置路由器R2
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
配置路由器R3
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
配置路由器R4
[R4]ospf router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]quit
- 实验调试
(1)查看R1接口的OSPF状态
[R1]display ospf interface g0/0/0
OSPF Process 1 with Router ID 1.1.1.1
Interfaces
Interface: 10.1.1.1 (GigabitEthernet0/0/0)
Cost: 1 State: DR Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 10.1.1.1
Backup Designated Router: 10.1.1.2
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
【技术要点】:
按照我们学的理论知识,4台路由器的优先级都为1,那么比较rouer-id,根据这个原则,R4会成为DR,R3会成为BDR。为什么R1成为了DR,R2成为了BDR?
解析:因为我们最先配置的R1,然后为R2。如果邻居路由器没有相关DR和BDR字段,那么就等待40s的时间 , 才开始选举DR/BDR (此时比较优先级、Router ID参数)。
(2)查看R3与R4的邻居关系
[R3]display ospf peer brief
OSPF Process 1 with Router ID 3.3.3.3
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
0.0.0.0 GigabitEthernet0/0/0 4.4.4.4 2-Way
----------------------------------------------------------------------------
可以看到R3与R4的邻居关系为2-WAY。
5.4OSPF下发默认路由
- 实验需求
全网运行OSPF,R4为互联网的出口,在R4上下发默认路由,让下游路由器可以学习到。
- 实验拓扑
实验拓扑如图5-3
图5-3 OSPF下发默认路由
- 实验步骤
(1)步骤1: IP地址的配置
配置路由器R1
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R1
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0]undo shutdown
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[R1-GigabitEthernet0/0/0]quit
[R1]interface g0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.13.1 24
[R1-GigabitEthernet0/0/1]undo shutdown
[R1-GigabitEthernet0/0/1]quit
配置路由器R2
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R2
[R2]interface g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/1]undo shutdown
[R2-GigabitEthernet0/0/1]quit
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.24.2 24
[R2-GigabitEthernet0/0/0]undo shutdown
[R2-GigabitEthernet0/0/0]quit
配置路由器R3
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R3
[R3]interface g0/0/0
[R3-GigabitEthernet0/0/0]ip address 192.168.13.3 24
[R3-GigabitEthernet0/0/0]undo shutdown
[R3-GigabitEthernet0/0/0]quit
[R3]interface g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.34.3 24
[R3-GigabitEthernet0/0/1]undo shutdown
[R3-GigabitEthernet0/0/1]quit
配置路由器R4
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R4
[R4]interface g0/0/0
[R4-GigabitEthernet0/0/0]ip address 192.168.34.4 24
[R4-GigabitEthernet0/0/0]undo shutdown
[R4-GigabitEthernet0/0/0]quit
[R4]interface g0/0/1
[R4-GigabitEthernet0/0/1]ip address 192.168.24.4 24
[R4-GigabitEthernet0/0/1]undo shutdown
[R4-GigabitEthernet0/0/1]quit
(2)步骤2:配置OSPF
配置路由器R1
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]quit
配置路由器R2
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
配置路由器R3
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.13.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
配置路由器R4
[R4]ospf router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]quit
(3)配置默认路由 (假如R4为企业网的出口、出口编号为 NULL 0)
[R4]ip route-static 0.0.0.0 0.0.0.0 NULL 0
查看R4的路由表:
[R4]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 D 0.0.0.0 NULL0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.12.0/24 OSPF 10 2 D 192.168.24.2 GigabitEthernet0/0/1 192.168.13.0/24 OSPF 10 2 D 192.168.34.3 GigabitEthernet0/0/0 192.168.24.0/24 Direct 0 0 D 192.168.24.4 GigabitEthernet0/0/1 192.168.24.4/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.34.0/24 Direct 0 0 D 192.168.34.4 GigabitEthernet0/0/0
192.168.34.4/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
查看R1的路由表
[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.24.0/24 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0 192.168.34.0/24 OSPF 10 2 D 192.168.13.3 GigabitEthernet0/0/1
可以看到只有R4上有静态路由、在R1、R2、R3上是没有静态路由的,如果一条一条去配置太麻烦,可以使用OSPF下发默认路由,方法如下:
[R4]ospf
[R4-ospf-1]default-route-advertise
[R4-ospf-1]quit
- 实验调试
现在再来查看R1的路由表
[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 9 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 192.168.12.2 GigabitEthernet0/0/0
O_ASE 150 1 D 192.168.13.3 GigabitEthernet0/0/1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.13.0/24 Direct 0 0 D 192.168.13.1 GigabitEthernet0/0/1
192.168.13.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1 192.168.24.0/24 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0 192.168.34.0/24 OSPF 10 2 D 192.168.13.3 GigabitEthernet0/0/1
可以看到路由器R4下发了默认路由让R1学习到。
5.5OSPF命令汇总
表5-1本章命令汇总
命令 | 作用 |
display ospf brief | 查看OSPF的概要信息 |
display ospf interface | 显示OSPF的接口信息 |
display ospf lsdb | 显示OSPF的链路状态数据库(LSDB)信息 |
display ospf peer | 显示OSPF中各区域邻居的信息。 |
display ospf routing | 命令用来显示OSPF路由表的信息。 |
Ospf | 启动OSPF路由进程 |
Rouer-id | 配置路由器ID |
Area | 设置区域 |
Network | 宣告网络 |
default-route-advertise | 下发默认路由 |
本文出自作者的《华为认证HCIA-datacom认证实验指南》