烦恼一般都是想太多了。

0%

OSPF协议及其配置实现

简介

OSPF(Open Shortest Path First)是开放最短路径有限协议,V2针对IPV4网络,V3针对IPV6网络。是IETF组织开发的一个基于链路状态的内部网关协议。
每台OSPF路由器根据自己周围的网络拓扑结构生成链路状态通告LSA(Link Stat Advertisement),并通过更新报文将LSA发送到网络中的其他OSPF路由器。

过程

每台OSPF路由器都会手机其他路由器发来的LSA,所有的LSA放在一起便组成了链路状态数据库LSDB(Link State Database)。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构描述。
OPSF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。
每台路由器根据有向图,使用SPF算法算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。
随着网络扩大,LSDB也会越来越大,所以通过划分区域来解决LSDB过大的问题

区域

OSPF区域
根据区域特性不同,大体可分为以下几种区域:
Backbone 区域——Backbone 区域,也被称为区域 0,其任务是汇总每个区域的网络拓扑到其他所有的区域。所有区域间通信必须通过骨干区域,非骨干区域之间不能直接交换数据包。因此,在规划 OSPF 网络时必须注意使所有非骨干区域与骨干区域物理或逻辑相 连。在实际应用中无法满足物理相连的条件时,可以通过配置虚连接实现逻辑相连。
Stub 区域——Stub 区域也被称为末梢区域,是不允许 AS 外部 LSA 在其内部泛洪 的区域,只可以携带区域内部路由和区域间路由。
Totally Stub 区域——Totally Stub 区域也被称为完全末梢区域,在 Stub 区域基础上 进一步减少了区域内 LSA 数量,不仅不允许携带 AS 外部路由,也不允许携带区域 间路由。
NSSA 区域——NSSA(Not-So-Stubby-Area)区域也被称为非完全末梢区域,除通 过 ASBR 引入自治系统外部路由外,保留了其余 Stub 区域的特征。

路由器类型

OSPF-路由器类型
根据在AS中的不同位置,可分为以下几类:
区域内路由器(Internal Routers) 该类路由器的所有接口都属于同一个 OSPF区域。
区域边界路由器 ABR(Area Border Routers)该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR 用 来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻 辑上的连接。
骨干路由器(Backbone Routers) 该类路由器至少有一个接口属于骨干区域。因此,所有的 ABR 和位于 Area0 的内部路由器都是骨干路由器。
自治系统边界路由器 ASBR(AS Boundary Routers)与其他 AS 交换路由信息的路由器称为 ASBR。ASBR 并不一定位于 AS 的边界, 它可能是区域内路由器,也可能是 ABR。只要一台 OSPF 路由器引入了外部路由的 信息,它就成为 ASBR。

OSPF报文头部

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version #   |     Type      |         Packet length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Area ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |             AuType            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

通过Type字段来定义五种报文:

  • Hello 报文——Hello 报文用于发现和维护邻居和邻接关系,在广播型网络和 NBMA 网络也用来选举 DR 和 BDR。
  • DD 报文——DD(Database Description)报文通过携带 LSA 头部信息发送链路状态 数据库摘要。
  • LSR 报文——LSR(Link State Request)报文用于请求通过接受 DD 报文发现的本 路由器上没有的链路状态信息。
  • LSU 报文——LSU(Link State Update)报文通过发送详细的 LSA 来同步链路状态 数据库。
  • LSAck 报文——LSAck(Link State Ack)报文用于发送确认报文来确保路由信息的 交换过程是可靠的。

    最终工作原理

    通过在路由器内启动OSPF进程,相互定义区域,那么只有相同区域内的报文会互相发送:
  1. 先配置router Id
  2. 进入ospf视图
  3. 配置area
  4. 配置网络
    router id 1.1.1.1  
    ospf
    area 0
    network 192.168.0.1 0.0.0.255 #反掩码
    quit

更多命令可以通过

dis ospf ?

进行查看