OSPF路由协议

OSPF的基本概念和工作过程

  • OSPF路由协议概述

OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。

  • AS
    自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
  • 分类
  1. 按协议类型分类
  • 距离矢量路由协议(RIP,IGRP,EIGRP等)

路由器对全网拓扑不安全了解,是“传说的路由”,依据从源网络到目标网络所经过的路由器的个数选择路由。

  • 链路状态路由协议(OSPF,IS-IS等)

路由器对拓扑完全了解,,是“传信的路由”,综合考虑从源网络到目标网络的各条路径的情况选择路由。例如:A将消息放入信里发给B,B不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起发给C,这样,信息五任何改变和丢失,最后所有的路由都收到相同的一堆信,这一堆信就是LSDB(链路状态数据库)。然后每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。

  1. 按自制系统分类
  • 内部网关路由协议(RIP,OSPF,IS-IS等)

内部网关路由协议是运行在AS内部的路由协议,主要解决AS内部的选录问题,发现、计算路由。

  • 外部网关路由协议(BGP)

外部网关理由协议是运行在AS与AS之间的路由协议,解决AS之间的选路问题。

  • OSPF的工作过程
  1. 三张表

OSPF会形成三张表分别为:邻居表,链路状态数据库,路由表

2.形成路由

建立邻接关系–学习链路状态信息—>链路状态数据库–最短路径算法(SPF/Dijkstra)—>最短路径树—>路由表

  • OSPF区域
  1. 概念
    为了适应大型网络,OSPF在AS内划分了多个区域。每个OSPF路由器只维护所在区域的完整链路状态信息。
  2. 区域ID
    区域ID的表示可以表示成一个十进制数字,也可以用IP表示
  3. 区域分类
  • 骨干区域area 0:

作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。

  • 非骨干区域:
  • 标准区域:除了骨干区域外的默认的区域类型,在该类型中,各类型的LSA均匀许发布
  • 末梢区域:即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
  • 完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。

OSPFd邻接关系

  • Router ID
    Routh ID是OSPF区域内唯一表示路由器的IP地址。
  • OSPF邻接关系的建立
    当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器。
    DR就像是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router),BDR在DR不可用时,代替DR的工作。
  • DR和BDR的选举
  • 自动选举
    网段上Routh ID最大的为DR,第二大的为BDR
  • 手动选举
    手动配置优先级,范围为0~255数值越大,优先级越高,默认为1。
    若优先级相同比较routh ID。
    如果路由器优先级被设置为0,他将不参与DR和BDR1的选举。

路由器优先级可以影响选举过程,但是不能强制更换已经形成的DR和BDR。所以实际当中一般先开机的路由器会成为DR和BDR

  • OSPF组播地址
  • 224.0.0.5
    选举时,发送第一个hello包和DRothers监控时所用的场所
  • 224.0.0.6
    时DR和BDR监控时所用的场所

OSPF度量值

OSPF的度量值为cost

cost=100M/BW

接口类型

cost

Fast Ethernet

1

Ethernet

10

56k

1785

OSPF的数据包类型

OSPF数据包承载在IP数据包内,使用协议号89

数据包类型

OSPF数据包类型

描述

hello包

用于发现和维持邻居关系,选举DR和BDR

数据库描述包(DBD)

用于向邻居发送摘要信息以同步链路状态数据库

数据链路状态包(LSR)

在路由器收到包含新信息的DBD后发送,用于请求更详细的信息

数据链路更新包(LSU)

收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含多个LSA

链路状态确认包(LSACK)

确认已经收到DBD/LSU,每个LSA需要被分别确认

OSPF状态

路由器从启动OSPF进程,到根据链路状态数据库计算出路由表,同样需要经历一系列的启动过程,总共有7种可能的启动过程,但并不是一定会经历这7个过程,具体过程如下:
Down → Init → Two-way → Exstart → Exchange → Loading → Full

Down
邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文或OSPF没有成功启动时。
Init
本状态表示已经收到了邻居的Hello报文,但是该报文中列出的邻居中没有包含我的Router ID(对方没有收到我的Hello报文)。
2-way
本状态表示双方互相收到了对端发送的Hello报文,建立了邻居关系,在广播和NBMA类型的网络中,两个接口状态是DRother的路由器之间将停留在此状态。
EXStart
在此状态下,路由器和他的邻居间通过互相交换DD报文(该报文并不包含实际内容,只包含一些标志位)来决定发送时的主/从关系,建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。
EXchange
路由器将本地的LSDB用DD报文来描述,并发送给邻居。
Louding
路由器发送LSR报文向邻居请求对法的DD报文。
Full
在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了,即本路由器和邻居建立了邻接adjacency状态。

即:初始化 收到第一个Hello包 双向建立会话 建立主从关系 交换摘要信息 加载详细信息 完全连接

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的应用环境

OSPF的特点

  • 可适应大规模网络
  • 路由变化收敛速度快
  • 无路由环
  • 支持变长子掩网码VLSM
  • 支持区域划分
  • 支持以组播地址发送协议报文

OSPF与RIP的对比

ospf协议功能 ospf协议内容_路由协议

OSPF单域的配置

  • OSPF的基本配置命令
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 11.0.0.2 24
[Huawei-GigabitEthernet0/0/0]undo shutdown 
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[Huawei-GigabitEthernet0/0/1]undo shutdown
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loopback 0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]q
[Huawei]ospf 1 router-id 1.1.1.1    #创建OSPF进程,配置路由ID
[Huawei-ospf-1]area 0          #进入区域0,区域ID可以用数字表示,也可以用IP表示,若区域0则是骨干区域
[Huawei-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0  #宣告OSPF区域内的直连网段,使用反掩码
[Huawei-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255