
第1天 0SPF邻居表建立------
动态路由的优势、OSPF概述、OSPF工作过程、OSPF单区域配置、
邻居建立影响因素、OSPF多区域配置
第2-3天 OSPF数据库同步、路由表计算------
OSPF网络类型、DR和BDR、OSPF数据库、4、Router LSA详解、
Network LSA详解5、区域间路由、Network Summary LSA、
外部路由、AS-external LSA、ASBR-Summary LSA
第4天 OSPF性能调------
Stub区域、Totally Stub区域、NSSA区域、Totally NSSA区域、
区域间路由汇总、外部路由汇总
第5-7天 BGP------
BGP基本概念、邻居表和路由表、IBGP全互联、IBGP通告原则、
BGP之水平分割、路由反射器、更新源检测机制
BGP路径属性、路由优选之Next_Hop、路由优选之Local_pref6、
路由优选之AS_Path、路由优选之Origin、.路由优选之MED
今日目标
01 动态路由的优势
02 OSPF概述
03 OSPF工作过程
04 OSPF单区域配置
05 邻居建立影响因素
06 OSPF多区域配置
01 动态路由的优势
企业现状
- 随着企业的发展,网络规模也不断在扩大
√ 网络设备、网段数量越来越多
√ 需要配置的路由条目越来越多

存在问题
√ 在大型网络中存在的问题
√ 静态路由,配置工作量大,效率低,出错率高
√ 静态路由不能动态感知网络变化,不会自动更新
√ 设备新增或删减,网络地址变更时,静态路由需要重新配置
√ 当网络拓扑发生变更时,维护工作量大,网络中断时间过长
解决方案
- 动态路由
√ 动态路由协议可以自动更新,快速适应网络拓扑的变化 - 动态路由协议的特点
√ 自动计算路由,无需手动配置
√ 网络拓扑变更时,自动更新路由,无需手动配置
√ 支持负载均衡,提高网络的可靠性
√ 能够选择出最优的路由
02 OSPF概述
OSPF协议概述
- OSPF协议概述
√ OSPF(Open Shortest Path First):开放式最短路径优先
√ 开放式:公有协议,所有厂商的设备都支持
√ 最短路径优先:已最短的路径,最快的方式转发数据包
√ 作用:动态感知全网状态,自动计算最优路由
√ 应用:通常应用于企业内部和数据中心内部
√ 工作在OSI模型第三层,数据封装在IP头部后面,协议号为89
√ OSPF是基于链路状态的内部网关协议
OSPF协议优势
- OSPF协议优势
√ 利用"累计COST值"计算最优路由
√ 采用组播形式收发部分协议报文,提高效率
√ 引入区域概念,支持区域划分,降低设备压力
√ 支持对等价路由进行负载分担,提高可靠性
√ 支持报文认证,提高安全性
OSPF应用场景
- OSPF应用场景:大型企业网络
- OSPF基础概念:
√ RouterID
√ Area ID
√ Cost

OSPF基础之Router Id
- OSPF使用Router ID唯一的标识一台运行OSPF的路由器
√ OSPF协议为路由设备设置的标识符
√ Router ID确定方式:可以手动指定,也可以自动选举

OSPF基础之Area Id
- Area用于标识一个OSPF的区域
√ 将路由设备划分为不同的组,每个组用区域号(ArealD)来标识

√ 网络规模大,路由表庞大,路由设备负担高,OSPF协议通过划分不同的区域来缩减路由表规模,降低路由设备负担。

OSPF区域
- OSPF骨干区域
√ 区域号为0,表示的就是"骨干区域" - OSPF非骨干区域
√ 区域号不为0,表示的就是"非骨干区域"
√非骨干区域必须和骨干区域"直接"相连,能实现"区域之间的互通" - OSPF区域的表示
√ 通过十进制表示,例如区域0、1、2、3等
√ 通过点分十进制表示,例如区域0.0.0.0、0.0.0.1、0.0.0.2等
OSPF基础之COST
- Cost:开销
√ OSPF使用Cost作为路由的度量值
√ 每一个开启OSPF功能的物理接口都有一个Cost值,默认值是1

OSPF基础之累计COST值
- OSPF路径累计开销值
√ 流量从源网络到目的网络所经过所有路由器的出接口的cost总和
√ R3的路由表中到达10.1.1.0/24的0SPF路由的C0ST是1+1+1=3

