一. 初识OSPF
1.1. OSPF概述
OSPF是开放式最短路径优先,是IETF(国际互联网工程任务组)开发的一个基于链路状态的IGP(内部网关协议)。目前针对IPV4协议使用是OSPF。
动态路由协议因其灵活性高、可靠性强、易于扩展等特点被广泛应用于现网。在动态路由协议中,OSPF是使用场景非常广泛的动态路由协议之一
1.2. OSPF特性
- 版本:V2支持IPv4,V3支持IPv6
- 基于SPF算法,也被称为Dijkstra算法
- 使用主播收发部分协议报文,主播地址为224.0.0.5、224.0.0.6
- 支持区域划分
- 支持等价路由
- 支持报文认证(明文、密文)
1.3. OSPF的专业术语
| 名称 | 描述 |
| router-id | 用于在一个 OSPF中唯一的标识一台路由器 |
| area | 从逻辑上将设备划分为不同的组,每个组用区域号来标识 |
| Cost | Cost值等于100Mbit/s接口带宽,其中100Mbit/s为指定的默认参考值 |
| 进程号 | OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响彼此独立 |
1.4. OSPF维护的3张表
| 表名 | 描述 |
| 邻居表 | 查看OSPF路由器之间的邻居状态使用命令display ospf peer查看 |
| LSDB表 | 保存自己产生的即从邻居收到的LSA信息,使用命令display ospf lsdb查看 |
| OSPF路由表 | 包括Desttination、Cost和NextHop等指导转发的信息,使用display ospf routing命令查看 |
1.5. OSPF报文类型
| 报文类型 | 作用 |
| Hello | 发现和维护邻居关系 |
| Database Description | 交互链路状态数据库摘要 |
| Link State Request | 请求特定的链路状态信息 |
| Link State Update | 发送详细的链路状态信息 |
| Link State Ack | 发送确定报文 |
1.6. OSPF的邻居状态
| 项目 | Value |
| down | 邻居的初始状态,表示没有从邻居收到任何信息 |
| init | 收到了hello报文,但是自己不再收到的hello报文的邻居列表中 |
| two-way | 收到了对方的hello报文,而且在hello报文里看到自己的router-id,选DR/BDR |
| extart | 发送DD报文,选择主/从 |
| exchange | 相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容 |
| loading | 相互发送LSR报文,请求LSU通告LSA |
二. 实验题
2.1. 实验1:点到点链路上的OSPF
2.1.1. 实验目的
- 学会在路由器上启用OSPF路由进程
- 学会启用参与路由协议的接口,并且通告网络级所在的区域
- 掌握度量值Cost的计算方法
- 掌握Hello相关参数的配置方法
- 了解点到点链路上的OSPF特征
- 学会查看和调试OSPF路由协议的相关信息
2.1.2. 实验拓扑图
2.1.3. 实验步骤
(1)IP地址配置
1)配置路由器R1,命令如下:
< Huawei > system-view
[ Huawei ] undo info-center enable
[ 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
2)配置路由器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
3)配置路由器R3,命令如下:
< Huawei > system-view
[ Huawei ] undo info-center enable
[ R2 ] sysname R3
[ R3 ] interface s0/0/1
[ R3-Serial0/0/1 ] ip address 192.168.23.3 24
[ R3-Serial0/0/1 ] undo shutdown
[ R3-Serial0/0/1 ] quit
[ R3 ] interface LoopBack 0
[ R3-LoopBack0 ] ip address 3.3.3.3 24
[ R3-LoopBack0 ] quit
(2)OSPF路由协议的配置
1)路由器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 1.1.1.0 0.0.0.255
[ R1-ospf-1-area-0.0.0.0 ] quit
💡
技术要点: OSPF选择router-id的规则
| 场景参数 | 描述 |
| 手动配置router-id | 就作为本设备的路由器id |
| 已创建OSPF进程 | 系统会自动生成设备的router-id |
| 无手动配置router-id | router-id的选举原则为:设备上有环回口时,选择环回口地址大的作为本设备的router-id;设备上没有环回口时,选择接口ip地址大的作为router-id |
说明一点:手动配置的router-id将不生效时,如果想使用手动配置的router-id。可以在用户视图模式下使用reset ospf process命令重设OPF进程是新的router-id生效。还可以删除当前OSPF配置,再重新配置OSPF进程时加上对应的router-id
2)路由器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
3)路由器R3的配置如下:
< Huawei > system-view
[ Huawei ] sysname R3
[ R3 ] undo info-center enable
[ 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进程时指定进程号,若不指定,默认进程号为1 |
说明:不同OSPF进程之间的路由交互,相当于不同路由协议之间的路由交互
2.1.3. 实验调试
(1)查看邻居表
[ R1 ] display ospf peer brief
💡
技术要点: 邻居表参数名
| 参数名 | 描述 |
| Area Id | 表示邻居在某个区域建立的OSPF的邻居关系。这里表示在Area 0中与邻居建立了OSPF的邻居关系 |
| Interface | 路由器自己和邻居路由器相连的接口。这里表示为s0/0/0接口与邻居相连 |
| Neighbor id | 表示邻居的router-id。这里表示R1的邻居的router-id为2.2.2.2 |
| State | 邻居的状态,其中Full表示已经建立的邻接关系,并且双方的数据库已经同步了。在P2P网络中属于最终的状态。当然,在广播型网络中,非指定路由之间的状态会停留在2-Way |
(2)查看LSDB表
[ R1 ] display ospf lsdb
💡
技术要点: 数链状态数据库参数信息
| 参数名 | 描述 |
| Type | LSA的类型 |
| LinkState ID | 标识每个LSA |
| AdvRouter | 表示通告路由器,代表产生该LSA的设备 |
| Age | 表示本LSA的老化时间 |
| Len | 代表LSA的大小 |
| Sequence | 代表LSA的序列号 |
| Metric | 开销值 |
(3)查看路由表表
[ R1 ] display ip routing-table
(4)查看接口状态
[ R1 ] display ospf interface s0/0/0
💡
技术要点
| 参数名 | 描述 |
| Cost | 接口度量值为1562 |
| State | 链路类型为P-2-P |
| Type | 网络类型为P2P |
| MTU | 最大传输单元为1500B |
| Hello | Hello报文的间隔时间为10S |
| Dead 40 | Hello报文的死亡时间为40S |
⚠️ 说明:OSPF邻接关系不能建立的常见原因如下
• 区域号码不一致
• 特殊区域的区域类型不匹配
• 认证类型或密码不一致
• 路由器ID相同
• Hello包被ACL deny(拒绝通行)
• 链路上的MTU不匹配
• 接口下的OSPF网络类型不匹配
2.2. 实验2:MA网络上的OSPF
2.2.1. 实验目的
- 学会在路由器上启动OSPF进程
- 学会启用参与路由协议的接口,并通告网络及所在的区域
- 学会修改参考带宽
- 学会DR选举的控制
2.2.2. 实验拓扑图
2.2.3. 实验步骤
(1)配置ip地址
1)配置路由器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
2)配置路由器R2,命令让如下:
< Huawei > system-view
[ Huawei ] undo info-center enable
[ 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
3)配置路由器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
4)配置路由器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)OSPF配置
1)配置路由器R1,命令让如下:
< R1 > system-view
[ 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
2)配置路由器R2,命令让如下:
< R2 > system-view
[ 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
3)配置路由器R3,命令让如下:
< R3 > system-view
[ 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
4)配置路由器R4,命令让如下:
< R4 > system-view
[ 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
(3)实验调试
查看接口OSPF状态
< R1 > system-view
[ R1 ] display ospf interface g0/0/0
💡 技术要点
• DR的选举只在广播型网络或者非广播型多路访问网络中出现,选举原则为比较该网络中接口的优先级,数值越大越优先,数值为0,不参与选举;
• 如果优先级一样,则比较Router-id,Router-id越大越优先,其次选举为BDR,若没被选上的设备为Drother;
• DR是无法被抢占的,也就意味着在网络运行正常时,即使修改设备的优先级也不会影响该网络中DR的角色变化;
• 所有的Drother与DR和BDR建立邻接关系(Full状态),Drother之间的状态为邻接状态(2-Way)
⚠️ 思考要点
假如有4台路由器的优先级都为1,那么比较rouer id,根据这个原则,R4会变成DR,R3会成为BDR,为什么R1会成为DR,R2会成为BDR?
解答:因为最先配置R1,然后配置R2,如果邻居路由器没有相关DR和BDR字段,那么就等待40秒,然后开始选举DR/BDR
查看接口邻居关系
[ R3 ] display ospf peer brief
2.3. 实验3:OSPF下方默认路由
2.3.1. 实验目的
- 学会在路由器上启动OSPF进程
- 学会启用参与路由协议的接口,并且通告网络及所在的区域
- 掌握OSPF下默认路由的配置
2.3.2. 实验拓扑图
2.3.3. 实验步骤
(1)IP地址配置
1)配置路由器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
[ 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
2)配置路由器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
3)配置路由器R3,命令如下:
< Huawei > system-view
[ R2 ] interface g0/0/0
[ R2-GigabitEthernet0/0/0 ] ip address 192.168.13.3 24
[ R2-GigabitEthernet0/0/0 ] undo shutdown
[ R2-GigabitEthernet0/0/0 ] quit
[ R2 ] interface g0/0/1
[ R2-GigabitEthernet0/0/1 ] ip address 192.168.34.3 24
[ R2-GigabitEthernet0/0/1 ] undo shutdown
[ R2-GigabitEthernet0/0/1 ] quit
4)配置路由器R4,命令如下:
< Huawei > system-view
[ 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.3 24
[ R4-GigabitEthernet0/0/1 ] undo shutdown
[ R4-GigabitEthernet0/0/1 ] quit
(2)OSPF配置
1)配置路由器R1,命令如下:
< R1 > system-view
[ 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
2)配置路由器R2,命令如下:
< R2 > system-view
[ 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
3)配置路由器R3,命令如下:
< R3 > system-view
[ 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
4)配置路由器R4,命令如下:
< R4 > system-view
[ 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 ] display ip routing-table
[ R1 ] display ip routing-table
通过以上输出结果,可以看到R4上有一条默认路由
可以看到只有R4上有静态路由,在R1、R2、R3上是没有静态路由的,如果一条一条的进行配置就比较麻烦,可以使用OSPF下发默认路由命令如下:
[ R4 ] ospf
[ R4-ospf-1 ] default-route-advertise
[ R4-ospf-1 ] quit
💡 技术要点
OSPF网络注入默认路由的命令为default-route-advertise,表示其他的OSPF设备可以收到该设备下发的默认路由,从而减少配置量,在此命令后加上always参数,表示无论进行默认路由下发的设备是否默认路由,都会下发;
• 如果有默认路由,则下发,一般默认情况下,如果企业网络只有单出口,则加always参数;
• 如果有多出口冗余,则不加该参数,以免出现路由黑洞;
2.3.4. 实验调试
[ R1 ] display ip routing-table
三. OSPF命令汇总
| 命令 | 作用 |
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 | 下发默认路由 |
有问题欢迎在评论区交流!