OSPF路由协议整理

一、动态路由概念及特性

    动态路由(算法):各台路由之间运行某种动态路由协议,之后通过收发数包的形式获取未知网段的路径。

动态路由分类

按范围划分为:
        IGP(内部网关协议)
        EGP(边界网关协议)

按算法划分:
        链路状态型
        距离矢量型(基于谣言的协议)

动态路由基于AS的分类(AS: Autonomous System, 自治系统):
        0-65535,其中0-64511公有AS号
        64512-65535私有AS号。

IGP协议的分类:
        DV:距离矢量. RIP EIGRP
        LS:链路状态. OSPF ISIS

动态路由协议的追求:
    1、收敛速度快
    2、选择路径佳
    3、占用资源少

二、开放式最短路径优先协议(OSPF)

        开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。OSPF基于链路状态的内部网关路由协议,是一个无类别链路状态型路由协议。

1、特点:

    公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
    触发更新、周期更新(30min);
    需要结构化的部署:区域划分 地址规划

  优点:
        1、支持无类域间路由(CIDR)
        2、无路由自环收敛速度快
        3、使用IP组播收发协议数据
        4、支持多条等值路由
        5、支持协议报文的认证

2、OSPF协议的数据包

  1. 数据包结构
    在这里插入图片描述

  2. 数据包种类
    在这里插入图片描述
        Hello:用于邻居、邻接的发现、建立与保活。 hello time 默认10s或30s
        DBD:数据库描述包
        LSR:链路状态请求
        LSU:链路状态更新
        LSack:链路状态确认

3、OSPF状态机

在这里插入图片描述
    Down:一旦本地发出hello包进入下一个状态
    Init:初始化 收到的hello包若存在本地的RID进入下一个状态
    2way:双向通讯 邻居关系建立的标志
    条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
    Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
    Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
    Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
    Full转发 邻接关系建立的标志

    LSA:链路状态通告,在不同的网络条件下将产生不同类别的LSA信息来代表拓扑或者路由条目;
    LSDB:链路状态数据库 装载和存储所有各种类别的LSA;

四、OSPF的工作过程

    OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.0.0.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
    之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的router-id,那么A/B建立为邻居关系;生成邻居表;
邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;
    条件匹配成功可以开始建立邻接关系:
    邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;
    之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;
    该过程完成后,生成数据库表
    再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;

    结构突变:
        1、新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
        2、断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
        3、无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;

