OSPF--HCIE

OSPF

基本概念

  • OSPF基于IP协议,协议号为89
  • 开放式最短路径优先OSPF,一个基于链路状态的内部网关协议
  • OSPF作为基于链路状态的协议,具有收敛快,路由无环,可扩展性有点,广泛使用
  • OSPFv2基于IPV4,扩展性是基于LSA的扩展。
  • 基于IP层协议,可靠性得不到保障,所以需要协议自身实现确认机制,认证机制
  • 基于IP协议,随着IP普及度扩大,OSPF也成为主流的IGP协议,一般用于企业网,企业网工程师熟练高。

特点

  • 使用范围广:支持多种网络类型,规模大。
  • 快速收敛:在网络中的拓扑发生变化,立即发送跟新报文,使这一变化在自治系统中同步,
  • 无自环:由于OSPF根据收集到的链路状态,用最短路径树计算路由,从算法本身保证不会生成自环路由。
  • 区域划分:允许自治系统的网络被划分成区域来管理。路由器链路状态数据库减少降低了内存消耗和CPU的负担,区域间传送路由信息的减少降低了网络带宽的占用。
  • 等价路由:支持到同一目的地址的多条等价路由。
  • 路由分级:使用4类不同的路由,按优先顺序来说分别是:区域内路由,区域间路由,区域外部路由
  • 支持验证:支持基于接口的报文认证,以保证报文交互和路由计算的安全性。
  • 组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。