03 OSPF工作过程
OSPF工作原理
- OSPF工作原理
√ 建立OSPF邻居表
√ 同步OSPF数据库
√ 计算OSPF路由表
OSPF报文类型

建立邻居关系
- OSPF使用Hello报文发现和建立邻居关系。
- 在以太网链路上,缺省时,OSPF采用组播的形式发送Helo报文(目的地址224.0.0.5)。
- OSPF Hello报文中包含了路由器的RouterID、邻居列表等信息。

04 OSPF单区域配置
OSPF单区域实验案例
案例需求
- 需求:不同部门之间的PC互联互通
- 如果只有1个区域,则必须为骨干区域:Area0

配置思路
- 配置网络设备的接口IP地址和掩码
- 配置OSPF进程号
- 配置OSPF Router-id
- 配置OSPF 区域号
- 宣告接口的网段到OSPF
配置命令
- 配置OSPF-R1
bash
ospf 1 //指定OSPF 的"进程号:如果不指定默认是1
area 0 //进入OSPF的区域号
network 192.168.1.0 0.0.0.255 //将 192.168.1.0/24宣告进入到区域0
network 192.168.12.0 0.0.0.255 //network后面跟的必须是直连路由
- 配置OSPF-R2
bash
ospf 1
area 0
network 192.168.12.0 0.0.0.255
network 192.168.23.0 0.0.0.255
- 配置OSPF-R3
bash
ospf 1
area 0
network 192.168.23.0 0.0.0.255
network 192.168.2.0 0.0.0.255
OSPF进程号
- OSPF进程号:Process
√ 0SPF进程号可以手动指定,如果未指定,则默认值为1
√ 作用:在同一个设备上,区分不同的OSPF路由协议
√ 在同一台设备上,进程号不同的OSPF协议相互隔离
√ OSPF进程号只在本设备起作用,不在网络中传递
√ 进程号范围<1-65535>
OSPF Router lD
- RouterlD
√ OSPF协议为路由设备取的名字,用于唯一的标识一台路由设备
√ 特点:稳定,即一旦确定,就不会改变,除非重启OSPF进程
√ RouterlD 可以手动指定的,也可以自动选举,建议手动指定
√ 如果没有手动配置RouterID,则路由器使用Loopback接口中最大的IP地址作为RouterlD
√ 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为RouterID
OSPF邻居表解析
- 查看 OSPF邻居表简要信息
bash
[R1]displayospf peer brief
OSPF Process 1 with RouterlD 192.168.1.254
Peer Statistic Information
ArealD Interface NeighborlD State
0.0.0.0 G0/0/0 192.168.12.2 Full
# RouterID-表示OSPF协议为 R1 起的名字
# AreaID-表示R1当前建立的邻居关系所在的区域
# NeighborID-表示邻居路由器的OSPF RouterlD
# State-表示邻居路由器的状态,最终的完美状态是Full(完全邻接)
验证与测试
- 验证与测试 OSPF
√ display ospf peer brief ,查看OSPF 邻居表
√ display ip routing-table protocol ospf ,查看OSPF 路由条目
√ PC1>ping 192.168.2.1,通
√ PC2>ping 192.168.1.1,通
05 邻居建立影响因素
实验拓扑
- R1和R2配置OSPF,建立邻居

