Open Shortest Path First (OSPF)

动态路由协议介绍

动态路由协议:向路由表中添加远程网络

探索网络

更新和维护路由表

自主网络探索:

通过共享路由表信息路由器能探索到新的网络

动态路由协议的分类

Cisco CCNA——Open Shortest Path First (OSPF)_OSPF

内部网关协议(IGP) 适用于园区架构,范围小的

外部网关协议(BGP) 适用于城域网、骨干网,范围大的

距离矢量协议考虑距离和方向,已经很少遇见

链路状态协议不仅考虑距离和方向,还考虑沿途带宽和负载等,根据链路质量来选择路线

本篇仅讨论OSPF协议

距离矢量

距离矢量的意义:

使用距离矢量路由协议的路由器并不了解到达目的网络的整条路经。该路由器只知道:

自身与目的网络之间的距离

应该往哪个方向或使用哪个接口转发数据包

Cisco CCNA——Open Shortest Path First (OSPF)_链路_02


链路状态

链路状态(Link-State)

链路状态路由协议向全网扩散链路状态信息

链路状态路由协议当网络结构发生变化时立即发送更新信息

链路状态路由协议只发送需要更新的信息

链路状态协议适用于以下情形:

网络进行了分层设计,大型网络通常如此

管理员对于网络中采用的链路状态路由协议非常熟悉

网络对收敛速度的要求极高

Cisco CCNA——Open Shortest Path First (OSPF)_OSPF_03


有类与无类路由协议

有类路由协议在路由信息更新过程中不发送子网掩码信息

eg:RIPv1、IGRP(EIGRP的前身)

Cisco CCNA——Open Shortest Path First (OSPF)_链路_04

在无类路由协议的路由信息更新中,同时包括网络地址和子网掩码

eg:RIPv2、OSPF、IS-IS、BGP

Cisco CCNA——Open Shortest Path First (OSPF)_链路_05

当今网络中基本上使用的都是无类的网络环境、无类的网络协议,一般不需要考虑分类方式


度量值

度量:

度量是指路由协议用来分配到达远程网络的路由开销的值

不同的路由协议的度量值的单位不同,IP路由协议中使用的度量如下:

带宽——EIGRP

开销——OSPF&IS-IS

延迟——EIGRP

跳数——RIP

负载——EIGRP

可靠性——EIGRP

Cisco CCNA——Open Shortest Path First (OSPF)_路由协议_06

路由表只存放最优的路由信息

等价负载时会出现多条等价的路由信息

路由的学习(路由通告)和数据的传递相反


管理距离(AD)的用途

度量的用途:用于确定到达目的的最佳路径

管理距离的用途:用于指定路由协议的优先级

协议不同,无法沟通

EIGRP的度量单位metirc

RIP的度量单位是跳数

Cisco CCNA——Open Shortest Path First (OSPF)_链路_07


管理性距离比较

Cisco CCNA——Open Shortest Path First (OSPF)_链路_08

show ip protocols可以看到该动态路由协议的管理距离

直连网络永远是最优先的


距离矢量-网络发现

路由器初始启动—最初的网络发现—直连网络写入路由表

Cisco CCNA——Open Shortest Path First (OSPF)_链路_09

初次路由信息交换

Cisco CCNA——Open Shortest Path First (OSPF)_路由协议_10

路由信息交换

Cisco CCNA——Open Shortest Path First (OSPF)_链路_11


收敛

路由器收敛完成

当所有路由表包含相同网络信息

路由器继续交换路由信息

当无新信息时收敛结束

网络在达到收敛之前无法完全正常工作

Cisco CCNA——Open Shortest Path First (OSPF)_路由协议_12

动态路由方便,但是消耗的资源比静态路由多,如:CPU、内存、带宽、背板占用率。在当今,这种资源的消耗可以忽略不计。


OSPF简介

Open Shortest Path First (OSPF),开放最短路径优先

是一种链路状态路由协议,无路由循环(全局拓扑),RFC2328

“开放”意味着非私有的

管理型距离:110

OSPF采用SPF算法计算达到目的地的最短路径

Cisco CCNA——Open Shortest Path First (OSPF)_路由协议_13

OSPF维护三张表:邻居表、拓扑表(链路状态数据库)、路由表


OSPF的三张表

邻居表(neighbor table)

OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。

拓扑表(topology table)

OSPF用LSA(Link State Advertisement 链路状态通告)来描述网络拓扑信息,然后OSPF路由器用拓扑数据库来存储网络的这些LSA。

OSPF路由表(routing table)

对链路状态数据库进行SPF(Dijikstra)计算,而得出的OSPF路由表。


OSPF的基本运行步骤

1.建立邻接关系(Establish router adjacebcies)

2.必要的时候进行DR的选举(Elect the DR/BDR)

3.发现路由(Discover routes)

4.选择合适的路由器(Select appropriate routes)

5.维护路由信息(Maintain routing information)


建立邻接关系-Hello包

Cisco CCNA——Open Shortest Path First (OSPF)_链路_14

Hello包用来发现OSPF邻居并建立相邻关系,通过组播地址:224.0.0.5发送给ALLOSPFRouters

通告两台路由器建立邻接关系所必须统一的参数

在以太网和帧中继网络等多路访问网络中选举指定路由器(DR)和备用指定路由器(BDR)


LSA的泛洪

DR、BDR:接口概念,不是设备概念,即一个设备的不同接口可能是DR也可能是BDR

为减小多路访问网络中的OSPF流量,OSPF会选举一个指定路由器(DR)和一个备用指定路由器(BDR)。

选举规则:最高接口优先级被选作DR,如果优先级相等(默认为1),具有最高的路由器ID(Router-ID)的路由器被选举成DR,并且DR具有非抢占性

指定路由器(DR):DR负责使用该变化信息更新其他所有OSPF路由器(DRother)

备用指定路由器(BDR):BDR会监控DR的状态,并在当前DR发生故障时接替其角色

Cisco CCNA——Open Shortest Path First (OSPF)_链路_15

RouterID

用于标识OSPF路由器的ID,全网唯一性。可手动配置,也可动态选举(有Loopback接口时,选择最高的Loopback IP地址;否则,选择最高活跃物理接口的IP地址)

Cisco CCNA——Open Shortest Path First (OSPF)_链路_16


OSPF metric

每个路由器都把自己当作根,并且给予累积成本(Cost值)来计算到达目的地的最短路径

Cost=参考带宽(10^8)/接口带宽(b/s)

Cisco CCNA——Open Shortest Path First (OSPF)_路由协议_17


OSPF区域

在区域边界可以做路由汇总,减小了路由表

减少了LSA泛洪的范围,有效地把拓扑变化控制在区域内,提高了网络的稳定性

拓扑的变化影响可以只限制涉及本区域

多区域提高了网络的扩展性,有利于组建大规模的网络

Cisco CCNA——Open Shortest Path First (OSPF)_链路_18


OSPF的配置

基本配置

开启OSPF进程(进程编号本地有效)

Router(config)#router ospf process-id

宣告特定的网络到OSPF区域

Router(config-router)#network address wildcard-maskarea area-id

配置示例

Router(config)#router ospf 1

Router(config-router)#network 192.168.1.0 0.0.0.255 area 0

同一台路由器上可以有多个路由协议,具体选路根据管理距离来确定具体的协议