OSPF基础概述

一、OSPF协议简介

OSPF(Open Shortest Path First,开放最短路径优先)是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。工作在IP层,协议号89。


二、RIP的缺陷

1. 最大跳数限制了网络规模(15跳)

2. 以跳数为度量值无法准确判断最优路径

3. 路由更新发送完整路由表消耗网络带宽

4. 收敛速度慢

5. 协议会产生路由自环


三、OSPF初始化流程

1. 建立邻居和邻接关系

1.1 发送hello报文发现和建立邻居关系,组播地址224.0.0.5

说明:必须满足:接口UP;双方接口IP地址在同一网段;双方接口在同一区域等条件。


1.2 选举DR/BDR,建立邻接关系

备注:DR(Designated Router,指定路由器)

BDR(Backup Designated Router,备份指定路由器)


选举原因:使路由信息交换更加高速有序

选举范围:每条广播链路(每一个网段)上都需要选举出一个DR和一个BDR

选举规则:(1)优先级数字大的优先,默认优先级都是1;(2)Router-id大的优先

Router-id:定义,Rid,标识路由器的身份;产生方法:(1)手动配置一个IPv4地址格式作为Rid;(2)自动选举,1.在所有环回口中选举IP地址最大的作为Rid;2.在所有物理接口中选举IP地址最大的作为Rid

建议手动配置一个本地环回口的IP地址作为Rid


关系状态:DRother与DR建立邻接关系;DRother与BDR建立邻接关系;DR与BDR建立邻接关系;两个DRother之间保持邻居关系

说明:DRother:既不是DR路由器也不是BDR路由器,剩下的同网段其它路由器


2. 邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步

备注:邻居关系的路由器不参与链路状态信息交换


相关概念:

链路状态通告:LSA,用来描述路由器的接口、路由条目的相关信息

链路状态数据库:LSDB,存储本地所有LSA


工作流程:

(1)向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息;

(2)收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本机所需的LSA的完整信息

(3)收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方

(4)收到LSU后,向对方回复LSAck报文,进行确认

说明:可以看出OSPF路由更新不会发送完整路由表,因此消耗网络带宽较低。


3. 每台路由器根据本机链路状态数据库,计算到达每个目的网段的最优路由,写入路由表

说明:可以看出OSPF路由更新不会发送完整路由表,因此消耗网络带宽较低


四、OSPF报文类型

(1)Hello报文,周期性发送,用来发现和维持OSPF邻居关系;进行DR、BDR的选举

(2)DD报文(Database Description,数据库描述),用于描述本地LSDB中所有LSA的摘要,用于两台路由器进行数据库同步

(3)LSR报文(Link State Request,链路状态请求),向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA

(4)LSU报文(Link State Update,链路状态更新),向对方发送其所需要的LSA

(5)LSAck报文(Link State Acknowledgment,链路状态确认),用来对收到的LSA进行确认


五、OSPF分区域管理

1. 分区域的原因

加快收敛速度;把网络故障隔离在区域内部

说明:分区后,邻居、邻接关系的建立在各自区域内进行,所以可以加快收敛速度。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化(本区域的OSPF链路故障不会通告到其它区域)


2. 路由器角色

IR(内部路由器),所有接口都处于同一个区域

ABR(区域边界路由器),连接不同区域的路由器

ASBR(自治系统边界路由器),连接外部自治系统的路由器


OSPF分区图示:

OSPF基础概述

3. 区域类型

骨干区域,只能有一个骨干区域,一般是区域0;骨干区域必须是连续的

非骨干区域,非骨干区域必须连接到骨干区域

说明:这样规定的原因主要是为了防环


五、OSPF常用命令

(1)[h3c]ospf 'process id' router-id 'rid'

开启OSPF进程,指定Router-id,进入OSPF协议视图


(2)[h3c-ospf-1]area 'area id'

进入区域视图


(3)[h3c-ospf-1-area 0.0.0.0]network 'ip address' 'wild-mask'

宣告网段

说明:wild-mask(掩码通配符),0对应的部分需要匹配一致,1对应的部分不检查,与子网掩码没有半毛钱关系


(4)[h3c-ospf-1]slient-interface 'interface id'

配置静默接口,OSPF不会在向静默接口上收发协议报文(与RIP静默接口目的一样)


(5)[h3c]display ospf peer

查看OSPF邻居关系,FULL:表示邻接关系;2-Way:表示邻居关系


(6)[h3c]display ospf routing

查看OSPF路由


六、OSPF配置实例

1. 配置拓扑

OSPF基础概述


2. 配置需求

(1)按照图示配置 IP 地址;