基础配置命令
- 配置OSPF-R1
bash
ospf l router-id 1.1.1.1
area 0
network 192.168.12.0 0.0.0.255
- 配置OSPF-R2
bash
ospf 1 router-id 2.2.2.2
area 0
network 192.168.12.0 0.0.0.255
邻居建立失败原因
- 两台路由器的Router-id相同,不能建立邻居
bash
[Rl]ospf l router-id 2.2.2.2<R1>reset ospf process # 修改R1的router-id 和R2相同//重启ospf进程
<R1>displayospf peer brief # 验证结果
#结论:两台路由器的router-id 不能相同
# 备注:验证完成,恢复配置,将R1的router-id 改回1.1.1.1
- 两台路由器的Areaid 不同,不能建立邻居
bash
[Rl]ospf 1[R1-ospf-1]area0
[R1-ospf-1-area0]undo network 192.168.12.0 0.0.0.255
[R1-ospf-1-area0]area 2 # 修改R1的区域号,和R2不同
[R1-ospf-1-area0]network 192.168.12.0 0.0.0.255
<R1>displayospf peer brief # 验证结果
# 结论:两台路由器的Areaid 必须相同
# 备注:验证完成,恢复R1的区域号
- 两台路由器的互联接口的掩码不同,不能建立邻居
bash
[R1]interface g0/0/0[R1-G0/0/0]undo ip address # 删除原有IP地址
[R1-G0/0/0]ip address 192.168.12.125 # 修改接口IP地址的掩码
<R1>displayospf peer brief # 验证结果
# 结论:两台路由器互联的接口掩码不同,不能建立邻居
# 备注:验证完成,恢复R1的接口IP地址的掩码
- 两台路由器的三层不通,不能建立邻居
bash
[R1]interface g0/0/0//删除原有IP地址
[R1-G0/0/0]undo ip address
[R1-G0/0/0]ip address 192.168.13.1 24 # 修改接口IP地址,导致三层无法互通
<R1>displayospf peer brief # 验证结果
# 结论:两台路由器互联的接口三层不通,不能建立邻居
# 备注:验证完成,恢复R1的接口IP地址
06 OSPF多区域配置
大型网络中,单区域OSPF存在的问题
- 为什么要划分多区域
- 数据库庞大
- 路由表庞大
- 设备压力大,资源消耗高
- 无法进行路由汇总

OSPF路由器类型

案例需求
- 企业核心机房,连接不同的办公楼宇,实现不同楼宇互通

配置思路
- 如图连接并配置设备接口IP地址
- 将R1和R2属于设置为区域12,R5和R6设置为区域56
- 将R2/R3/R4/R5设置为区域0,最终实现PC1和PC2的互通
配置命令
- 配置OSPF-R1
bash
ospf l router-id 1.1.1.1
area 12
network 192.168.12.0 0.0.0.255
network 192.168.1.0 0.0.0.255
quit
- 配置OSPF-R2
bash
ospf 1 router-id 2.2.2.2
area 12
network 192.168.12.0 0.0.0.255
area 0
network 192.168.23.0 0.0.0.255quit
- 配置OSPF-R3
bash
ospfl router-id 3.3.3.3
area 0
network 192.168.23.0 0.0.0.255
network 192.168.34.0 0.0.0.255
quit
- 配置OSPF-R4
bash
ospf 1 router-id 4.4.4.4
area 0
network 192.168.45.0 0.0.0.255
network 192.168.34.0 0.0.0.255
quit
- 配置OSPF-R5
bash
ospfl router-id 5.5.5.5
area 0
network 192.168.45.0 0.0.0.255
area 56
network 192.168.56.0 0.0.0.255
quit
- 配置OSPF-R6
bash
ospf 1 router-id 6.6.6.6
area 56
network 192.168.56.0 0.0.0.255
network 192.168.2.0 0.0.0.255
quit
验证与测试
- 验证与测试
bash
display ospf peer brief #查看 OSPF 邻居表
display ip routing-table protocol ospf #查看OSPF 路由表
pc1>ping 192.168.2.1 #通
display ospf brief #查看OSPF路由器的身份,如ABR
小结
- 多区域的OSPF,最关键的是ABR的配置,实现区域之间互通
- 在ABR上配置的时候,必须出现"区域0"的相关配置
- 多区域的OSPF网络,非骨干区域必须与骨干区域直接相连
- 路由器之间的直连网段,必须通过network命令宣告进OSPF
配置实例
1 OSPF单区域配置
2 邻居关系建立影响因素
3 OSPF多区域配置
1 OSPF单区域配置
1.1 问题
1)企业内网存在多个部门,分别属于不同的网段
2)使用最佳的技术方案,实现灵活的网络设计,支持网络规模的扩展
3)如图,配置设备 IP 地址
4)确保 PC-1 和 PC-2 可以互通
1.2 方案
搭建实验环境,如图所示。

