OSPF路由协议详解
- 一、OSPF路由协议详概述
- AS自治系统分类
- 二、OSPF工作过程及原理
- 1、OSPF工作过程
- 2、OSPF工作原理
- 五种报文
- 三个阶段
- 三张表
- 三、OSPF区域
- OSPF区域类型
- 四、Router ID
- Router ID选取规则
- 五、DR和BDR
- 1、DR和BDR的选举方法
- 2、DR和BDR的选举过程
- OSPF的组播地址
- 六、OSPF度量值
- 七、OSPF的数据包类型
- 八、OSPF邻接关系的建立状态
- 九、网络划分类型
- 十、OSPF的特点
- 十一、OSPF与RIP的对比
- 十二、OSPF配置命令
- 十三、OSPF配置实例
- 需求
- R1
- R2
- R3
- R4
- PC
- 结果
一、OSPF路由协议详概述
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
AS自治系统分类
AS是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
- [1]按自治系统分为
- IGP:
内部网关路由协议,运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由。
主要: RIP1/RIP2、 OSPF、ISIS、EIGRP (思科私有协议) - EGP:
外部网关路由协议,运行在AS与AS之间的路由协议,他解决AS之间选路问题。
通常: BGP - [2]按协议类型分类
- 距离矢量路由协议:
RIP1/2、 BGP (路径矢量协议)、EIGRP (高级距离矢量协议)路由器对全网拓扑不完全了解。是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的。 - 链路状态路由协议:
OSPF、 ISIS路由器对全网拓扑完全了解。是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree (即到达目的地的各个方案),选出最佳路径,放入路由表中。
二、OSPF工作过程及原理
1、OSPF工作过程
1、建立邻居表
2、形成链路状态数据库
3、形成路由表
建立邻接关系–学习链路状态信息—>链路状态数据库–Dijkstra算法—>最短路径树—>路由表
简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,加入OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。
2、OSPF工作原理
OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、三张表。
五种报文
Hello报文:
建立并维护邻居关系。
DBD报文:
发送链路状态头部信息。
LSR报文:
把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
LSU报文:
将LSR请求的头部信息对应的完整信息发给邻居。
LSACK:
收到LSU报文后确认该报文。
三个阶段
邻居发现:
通过发送Hello报文形成邻居关系。
路由通告:
邻居间发送链路状态信息形成邻接关系。
路由计算:
根据最短路径算法算出路由表。
三张表
邻居表:
主要记录形成邻居关系路由器。
链路状态数据库:
记录链路状态信息。
OSPF路由表:
通过链路状态数据库得出。
三、OSPF区域
为了适应大型的网络,OSPF在AS上划分多个区域(100-200个路由器),每个OSPF路由器只维护所在区域的完整链路状态信息。
OSPF中划分区域的目的就是在于控制链路状态信息LSA 泛洪的范围、减小链路状态数据库LSDB的大小、改善网络的可扩展性、达到快速地收敛。
区域ID的表示可以表示成一个十进制数字,也可以用IP表示。
OSPF区域类型
- 1、骨干区域area 0 :
骨干区域负责区域间路由信息传播。作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。 - 2、非骨干区域:
传播信息要经过骨干区域转发;
标准区域 :
除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
末梢区域 :
即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
完全末梢区域:
该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。
四、Router ID
OSPF区域内唯一标识路由器的IP地址。
Router ID选取规则
(1)选举路由器Loopback接口上数值最高的IP地址
(2) 如果没有Loopback接口,在物理端口中选取IP地址最高的
(3)也可使用routher-id任命指定的Router ID
五、DR和BDR
为减小多路访问网络中OSPF流量,OSPF会选择一个指定路由器(DR)和一个备份指定路由器(BDR)。当多路访问网络发生变化时,DR负责更新其他所有OSPF路由器。BDR会监控DR 的状态,并在当前DR发生故障时接替其角色。
BDR和DR/DRother建立完全邻接关系(Full),而其他非指定路由器DRother之间建立部分连接关系,也称为双向邻居关系(Two-Way)。
1、DR和BDR的选举方法
- 自动选举
网段上Router ID最大的路由器将被选举为DR,第二大的为BDR。 - 手工选举
优先级范围0~255,数值越大,优先级越高,默认为1;
若优先级相同,则比较Router ID;
如果路由器的优先级被设置为0,它将不参与DR与BDR的选举。
2、DR和BDR的选举过程
路由器优先级可以影响一个选举过程,但是不能强制更换已经形成的DR和BDR。
OSPF的组播地址
OSPF协议号89
组播地址224.0.0. 5和224.0.0.6
DR和BDR的选举过程如下:
1、DRothers向DR/ BDR发送DBD、LSR或者LSU时目标地址是224.0.0.6 (AllDRouter) ;或者理解为: DR/BDR侦听224.0.0.6
2、DR/BDR向DRothers发送更新的DBD、LSR或者LSU时目标地址是224.0.0.5 (AllSPFRouter) ;或者理解为: DRothers侦听224.0.0.5
六、OSPF度量值
OSPF的度量值为Cost,cost值越小越好。
Cost值有计算方式,为Cost=10^8/BW
接口类型 | cost代价 |
Fast Ethernet | 1 |
Ethernet | 10 |
56K | 1785 |
七、OSPF的数据包类型
OSPF数据包是承载在IP数据包内,使用协议号是89。
OSPF的包类型
OSPF的包类型 | 描述 |
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
数据链路状态包(LSR) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
数据链路更新包(LSU) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含多个LSA |
链路状态确认包(LSAck) | 确认已经收到DBD/LSU,每个LSA需要被分别确认 |
八、OSPF邻接关系的建立状态
OSPF启动的第一个阶段是使用Heiio报文建立双向通信的过程;
OSPF启动的第二个阶段是建立完全邻接关系。
路由器从启动OSPF进程,到根据链路状态数据库计算出路由表的具体过程如下:
九、网络划分类型
OSPF网络类型划分为四种:
网络类型 | 作用 |
点到点网络 | 自动发现邻居,不需要DR/BDR,组播224.0.0.5 |
广播多路访问网络 | 自动发现邻居,选举DR/BDR,组播224.0.0.5、224.0.0.6 |
非广播多路访问网络 | 手工指定邻居,选举DR/BDR,单播 |
点到多点网络 | 自动发现邻居,不需要DR/BDR,组播224.0.0.5 |
十、OSPF的特点
可适应大规模网络
路有变化收敛速度快
无路由环
支持变长子网掩码VLSM
支持区域划分
支持以组播地址发送协议报
十一、OSPF与RIP的对比
十二、OSPF配置命令
OSPF配置命令
[R1]int g0/0/0
##配置接口ip地址
[R1-GigabitEthernet0/0/0]ip add 11.0.0.2 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]un sh
[R1-GigabitEthernet0/0/1]int 1oo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]ospf 1 router-id 1.1.1.1
###创建OSPF进程,配置路由ID
[R1-ospf-1]area 0
###进入区域0,区域ID可以用数字表示,也可以用IP表示,若区域0则是骨干区域
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
###宣告0SPF区域内的直连网段,使用反掩码
[R1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.255.255.255
<Huawei>reset ospf process
###重置OSPF进程
十三、OSPF配置实例
需求
实现互通
R1
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]un in en
Info: Information center is disabled.
[Huawei]sys R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.100.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]q
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
[R1]ospf 1
[R1-ospf-1]are 0
[R1-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]net 12.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]dis th
[V200R003C00]
#
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 12.0.0.0 0.0.0.255
network 192.168.100.0 0.0.0.255
#
return
[R1-ospf-1-area-0.0.0.0]q
R2
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]un in en
Info: Information center is disabled.
[Huawei]sys R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R2-GigabitEthernet0/0/1]int loop 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]q
[R2]ospf 1
[R2-ospf-1]are 0
[R2-ospf-1-area-0.0.0.0]net 12.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]q
[R2-ospf-1]
R3
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]un in en
Info: Information center is disabled.
[Huawei]sys R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 23.0.0.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 34.0.0.3 24
[R3-GigabitEthernet0/0/1]int loop 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]q
[R3]ospf
[R3-ospf-1]are 0
[R3-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 34.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]q
[R3-ospf-1]
R4
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]un in en
Info: Information center is disabled.
[Huawei]sys R4
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 34.0.0.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 192.168.200.1 24
[R4-GigabitEthernet0/0/1]int loop 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]q
[R4]ospf
[R4-ospf-1]are 0
[R4-ospf-1-area-0.0.0.0]net 34.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]net 192.168.200.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]q
PC