(2)按照图示分区域配置 OSPF ,实现全网互通;

(3)为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域;


3. 配置步骤

(1)按照拓扑所示,配置IP地址

[R1]int LoopBack 0
[R1-LoopBack0]ip a 1.1.1.1 32
[R1-LoopBack0]int g 0/0
[R1-GigabitEthernet0/0]ip a 20.1.1.1 24
[R1-GigabitEthernet0/0]int g 0/2
[R1-GigabitEthernet0/2]ip a 10.1.1.2 24
[R1-GigabitEthernet0/2]quit
[R1]
[R2]int LoopBack 0
[R2-LoopBack0]ip a 2.2.2.2 32
[R2-LoopBack0]int g 0/0
[R2-GigabitEthernet0/0]ip a 20.1.1.2 24
[R2-GigabitEthernet0/0]int g 0/1
[R2-GigabitEthernet0/1]ip a 30.1.1.1 24
[R2-GigabitEthernet0/1]quit
[R2]
[R3]interface  LoopBack 0
[R3-LoopBack0]ip a 3.3.3.3 32
[R3-LoopBack0]int g 0/1
[R3-GigabitEthernet0/1]ip a 30.1.1.2 24
[R3-GigabitEthernet0/1]int g 0/2
[R3-GigabitEthernet0/2]ip a 40.1.1.1 24
[R3-GigabitEthernet0/2]quit
[R3]
[R4]int LoopBack 0
[R4-LoopBack0]ip a 4.4.4.4 32
[R4-LoopBack0]int g 0/2
[R4-GigabitEthernet0/2]ip a 10.1.1.1 24
[R4-GigabitEthernet0/2]quit
[R4]
[R5]int LoopBack 0
[R5-LoopBack0]ip a 5.5.5.5 32
[R5-LoopBack0]int g 0/2
[R5-GigabitEthernet0/2]ip a 40.1.1.2 24
[R5-GigabitEthernet0/2]quit
[R5]

(2)按照图示分区域配置 OSPF ,实现全网互通

说明:1. 创建ospf进程可以手动指定router-id,也可以不指定自动生成

2. 环回口可以宣告进ospf,也可以不宣告,不影响业务互通;宣告时可以宣告进骨干区域,也可以宣告非骨干区域。有选择困难的建议宣告到骨干区域

[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 20.1.1.1 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]dis this
# 
area 0.0.0.0  
network 1.1.1.1 0.0.0.0  
network 20.1.1.0 0.0.0.255
#
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]network 10.1.1.2 0.0.0.255
[R1-ospf-1-area-0.0.0.1]dis this
# 
area 0.0.0.1  
network 10.1.1.0 0.0.0.255
#
[R1-ospf-1-area-0.0.0.1]quit
[R1-ospf-1]quit
[R1]
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 20.1.1.2 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 30.1.1.1 0.0.0.255
[R2-ospf-1-area-0.0.0.0]dis this
# 
area 0.0.0.0  
network 2.2.2.2 0.0.0.0  
network 20.1.1.0 0.0.0.255  
network 30.1.1.0 0.0.0.255
#
return
R2-ospf-1-area-0.0.0.0]
quit
[R2-ospf-1]quit
[R2]
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 30.1.1.2 0.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]area 2
[R3-ospf-1-area-0.0.0.2]network 40.1.1.1 0.0.0.255
[R3-ospf-1-area-0.0.0.2]quit
[R3-ospf-1]quit
[R3]
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 1
[R4-ospf-1-area-0.0.0.1]network  4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.1]network  10.1.1.1 0.0.0.255
[R4-ospf-1-area-0.0.0.1]dis this
# 
area 0.0.0.1  network 4.4.4.4 0.0.0.0  
network 10.1.1.0 0.0.0.255
#
return
[R4-ospf-1-area-0.0.0.1]quit
[R4-ospf-1]quit
[R4]
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network  5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.2]network  40.1.1.2 0.0.0.255
[R5-ospf-1]quit
[R5]

(3)检查是否全网互通

说明:检查 OSPF 是否全网互通,一个是检查邻居关系表,看邻居关系是否正常;另一个是检查路由表,看是否学习到全网路由

这里只展示 R1 的检查结果


检查邻居关系

OSPF基础概述

OSPF基础概述

说明:可以看到,R1 已经学习到了全网所有网段的路由信息,配置完成。




附:

 关注我,加微信,获取此次配置工程、更多配置案例,也可以承接远程调试各厂商交换机、路由器、防火墙等私活,欢迎各位老板加微信私聊。
OSPF基础概述


上一篇:前端之移动端库和框架bootstrap


下一篇:app自动化测试介绍