1.3 步骤
实现此案例需要按照如下步骤进行。
1)配置终端设备 - PC1
地址:192.168.1.1
掩码:255.255.255.0
网关:192.168.1.254
2)配置终端设备 - PC2
地址:192.168.2.1
掩码:255.255.255.0
网关:192.168.2.254
3)配置网络设备 - R1
bash
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet 0/0/1] ip address 192.168.1.254 255.255.255.0
[R1-GigabitEthernet 0/0/1] quit
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet 0/0/0] ip address 192.168.12.1 255.255.255.0
[R1-GigabitEthernet 0/0/0] quit
4)配置网络设备 - R2
bash
[R2]interface gi0/0/0
[R2-GigabitEthernet 0/0/0] ip address 192.168.12.2 255.255.255.0
[R2-GigabitEthernet 0/0/0] quit
[R2]interface gi0/0/1
[R2-GigabitEthernet 0/0/1] ip address 192.168.23.2 255.255.255.0
[R2-GigabitEthernet 0/0/1] quit
5)配置网络设备 - R3
bash
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet 0/0/0] ip address 192.168.23.3 255.255.255.0
[R3-GigabitEthernet 0/0/0] quit
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet 0/0/1] ip address 192.168.2.254 255.255.255.0
[R3-GigabitEthernet 0/0/1] quit
6)配置 OSPF 区域 0
bash
[R1]ospf 1 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.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]quit
[R2]ospf 2 router-id 2.2.2.2
[R2-ospf-2]area 0
[R2-ospf-2-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-2-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R2-ospf-2-area-0.0.0.0]quit
[R3]ospf 3 router-id 3.3.3.3
[R3-ospf-3]area 0
[R3-ospf-3-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R3-ospf-3-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-3-area-0.0.0.0]quit
2 邻居关系建立影响因素
2.1 问题
1)两台路由器的router-id 相同,不能建立邻居
2)两台路由器互连接口所属的Area id 不同,不能建立邻居
3)两台路由器互联接口的IP地址的掩码不同, 不能建立邻居
4)两台路由器三层不通,不能建立邻居
2.2 方案
搭建实验环境,如图所示。

2.3 步骤
实现此案例需要按照如下步骤进行。
1)配置OSPF - R1
bash
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.12.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]ospf 1 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]quit
2)配置OSPF -- R2
bash
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.12.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]ospf 1 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]quit
3)两台路由器的router-id 相同,不能建立邻居
bash
[R1]ospf 1 router-id 2.2.2.2 //修改R1的router-id 和R2相同
<R1>reset ospf process //重启ospf 进程
<R1>display ospf peer brief //验证结果
<R1>display ospf error //验证结果
恢复默认:还原,恢复默认
[R1]ospf 1 router-id 1.1.1.1 //恢复默认
<R1>reset ospf process //重启ospf 进程
<R1>display ospf peer brief //验证结果
4)两台路由器互连接口所属的Area id 不同,不能建立邻居
bash
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area 0]undo network 192.168.12.0 0.0.0.255
[R1-ospf-1-area 0]area 2 //修改R1的区域号,和R2不同
[R1-ospf-1-area 0]network 192.168.12.0 0.0.0.255
<R1>display ospf peer brief //验证结果
<R1>display ospf error //验证结果
恢复默认:还原,恢复默认
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 2
[R1-ospf-1-area 0]undo network 192.168.12.0 0.0.0.255
[R1-ospf-1-area 0]quit
[R1-ospf-1]undo area 2
[R1-ospf-1] area 0
[R1-ospf-1-area 0]network 192.168.12.0 0.0.0.255
<R1>display ospf peer brief //验证结果
5)两台路由器互联接口的IP地址的掩码不同, 不能建立邻居
bash
[R1]interface g0/0/0
[R1-G0/0/0]undo ip address //删除原有IP地址
[R1-G0/0/0]ip address 192.168.12.1 25 //修改接口IP地址的掩码
<R1>display ospf peer brief //验证结果
<R1>display ospf error //验证结果
恢复默认:还原,恢复默认
[R1]interface g0/0/0
[R1-G0/0/0]ip address 192.168.12.1 24
<R1>display ospf peer brief //验证结果
6)两台路由器三层不通,不能建立邻居
bash
[R1]interface g0/0/0
[R1-G0/0/0]undo ip address //删除原有IP地址
[R1-G0/0/0]ip address 192.168.13.1 24 //修改接口IP地址,导致三层无法互通
<R1>display ospf peer brief //验证结果
<R1>display ospf error //验证结果
恢复默认:还原,恢复默认
[R1]interface g0/0/0
[R1-G0/0/0]ip address 192.168.12.1 24
<R1>display ospf peer brief
3 OSPF多区域配置
3.1 问题
1)企业核心机房,连接不同楼宇,实现不同楼宇互通
2)企业核心机房设置为 OSPF 骨干区域
3)其他办公楼宇为 非骨干区域,通过路由器与核心机房互联互通
3.2 方案
搭建实验环境,如图所示。

