前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、相关知识
开放最短路径优先(Open Shortest Path First,OSPF)基于链路状态算法,是一个内部网关协议。OSPF 可以将一个自治系统内部划分为多个区域,利用层次路由可应用于大规模网络;
1、OSPF 分组类型及首部格式
OSPF分组直接使用IP数据报进行传输,协议号为 89;OSPF 共有以下 5 种分组:
- Hello分组(Hello Packet):周期性发送,用于发现和维持 OSPF 邻居关系。两个不同非主干区域的路由器之间不能建立 OSPF 邻居关系
- DD分组(Database Description Packet):数据库描述分组,描述本地链路状态数据库的摘要信息,用于两台路由器进行数据库同步;
- LSR分组(Link State Request Packet):链路状态请求分组,向对方请求所需要的链路状态通告数据
- LSU分组(Link State Update Packet):链路状态更新分组,应答对方请求的链路状态通告数据或者泛洪自己更新的链路状态通告数据
- LSAck分组(Link State Acknowledgment Packet):链路状态确认报文,对收到的LSU分组进行确认
Hello分组和LSAck分组不需要应答
OSPF 的 5 种分组具有相同的首部格式;长度为 24 字节;
其各字段的意义如下:
- 版本(Version):8bit,OSPFv2 值为 2,OSPFv3 值为 3
- 类型(Type):8bit,OSPF分组类型,其中,1 表示 hello、2 表示 DD、3 表示 LSR、4 、表示 LSU、5 表示 LSAck
- 分组长度(Packet Length):16bit,OSPF 分组总长度,包括分组首部在内,单位为字节
- 路由器标识符(Router ID):32bit,发送该分组的路由器标识符
- 区域标识符(Area ID):32bit,发送该分组的路由器接口所属区域。
- 检验和(Checksum):16bit,包含除鉴别字段外的整个分组的校验和。
- 鉴别类型(Autype):16bit,0 表示不验证,1 表示简单认证,2 表示 MD5 认证。
- 鉴别信息(Authentication):64bit,其数值根据鉴别类型而定
二、相关CLI命令
配置 OSPF 首先要进入系统视图
[Huawei]system-view
一台路由器如果要运行OSPF,必须存在 Router ID;路由器的 Router ID 是一个 32bit无符号整数,是一台路由器在自治系统中的唯一标识;默认情况下,系统自动在接口的IP选一个最大值作为此;为保证 OSPF 运行的稳定性,在进行网络规划时应该确定Router ID的划分并手动配置
[Huawei]router id 1.1.1.1
启动 OSPF 进程并进入 OSPF 视图,若不指定进程 ID,则使用默认值 1
[Huawei]ospf 1
创建并进入区域视图;并非所有的区域都是平等的关系;其中区域号是 0 的区域称为骨干区域,骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。单区域只有一个主干区域;
[Huawei-ospf-1]area 0
指定运行 OSPF 的接口和接口所属区域;OSPF 使用通配符掩码(也称反掩码)
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
当“network”命令配置的通配符掩码全为 0 时,如果接口的IP地址与“network”命令配置的IP地址相同,则此接口也会运行OSPF;例如,指定 IP 地址为 192.168.3.1 的接口运行 OSPF 的命令如下:
[Huawei-ospf-1-area-0.0.0.0]network 192.168.3.1 0.0.0.0
区域边界路由器可以创建多个区域,不同接口属于不同的区域:
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 192.168.4.0 0.0.0.255
可用以下命令查看 OSPF 进程及区域细节的数据;
<Huawei>display ospf brief
查看路由表中的 OSPF 路由信息;
<Huawei>display ip routing-table protocol ospf
查看 OSPF 各区域邻居路由器的信息;
<Huawei>display ospf peer
三、单区域OSPF
1、建立拓扑图
2、配置与分析
实现路由器之间互通:
R1:
sys
un in e
int e0/0/0
ip add 12.1.1.1 24
q
ospf 1 router-id 1.1.1.1
area 0
network 12.1.1.0 0.0.0.255
R2:
sys
un in e
int e0/0/0
ip add 12.1.1.2 24
int e0/0/1
ip add 23.1.1.1 24
q
ospf 1 router-id 2.2.2.2 启动OSPF进程,数字1是进程的ID,并设置了OSPF路由器的ID2.2.2.2
area 0 指定了OSPF的区域
network 12.1.1.0 0.0.0.255 将网络12.1.1.0/24加入到OSPF进程中并属于区域0
network 23.1.1.0 0.0.0.255 将网络23.1.1.0/24加入到OSPF进程中并属于区域0
R3:
sys
un in e
int e0/0/0
ip add 23.1.1.2 24
int e0/0/1
ip add 34.1.1.1 24
q
ospf 1 router-id 3.3.3.3
area 0
network 23.1.1.0 0.0.0.255
network 34.1.1.0 0.0.0.255
R4:
sys
un in e
int e0/0/0
ip add 34.1.1.2 24
q
ospf 1 router-id 4.4.4.4
area 0
network 34.1.1.0 0.0.0.255
四、多区域OSFP
1、建立拓扑图
2、配置与分析
R1:
sys
un in e
int e0/0/0
ip add 12.1.1.1 24
q
ospf
area 1
network 12.1.1.0 0.0.0.255
R2:
sys
un in e
int e0/0/0
ip add 12.1.1.2 24
int e0/0/1
ip add 23.1.1.1 24
q
ospf
area 1
network 12.1.1.0 0.0.0.255
area 0
network 23.1.1.0 0.0.0.255
R3:
sys
un in e
int e0/0/0
ip add 23.1.1.2 24
int e0/0/1
ip add 34.1.1.1 24
q
ospf
area 0
network 23.1.1.0 0.0.0.255
area 2
network 34.1.1.0 0.0.0.255
R4:
sys
un in e
int e0/0/0
ip add 34.1.1.2 24
q
ospf
area 2
network 34.1.1.0 0.0.0.255
五、总结
- OSPF 是典型的链路状态路由协议,路由器之间交换的并不是路由表,而是链路状态,OSPF 通过获取网络中所有的链路状态信息,计算出到达每个目标精确的网络路径。
-
单区域 OSPF 适用于小型的网络拓扑,当网络拓扑规模变大时,为了改善网络的可拓展性,加速收敛,采用多区域 OSPF 更合适。
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!