报文类型

  • 每个OSPF报文都由OSPF Header加上OSPF payload组成,OSP支持组播发送报文。其中224.0.0.5是为OSPF设备预留的IP组播地址,224.0.0.6是为OSPF的DR/BDR设备预留的IP组播地址。

  • OSPF头部字段

    1. 版本
    2. 类型
    3. 长度
    4. 发送者路由器的router ID
    5. 发送报文出接口所在区域
    6. 校验和
    7. 认证类型
    8. 认证数据
  • 五个OSPF报文作用。

    1. Hello周期性发送,用来发现和维持OSPF邻居关系的建立,内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。
    2. DD(数据库描述)报文:描述了本地LSDB中每一条LSA的摘要信息,用于两台路由器进行数据同步。
    3. LSR(链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交互DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文像对方去请求所需的LSA,内容包括所需要的LSA摘要。
    4. LSU(链路状态更新)报文:向对方发送所需要的LSA,
    5. LSA(链路状态确定)报文:用来对收到的LSA进行确认,内容需要确定的LSA的Header(一个报文可对多个LSA做确定)
  • 注:报文中携带的报文及作用了解。

路由类型

  • 区域内,区域间,区域外;路由划分更加精细,更好对路由做控制。

  • 优先级从高到底,排列:

    1. 区域内路由
    2. 区域间路由
    3. 外部路由type1:外部开销加上内部开销之和
    4. 外部路由type2:自己算外部开销(缺省情况下,华为实现引入路由为type2)

LSA的类型

LSA类型 LSA作用
router-LSA(type1) 每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播
network-LSA(type2) 有DR产生,描述的本网段的链路状态,在所属的区域内传播(描述伪节点信息)
network-summary(type3) 由ABR产生,描述区域内某个网段的路由,并通告给除ASBR所在区域的其他区域(描述区域间的路由信息)
ASBR-summary(type4) 由ABR产生,描述到ASBR的路由,通告给除了ASBR所在的其他区域(描述到ASBR的位置信息)
as-external-LSA(type5) 由ASBR产生,描述去往外部的路由,通告到除特殊区域的所有区域
NSSA LSA(type7) 由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
Opaque LSA(Type9/Type10/Type11) Opaque LSA提供用于OSPF的扩展的通用机制。其中:Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种。Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种。Type11 LSA在自治域内传播,目前还没有实际应用的例子。
  • LSA新旧比较:首先比较序列号(有32位,从0X80000001到0X7FFFFFFF),如果序列号越高,则越新。
  • 如果序列号相同,则比较校验和,检验和越高越新。
  • 如果校验和相同,则比较存活时间,如果这些LSA中只有一条存活时间为36000s,则认为该LSA是最新的。
    1. 若LSA的Age为Maxage(3600s)则该LSA被认定更新
    2. 若LSA间的Age差额超过15min,则Age时间小的被认为是更新的
    3. 若LSA age差额在15min内,则二者视为相同“新“的LSA,只保留先收到的一份。

网络类型

网络类型 含义
广播类型(Broadcast) 当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中:通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址。以单播形式发送DD报文和LSR报文。
NBMA类型(Non-Broadcast Multi-Access) 当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
点到多点P2MP类型(Point-to-Multipoint) 没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中:以组播形式(224.0.0.5)发送Hello报文。以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
点到点P2P类型(point-to-point) 当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

区域划分

  • 骨干区域:被配置为区域0的区域
  • 普通区域:没有被配置为特殊区域的非骨干区域
  • 特殊区域:特殊配置为此区域
  • 区域划分规则
    1. 非骨干区域必须和骨干区域之间相连
    2. 骨干区域要保证连续性
    3. 区域边界在路由器上,不同接口划分不同区域

路由器类型

  • IR:OSPF域内路由器
  • BR:OSPF骨干区域内的骨干路由器
  • ABR:区域边界路由器,是骨干区域和非骨干区域之间的路由器
  • ASBR:AS边界路由器,是OSPF域和其他网络边界的路由器

邻居关系

  • 影响建立OSPF邻居关系建立的因素
  1. Router-ID:

    • 直连的路由器router-ID一致:不能建立邻居关系,因为exstart状态时会通过router—ID选举主从关系,如果邻居主从关系不能确定则不能达到完全邻居关系。
    • 两台不直连同区域的路由器router-ID一致:邻居关系能正常建立,但是LSDB中只有一份一类LSA,导致SPF树没办法计算,选择先学到的一类LSA。
    • 如果不同区域的路由器router-ID一致:邻居关系可以正常建立区域内和区域间的也可以正常计算,但是如果其中有一台路由器是ASBR的话就会出现问题,由于LSA5类LSA在传递过程中ADV-router不改变,如果某一区域内的路由器发现本区域中有路由器的router-ID和ASBR的router-ID冲突的话,则会将这条收到的5类LSA的老化时间改为3600并进行泛洪,希望其他路由器收到过后会删除这条LSA,但当产生这条5类LSA的ASBR收到后也会删除这条5类LSA,也会继续产生LSA5,就会使整个网络中不断产生和删除LSA5,造成网络震荡。
  2. 区域ID一致

  3. 广播,NBMA的网络接口掩码

  4. 认证类型和认证密钥要一致

  5. dead时间要一致

  6. Hello时间要一致

  7. Option字段的E和N比特要一致

    • STUB区域E=0,N=0
    • NSSA区域E=0,N=1
    • 普通区域E=1,N=0
  8. 接口IP MTU要一致

    • MTU字段在exstart状态进行比较,MTU在DD报文中,如果一致性不通过,就会停在exstart状态,如果不进行MTU一致性,报文会重复分片,降低转发效率。华为设备默认将DD报文中的MTU值设置为0,并不做MTU比较。
  9. 帧中继网络中要有brodcast关键字

邻居状态机

  • 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。
  • 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。

OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。

  • Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
  • Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
  • Init:收到Hello报文后状态为Init。
  • 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
  • Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
  • Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
  • Loading:DD报文交换完成即Exchange done,此时状态为Loading。
  • Full:LSR重传列表为空,此时状态为Full。

DR/BDR选举

  • 为了减少邻居关系的数量,在广播型和NBMA型网络需要选举DR/BDR,优选优先级高的,如果优先级一样则比较router-ID大的。优先级缺省为1,取值范围为0~255,若优先级为0则不参与选举。
  • DR/BDR不具备抢占性。如果有优先级更高的路由接入也不能立即成为DR或BDR。
  • DR-other之间路由器建立2-way的邻居关系,DR/BDR和DR-other之间建立FULL的邻居关系。

本章涉及的面试题目

OSPF邻居关系建立

OSPF的区域类型和LSA的作用

影响OSPF邻居关系建立的因素,以及LSA新旧的比较

posted @ 2020-07-05 23:05  皓先生  阅读(694)  评论(0编辑  收藏  举报