3# 3.3 步骤
实现此案例需要按照如下步骤进行。
1)配置OSPF - R1
bash
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.12.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2]ip add 192.168.1.254 24
[R1-GigabitEthernet0/0/2]quit
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 12
[R1-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.12]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.12]quit
2)配置OSPF -- R2
bash
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.12.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.23.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 12
[R2-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.12]quit
[R2-ospf-1]area 0
[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]quit
3)配置OSPF -- R3
bash
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.23.3 24
[R3-GigabitEthernet0/0/1]quit
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.34.3 24
[R3-GigabitEthernet0/0/0]quit
[R3]ospf 1 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 192.168.34.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
4)配置OSPF -- R4
bash
[R4]interface GigabitEthernet 0/0/1
[R4-GigabitEthernet0/0/1]ip add 192.168.34.4 24
[R4-GigabitEthernet0/0/1]quit
[R4]interface GigabitEthernet 0/0/0
[R4-GigabitEthernet0/0/0]ip add 192.168.45.4 24
[R4-GigabitEthernet0/0/0]quit
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 192.168.45.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
5)配置OSPF -- R5
bash
[R5]interface GigabitEthernet 0/0/1
[R5-GigabitEthernet0/0/1]ip add 192.168.45.5 24
[R5-GigabitEthernet0/0/1]quit
[R5]interface GigabitEthernet 0/0/0
[R5-GigabitEthernet0/0/0]ip add 192.168.56.5 24
[R5-GigabitEthernet0/0/0]quit
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 56
[R5-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255
[R5-ospf-1-area-0.0.0.56]quit
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]network 192.168.45.0 0.0.0.255
[R5-ospf-1-area-0.0.0.0]quit
6)配置OSPF -- R6
bash
[R6]interface GigabitEthernet 0/0/1
[R6-GigabitEthernet0/0/1]ip add 192.168.56.6 24
[R6-GigabitEthernet0/0/1]quit
[R6]interface GigabitEthernet 0/0/2
[R6-GigabitEthernet0/0/2]ip add 192.168.2.254 24
[R6-GigabitEthernet0/0/2]quit
[R6]ospf 1 router-id 6.6.6.6
[R6-ospf-1]area 56
[R6-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255
[R6-ospf-1-area-0.0.0.56]network 192.168.2.0 0.0.0.255
[R6-ospf-1-area-0.0.0.56]quit
7)确保PC-1和 PC-2互通
bash
PC-1>ping 192.168.2.1
PC-2>ping 192.168.1.1
课堂笔记
路由分类
- 直连路由: 路由器到达接口所在网段的路由(自动计算)
- 非直连路由
静态路由: 由管理员手工配置的路由
动态路由 - IGP:内部网关路由协议-在同一个AS内部使用(在企业内部或者数据中心内部使用)
- DV:距离矢量路由协议(逐渐弃用)
- RIP(v1/v2)
- IGRP-思科私有协议
- EIGRP-思科私有协议
- LS:链路状态路由协议
- OSPF:开放式最短路径优先(企业用:功能多,可以精细化控制)
- ISIS:中间系统到中间系统(数据中心用,转发能力强,大流量转发)
- EGP:外部网关路由协议:在不同的AS之间使用(AS:自治系统)
- BGP:边界网关协议
静态路由的不足
1)当企业网络规模过大,设备过多,网段过多,配置静态路由工作量大,效率低,容易出错
2)当企业网络拓扑发生变更时, 设备增加或减少时,IP地址发生变化时,有可能会需要删除原有的静态路由
重新配置静态路由,导致后期运维成本高,公司断网时间长
一、为什么会有OSPF
1、OSPF可以管理大型复杂政企网络,数据中心网络
2、OSPF快速检查网络变化,迅速更新路由,保证公司网络不中断,提高网络的可靠性
3、OSPF引入区域,可以支持网络扩展,降低设备压力,提高数据转发效率
4、OSPF 支持认证,能够增强网络的安全性
二、OSPF应用场景
主要应用在中大型政企园区网络或云数据中心
三、OSPF概述
- OSPF是什么
- 开放式最短路径优先协议,一种最受欢迎的动态路由协议
- 版本:OSPFv2(IPv4) 和OSPFv3(IPv6)
- OSPF位于OSI参考模型的第三层,数据封装在IP报头的后面
- 协议号是89
- 应用场景:主要应用在中大型政企园区网络或云数据中心
- 作用:自动计算最优路由,实现网络互联互通
四、报文类型
-Hello :用于发现、建立、维护和断开邻居关系(交朋友)
-DBD :数据库描述报文: 用于描述数据库摘要信息(LSA头部信息)(发菜单)
-LSR :链路状态请求报文: 请求自己数据库中没有的LSA信息(我要)
-LSU :链路状态更新报文: 根据对方的请求信息,更新LSA给对方 (给你)
-LSACK :链路状态确认报文:收到对方的更新LSA信息后,进行确认(说谢谢)
五、OSPF区域
1、区域划分:
OSPF适用于大型网络,采用分层设计,分为骨干区域和非骨干区域。
2、OSPF 骨干区域
区域号为0,表示的就是"骨干区域"
3、OSPF 非骨干区域
区域号不为0,表示的就是"非骨干区域"
4、非骨干区域必须和骨干区域"直接"相连,能实现"区域之间的互通"
5、OSPF 区域的表示
通过十进制表示,例如区域 0、1、2、3等
通过点分十进制表示,例如区域 0.0.0.0 、0.0.0.1、0.0.0.2等
6、为什么要引入区域
对网络进行分区管理,降低设备负载压力,提高数据转发效率
六、OSPF工作过程
1) 建立邻居:邻居表
2) 同步数据库 :数据库
3) 计算路由 :路由表
七、OSPF的配置
bash
[R1]ospf 1 router-id 1.1.1.1 :创建ospf 进程号,配置router-id
[R1-ospf-1]area 0 : 配置ospf区域
[R1-ospf-1-area-0]network 192.168.1.0 255.255.255.0 :在区域中宣告接口的直连网段
[R1-ospf-1-area-0]network 192.168.12.0 0.0.0.255 :在区域中宣告接口的直连网段
八、OSPF邻居表解析
bash
<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 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------
1、Process : 进程号
ospf 1 :指定ospf进程号1
1)作用:在同一个设备上,区分不同的ospf路由协议
2)通过不同的进程号所学习到的路由信息是不会自动相互传递的,
从而实现各个ospf 协议之间的隔离
3)ospf 进程号只在本地路由器起作用,不随报文在网络中传递,所以不同的路由器的进程号,可以相同,也可以不同
4)进程号范围 <1-65535>
2、Router ID
router-id 1.1.1.1 //指定router-id 为1.1.1.1
1)ospf协议给路由器起的一个名字,格式类似于IP地址(点分十进制)但是不是IP地址
2)在ospf 网络中,router-id 是唯一的标识一台路由器
3)router-id 的生产方式
选举规则:-手动指定:最优
-如果没有手动指定router-id ,会进行自动选举
&:自动选举
-首先选举本设备上的loopback接口的IP地址,选择IP地址最大的
--如果没有配置loopback 接口选举物理接口IP地址最大的
备注:自动选举的前提是,所有的接口同时运行ospf ,如果没有同时运行,那个接口先启用ospf,
就选择那个接口的地址号,做router-id
&:手动配置
huawei\] ospf 1 router-id 1.1.1.1 //手动指定的命令 备注:当路由器已选router-id 后,手修改router-id 并不会生效 为什么? ospf需要稳定,ospf稳定,网络才会稳定,一旦选举router-id,就不会被替代 -如果已经有了router-id ,后来又手动指定的router-id 想让新的router-id生效,怎么办? 重启ospf 进程: reset ospf process //在用户视图下执行命令 ### 3、Area Id :区域号 area 0.0.0.0 1)OSPF为了更好的管理一个庞大的网络,对网络进行了分层的设计,引入了区域的概念 :骨干层和非骨干层,骨干层用骨干区域表示, 非骨干层用非骨干区域表示 :所有的非骨干区域必须和骨干区域直接相连 2)OSPF 引入区域的作用是: 降低网络设备的负载压力,提高数据转发的效率 3)区域号的表示方式有两种 \&: 十进制数: 0-4294967295 \&:点分十进制: 0.0.0.0 - 255.255.255.255 4)区域分为两类: \&: 骨干区域: 0 \&: 非骨干区域 : 不为 0 ### 4、Interface :使用那个接口与对端建立的邻居 ### 5、Neighbor id :邻居的Router-id ### 6、State :邻居之间的状态 full :完美的邻居--也叫邻接 备注: two-way : 双向通信: 邻居状态 full : 数据库同步完成 : 完全邻接状态(最好的邻居的状态) ## 九、Hello报文解析 ### 1、hello报文解析 1) 谁来发这个报文: 所有运行ospf的路由器都会发hello报文 2) 这个报文发给谁: 发给组播IP:224.0.0.5 报文源IP:路由器接口的IP地址, 报文目的IP:224.0.0.5 3) hello报文的作用: -第一个hello报文: 发现邻居:hello报文中只有本机的router-id ,没有邻居的router-id -第二个hello报文: 建立邻居:hello报文中有本机的router-id,也有邻居的router-id -后续的hello报文: 维护邻居: 周期性发送,在广播型网络中,默认10秒发1次 -如果40秒内没有收到邻居发来的hello报文,则断开邻居 4) hello报文为什么使用组播方式发送: -减少报文数量 -减少带宽占用 -降低设备压力 -加快邻居建立速度 ### 2、hello报文抓包  #### 报文字段解析: ##### OSPF Header 头部报文解析: ###### 【 OSPF Version 】 这个字段,指的是OSPF的版本 版本2------针对的是IPv4的网络 版本3------针对的是IPv6的网络 ###### 【 Message Type 】 消息类型 OSPF中,一共有五种报文:Hello、DD、LSR、LSU、LSAck 分别对应了1、2、3、4、5 ###### 【 Packet Length 】 报文的长度,不可修改 ###### 【 Source OSPF Router 】 发送这个Hello报文的路由器的Router ID 而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的 所以,不同路由器的Router ID不能相同 ###### 【 Area ID 】 发送这个Hello报文的接口,所在的区域 两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中 ###### 【 Packet Checksum 】 报文的校验和,用来校验报文是否完整 ###### 【 Auth Type/Data 】 这里指的是OSPF的认证 认证的类型 认证的数据 ##### OSPF Hello Packet 报文解析: ###### 【 Network Mask 】 子网掩码 默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同 ###### 【 Hello Interval 】 Hello时间间隔/Hello计时器/Hello时间 就是发送这个Hello报文的路由器,多长时间发一个Hello包 默认情况下:Hello时间为10秒 两台路由器,想要建立OSPF邻居,它们的Hello时间必须相同 ###### 【 Option 】 特殊标记位 不同的区域类型的标记位也不同 想要建立OSPF邻居,Option位必须相同 ###### 【 Router Priority 】 DR优先级,用于DR选举 如果两台想要建立OSPF邻居的路由器,在互联接口上都配置了自己的DR优先级为0,那么,两台路由器都不会参加DR选举 而在需要DR的网络中,选举不出DR,邻居就无法继续建立 所以,两台设备DR优先级为0,在需要DR的网络中,邻居状态会卡在2-way ###### 【 Router Dead Interval 】 Dead时间/死亡时间 默认情况下:是Hello时间的4倍=40秒 Dead时间会随着Hello时间的改变而改变,但还是4倍关系 所以,我们如果更改Dead时间,一定要注意是否受Hello时间影响, 即:我们需要单独更改Dead时间(手动配置的Dead时间优先于默认情况------4倍Hello时间) ###### 【Designated router 】 : DR :指定路由器 ###### 【Backup Designated router】 :BDR :备份指定路由器 ###### 【Active Neighbor 】: 活跃的邻居,我认可的邻居 ## 十、邻居建立失败的原因(一同两不三不通) 1、两台设备三层不通,OSPF邻居无法建立 2、两台设备互联接口IP地址的掩码不同,(广播型网络)OSPF邻居无法建立 【特殊情况:P2P(点到点网络)两端设备掩码不同,OSPF邻居可以建立】 3、两台设备router-id 相同,OSPF邻居无法建立 4、两台设备互联的接口所在的区域不同,OSPF邻居无法建立 ## 十一、OSPF路由器类型 区域内路由器:路由器所有的接口都在同一个区域内 骨干路由器: 路由器只要有一个接口属于骨干区域 区域边界路由器(ABR):连接骨干区域和非骨干区域的路由器 自治系统边界路由器(ASBR):引入外部路由的路由器