五、OSPF的基础配置

        [r1] ospf 1 router-id 1.1.1.1 启动时,需要定义进程号;进程号仅具有本地唯一性; 建议同时配置全网唯一的router-id; 生成顺序—手工 本地环回接口中最大ip地址数值 本地物理接口中最大数值的ip地址
        宣告:ospf协议在宣告的同时需要进行区域划分

    区域划分规则:
        1、星型拓扑结构,区域0为中心骨干区域,其他大于0为非骨干站点区域;
        2、必须拥有ABR–区域边界路由器
            [r2-ospf-1]area 0 先进入区域,之后再该区域内宣告属于该区域的接口,宣告时必须携带反掩码
            [r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
            [r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
            [r2-ospf-1-area-0.0.0.0]q
            [r2-ospf-1]area 1
            [r2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0

        启动配置完成后,邻居间收发hello包,建立邻居关系;生成邻居表:

            [r2]display ospf peer
            [r2]display ospf peer brief
        邻居、邻接关系的发现、建立、保活均依赖hello包进行;
        Hello包中邻居间必须完全一致的参数:任意参数不同,均导致邻居关系无法建立
            1、 子网掩码(华为)发送hello包接口的源ip地址其掩码
            2、 Hello dead time – OSPF接口网络类型相关
            3、 认证字段 – 更新安全
            4、 区域ID – 要求区域间存在ABR
            5、末梢区域标记 --特殊区域

        邻居关系建立后,邻居间进行条件匹配,匹配成功者间可以建立为邻接关系;邻接关系间将使用DBD包进行主从关系选举,之后由主优先使用DBD进行数据库目录信息的共享,从而最终基于LSR/LSU/LSAck来获取未知的LSA信息;当收集到全网的LSA信息后,装载于本地的LSDB(链路状态数据库)–数据库表:
        [R2]display ospf lsdb
        [R1]reset ospf process
        Warning: The OSPF process will be reset. Continue? [Y/N]:y

关于OSPF,DBD包的几个知识点:
        1、DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
        默认华为未开启MTU检测
        [r1]interface GigabitEthernet 0/0/1
        [r1-GigabitEthernet0/0/1]ospf mtu-enable
        2、隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD
        3、 OSPF标记位 I M MS I为1本地发出的第一个DBD包,M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从;
        数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;
        1、 字母
        Cisco
        O - OSPF, IA - OSPF inter area
         N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
         E1 - OSPF external type 1, E2 - OSPF external type 2
        O 同一区域内,本地通过拓扑计算所得
        O IA 域间路由,ABR通过其他区域的拓扑计算所得路由,然后共享到另一个区域;本地区域另一区域
        O E1/2 域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议
        ON1/2 NSSA域外路由 其他协议或其他进程产生后,        通过ASBR重发布进入到OSPF协议,同时学习到这条路由的设备处于ospf的一种NSSA的特殊区域中

        display ospf routing 华为查看

        2、 管理距离(华为为优先级)
        Cisco设备定义管理距离为110 在华为设备上优先级为10

        3、 度量(cost)
        开销值 参考带宽/接口带宽 华为设备,环回接口不计算为一段路径;默认的参考带宽为1000M;
优选cost值之和最小路径;

六、OSPF协议邻居成为邻接关系的条件

        在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
        在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;—在每一个MA网络中均需要进行一次选举;
        选举规则:
        1、 优先级 数值大优,默认为1; 若为0为放弃选举;
        2、 优先级一致,比较参选接口所有设备的router-id,数值大优;
        [r1-GigabitEthernet0/0/1]ospf dr-priority 2
        修改参选接口的优先级
        切记:DR选举非抢占 ,故在修改优先级后,必须重启参选设备ospf进程来重新选举

七、OSPF的不规则区域

        一台ABR设备若没有连接到骨干区域0,那么默认不得区域间路由的共享
        1、 远离了骨干的非骨干区域
        2、 不连续骨干

        解决方案:
            1)在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
            缺点:
            1、周期更新、保活,触发更新对中间穿越区域产生资源占用
            2、选路不佳 – 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;

            2) 虚链路 — 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
            使得非法ABR可以进行区域间路由的共享;
            因为并没有增添新的路径,故不存在选路不佳的问题;
            [r2-ospf-1]area 1 两台ABR共同所在的区域
            [r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
            Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;—不可靠
            华为在虚链路上依然保持周期的保活、更新 — 对中间区域的资源占用

            3) 多进程双向重发布(推荐)
            多进程— 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
            双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
            [r2]ospf 1
            [r2-ospf-1]import-route ospf 2
            [r2-ospf-1]q
            [r2]ospf 2
            [r2-ospf-2]import-route ospf 1

八、OSPF的LSA优化-减少LSA更新量

      1、 汇总 – 减少骨干区域的LSA数量 – 前提要求网络存在合理的地址规划
      2、 特殊区域 – 减少各个非骨干区域的LSA数量

      【1】汇总
          1) 域间路由汇总—ABR将本地直连的A区域1/2类LSA计算所得路由,再通过3类LSA共享到其它本地所直连的B区域时;
          [r1]ospf 1
          [r1-ospf-1]area 1 明细路由所在区域
          [r1-ospf-1-area-0.0.0.1]abr-summary 3.3.2.0 255.255.254.0

          2) 域外路由汇总—在ASBR上操作,将5类/7类LSA向OSPF发布时进行汇总;
          [r2]ospf 1
          [r2-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
          注:切记华为设备默认设备不会在进行汇总配置的设备上,自动生成空接口防环路由;

      【2】特殊区域 不能是骨干区域,不能存在虚链路
          「1」 同时不存在ASBR
              末梢区域—该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由;
              [r1]ospf 1
              [r1-ospf-1]area 1
              [r1-ospf-1-area-0.0.0.1]stub
              注:该区域内所有设备均需要定义,否则无法建立邻居关系;
              2)完全末梢区域,在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由;
              先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可;
              [r1]ospf 1
              [r1-ospf-1]area 1
              [r1-ospf-1-area-0.0.0.1]stub no-summary

          「2」 同时存在ASBR
              1) NSSA 非完全末梢区域—拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类;
              在cisco设备中为了避免环路的出现,OSPF协议在NSSA区域配置完成后,不会自动产生缺省路由;而是由管理员在缺省网络无环的前提下,手工添加;
              在华为的设备中让由该区域连接骨干0的ABR自动下发一下7类缺省;
              [r1]ospf 1
              [r1-ospf-1]area 1
              [r1-ospf-1-area-0.0.0.1]nssa
              注:该区域内所有设备均需要定义,否则无法建立邻居关系;
              2) 完全NSSA – 完全的非完全末梢区域;在普通NSSA的基础上,近一步拒绝3类的LSA,由ABR产生一条3类缺省
先将该区域配置为普通的NSSA,然后仅在ABR上定义完全NSSA即可
              [r1]ospf 1
              [r1-ospf-1]area 1
              [r1-ospf-1-area-0.0.0.1]nssa no-summary
              特别注意事项:
                  由于特殊区域将自动产生缺省路由,指向骨干;故ISP所连接的位置很关键,否则将可能与特殊区域产生的缺省路由互为环路;要求ISP所在位置的OSPF区域不要做任何特殊区域配置;

猜你喜欢

转载自blog.csdn.net/Han_V_Qin/article/details/106651928
今日推荐