4.HICP-OSPF笔记

223 阅读33分钟

1.HICA-OSPF:

  • OSPF:开放式最短路径优先协议,无类别(带掩码)链路状态igp协议,周期更新(30min)+触发更新

  • 跨四层封装,协议号89

  • 版本:v1(实验室阶段夭折),v2(IPv4),v3(IPv6)

  • 链路状态协议的更新量随着网络范围的扩展指数性的上升,因此OSFP协议为了在中大型网络中工作,需要结构化的部署区域之内传递拓扑,区域传递路由

  • 为什么需要结构化部署:

    因为OSPF是无类别链路状态IGP协议,而链路状态最大的特点就是共享拓扑,而共享拓扑;而共享拓扑的话就会产生大量的更新这样不利于网络的流通,因此需要合理的流畅,因此需要合理的IP规划,进行结构化部署。区域之内是LSA的拓扑数据交换:区域之内传递拓扑,区域传递路由
    
  • 区域划分的目的或链路状态协议的距离矢量特征:区域之内传递拓扑,区域传递路由

  • 更新方式:组播更新(224.0.0.5(all),224.0.0.6(DR/BDR))

  • 算法:SPF(最短路径优先算法)

  • OSPF所有报文头部:

    字段名说明
    版本(8bit)OSPF协议的版本,v1:1,v2:2,v3:3
    类型(8bit)OSPF数据包的类型,Hello:1,DBD:2,LSR:3,LSU:4,LSACK:5
    报文长度(bit)OSPF中整个报文的长度
    路由器ID(32bit)携带的发出数据包设备的RID
    区域ID(32bit)发出数据包的接口所在区域的ID
    效验和(16bit)确保数据的完整性
    验证类型(16bit)做数据认证,分为三种 NULL(不认证):0,simple明文认证:1,MD5:2
    认证数据(32bit)做数据认证

image.png

  • OSPF的五种数据包:

    1. Hello:1.邻居的发现,关系的建立;2.周期(以太网10s)的保活;3.携带rid(IP地址格式),4.DR / BDR 选举

      字段名说明
      网络掩码邻居双方这个参数必须相同才能正常建立邻居关系(但是,这个参数在点到点网络中是不生效的)
      hello间隔hello time,dead time 如果不相同,则邻居关系无法建立可选项
      可选项每一个标记位都代表设备遵循OSPF的某一种特性,其中包含特殊区域的标记位。这个标记位不同,则邻居关系无法正常建立
      路由器优先级路由器接口参选的优先级
      指定路由器,备份指定路由器在没选出来之前,使用0.0.0.0进行填充,选出来之后,将对应接口的IP地址进行携带

      影响邻居关系建立的参数:1.网络掩码,2.hello时间,3.dead time,4.特殊区域标记位,5.认证

image.png

0.  Dbd:数据库描述报文(本地数据库目录(发送链路状态中自身知道的)),LSDB:链路状态数据库,存储LSA信息的数据库

    -   使用未携带数据的DBD包进行主从关系选举
    -   使用携带数据的DBD包共享数据库摘要信息

    | 字段名         | 说明                                      |
    | ----------- | --------------------------------------- |
    | 最大传输单元(MTU) | 发送接口所支持的MTU值,华为设备默认不检测MTU值              |
    | I           | init,该位置为1,是一个进行主从选举的数据包                |
    | M           | more,该位置为1,则代表这个DBD包后面还有其他的DBD包需要发送     |
    | MS          | master,该位置为1,则代表发送这个数据包的设备为主            |
    | DD 序列号      | 在DBD报文中,会逐次加1,用于确保DBD报文传输的有序性和可靠性(隐形确认) |

    ```
    ospf mtu-enable   # 在接口中配置, 如果两边均开启MTU的检测,并且两边MTU值设定不同,则OSPF的邻居关系将卡在EXSTRAT状态
    ```

    

image.png

0.  Lsr:链路状态请求报文(请求对方我不知道的)

    | 字段名                 | 说明                                   |
    | ------------------- | ------------------------------------ |
    | 链路状态类型,链路状态ID,通告路由器 | 被称为是LSA的“三元组”,因为这三个参数可以标识出一条唯一的LSA信息 |

image.png

0.  Lsu:链路状态更新报文(返回我不知道的拓扑或者路由)

image.png

0.  Lsack:链路状态确认报文(保证可靠性)

image.png

  • OSPF的7个状态机:(两个路由器的关系)

    1. Down:双方都不认识对方(A与B)

    2. init初始化:,B接收到hello包中(不包含自己的名字),B知道了A,B进入init状态

    3. 2way双向通讯:B接收到hello包中(包含自己的名字),邻居关系建立的标志

      • 匹配条件:DR(一个路由器)/BDR(备份路由器)选举
      • 条件匹配成功进入下一个状态,如果条件匹配失败,则停留在邻居关系,仅使用hello进行周期保活

image.png

0.  **Exstart预启动**:使用不携带目录信息的DBD包,1.进行主从关系的选举;**rid大为主**,为主的可以优先获取LSA信息,解决了目录共享时的无序,避免了它们的同时更新;2.主方可以住到隐形确认,可以定义隐形确认中的序列号。

0.  **Exchange准交换**:使用携带目标信息的dbd包(谁的rid大先发送dbd包),共享本地数据库目录

image.png

0.  **loading加载**:查看完邻接的dbd信息后,对比本地,然后基于本地未知的Lsa进行查询;使用lsr向对端查询,对端使**用lsu来传输这些lsa信息**,本地**收到后需要lsack来进去确认**

0.  **Full****邻接关系建立**标志;意味着邻接间,数据库同步(一致);邻接关系的设定是为了和之前邻居关系进行区分,邻居关系只是单纯的使用hello包进行保活,而只有邻接关系,才会发LSA信息

image.png

  • 名词解释:

    • 邻居关系:邻居关系就是只交互过hello报文,并不知道邻居具体的Lsa
    • 邻接关系:就是两个邻居之间完成交互过各种报文,两台路由器拥有各自的明细拓扑信息Lsdb完全同步
    • Lsdb:链路状态数据库,所有lsa的集合
    • Lsa【货物】:链路状态通告,具体的一条一条拓扑或路由信息,基于LSU包进行共享(LSU运输)
  • 结构突变:

    • 新增网段:触发更新-- LSU和LSack 直接告知
    • 断开网段:触发更新-- LSU和LSack 直接告知
    • 无法沟通:dead time为hello包的4倍;在4次周期内未收到对端的hello包,将断开与其邻居关系,删除通过该邻居计算所得路由
  • OSPF的工作过程:

    1. 启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包,(包含本地的RID以及自己已知的邻居的RID);之后,将收集到的邻居关系记录在一张表 --- 邻居表
    2. 之后需要关注条件,若不能建立为邻接,将保持为邻居关系,仅hello包周期保活
    3. 若条件匹配可以建立邻接关系,先使用未携带数据库目录信息的DBD包来进行主从关系的选举,之后由主引导先后顺序使用携带目录信息的DBD包共享数据库目录
    4. 之后本地基于其他设备的目录,判断由本地未知的LSA信息,再使用LSR/LSU/LSACK来通过邻接获取具体的LSA信息,完成本地的数据库表(LSDB链路状态数据库)
    5. 本地数据库完整后,本地将基于数据库中的内容启动SPF算法,将数据库整理为有向图-->最短路径树---->将本地到达所有未知网段的最短路径加载于本地的路由表
    6. 路由表建立完成,收敛结束,之后每10S使用hello包周期保活;每30min邻接间进行一次数据库目录核对
  • 区域划分规则:

    1. 星型结构:编号0骨干区域(中心),大于0为非骨干区域(分支),非骨干区域必须直连骨干区域
    2. 必须存在ABR:区域边界路由器,骨干区域0与非骨干区域相连>0的设备;区域之间可以存在多个ABR设备;一个ABR也可以连接多个区域
  • 区域ID:用来区分和标识OSPF的不同区域,32位二进制构成;也可以使用点分十进制表示,还可以直接使用十进制表示;其中,骨干区域的ID、必须设置为0。

  • RID(路由器id):

    • 格式IPv4地址,可以区分和标定不同的路由器

    • 32位二进制构成,全网唯一,格式统一(采用点分十进制的方式表示)

    • RID的获取方式:

      1. 手工配置:
      2. 自动生成:1.优先选择环回接口中IP地址最大的作为RID,2.如果没有环回,则选择物理接口中IP地址最大的作为RID
  • 基础配置:

    1. 启动时定义进程号(配置模式,默认进程1)

      ospf [num] router-id [路由器id]
      
    2. 宣告接口地址(激活(可以收发OSPF的信息),被选中接口的拓扑信息可以共享给邻接,区域划分):

      area 0   # 先定义区域
      network [接口IP地址] [反子网掩码]   
      
    3. 查询ospf:

      display ospf peer   # 查看邻居关系表
      display ospf peer brief   # 查看邻居简表
      display ospf routing   # 查看路由器宣告的路由和学到路由
      
      display ospf lsdb    # 查看LSDB
      
      display ip routing-table protocol ospf   # 查看ospf路由
      
      bandwidth-reference 1000    # 若修改带宽,全网需要一致(单位MB/s),先进入ospf
      
  • OSPF的开销值:

    • OSPF cost=参考带宽 / 接口带宽,----- 华为体系下,默认参考带宽为100M
    • 注意:开销值如果算出来是个小数,如果是大于1的小数,则直接取整数部分;如果是小于1的小数,直接取1。
    • OSPF优先cost值之和最小,为最佳路径;
    • 若两条链路cost值之和相同,等开销负载均衡;若接口带宽大于参考带宽,cost为1,将可能导致选路不佳,建议修改默认的参考带宽
  • 扩展配置:

    1. DR(一个路由器)/BDR(备份路由器)选举(有DR才有拓扑交换和lsa信息,才有路由):

      • 在MA网络中,若所有的设备均为邻接关系,将出现大量的重复更新;所以,需要进行DR/BDR的选举

      • 邻居成为邻接关系的条件,与网络类型有关

      • 网络类型:

        • 点到点:在一个网段内只能存在两个节点(串线链路)
        • MA-多路访问:在一个网段内的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点(以太网)
      • 点到点网络邻居关系必成为邻接关系;

      • 在MA网络中,将进行DR/BDR选举;在一个网段中仅DR(大哥)/BDR(二哥)与DRother其他路由器(小弟)为邻接关系,非DR/BDR之间(小弟与小弟之间)为邻居关系

        • 选举规则:

          1. 先比较一个网段所有参选接口的优先级,默认优先级为1,取值范围0-255,越大越优;0标识不参选
          2. 若优先级相同,比较参选设备的RID,数值大优
        • 干涉选举:

          ospf dr-priority 1   # 先进入这个参选接口
          

          注:由于一个网段DR/BDR选举需要消耗40S(选举时间 == 死亡时间),故为保障网络的稳定性,选举是非抢占的;一旦一个网段选举完成后,再修改优先级除非设备重启,否则无法干涉到结果;若需要干涉选举时,可以重启所有设备的OSPF

          reset opsf process   # 重启ospf进程
          

          最终的方法时修改非DR/BDR设备的优先级为0,代表不参选;不用重启进程

          ospf dr-priority 0   # 先进入这个参选接口
          
    2. 区域汇总:OSPF协议不支持接口汇总,只能在将A区域拓扑计算所得路由共享给B区域时进行汇总

      ospf [num]
      area [num]    # 进入区域的边界路由器配置
      abr-summary [汇总后的IP地址] [子网掩码]
      display ip routing-table protocol ospf   # 在另一个区域的路由器查看是否汇总
      
    3. 被动接口:仅接收不发送路由协议信息,用于连接用户终端的接口,不得用于建立邻接关系

      silent-interface g0/0/0
      
    4. 认证:在直连邻居或者邻接的接口上配置,保障更新的安全

      ospf authentication-mode [加密算法] [编号] cipher [具体密码]    # 模式,编号,密码要求邻居间一致
      
    5. 加快收敛:

      ospf timer hello [num]   # 先进入接口
      
      • 邻居间计时器 10s hello time,40s dead time
      • ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      • 修改本地的hello time,本地的dead time自动4倍关系匹配
    6. 缺省路由:边界路由器上配置后,将自动向内网下方一条缺省路由,之后内网设备将自动生成缺省路由边界

      ospf [num]
      default-route-advertise always   
      

2.HICP-OSPF:

  • OSPF的接口网络类型指:OSPF接口,在不同网络类型下,不同的工作方式

  • OSPF的接口网络类型:

    网络类型OSPF接口的网络类型(工作方式)
    虚拟接口(环回)默认p2p,只是华为定义为P2P类型,实际没有数据收发,环回接口的开销值定义为0,环回接口默认学习32位的主机路由
    P2P(HDLC,PPP,GRE,MGRE)默认P2P,只能建立一个邻居关系,不选DR / BDR;hello10S,dead time 40S
    BMA(以太网)默认Broadcast,可以建立多个邻居关系,需要进行DR和BDR选举,hello10S,dead time 40S
    没有真实网络环境对应默认P2MP(人工建立的),可以建立多个邻居关系,不需要进行DR和BDR选举,hello 30S,dead time 120S,可以学习邻居接口的主机路由(真实接口);针对的是NBMA网络。
    NBMA(帧中继)NBMA ,可以建立多个邻居关系,需要进行DR和BDR选举,hello 30S,dead time 120S,只能手工建立邻居关系
    Virtual,只有在
  • 在OSPF中,如果双方的接口工作类型不一致,能否建立邻居关系取决于

    • 网络掩码
    • hello时间
    • dead time
    • 特殊区域标记位
    • 认证
  • 查询接口的网络类型:

    display ospf interface [接口号]
    
  • 修改接口网络工作类型(中心站点和全连网状拓扑都需修改)

    ospf network-type  broadcast  # 先进入接口
    
  • 注意:

    • 华为体系下,隧道接口的传输速率被定义为64K(COST=100M / 64K = 1562),实际无数据收发,其目的是为了让接口的开销值变得非常大,能不走就不走。
    • 走隧道接口实际还是需要从物理接口发出,但是会额外增加复杂的封装过程,造成资源浪费
  • 拓扑结构:

    • 中心到站点(轴辐状,星型结构):DR必须定在中心站点,没有BDR(修改分支站点优先级为0)

      ospf dr-priority 0   # 先进入这个参选接口
      
    • 部分网状结构,基于实际环境关注是否固定DR

    • 全连网状结构:一种全连的MGRE环境(MESH),所有节点既是中心,也是分支;所有站点都将开启伪广播,这样将所有节点接口的网络类型改为 Broadcast 之后,所有节点在进行DR和BDR选举,将共同进行,则不会出现DR和BDR认知不统一的情况

      # 分支站点之间互相注册
      nhrp entry [Tunnel接口IP地址] [物理接口IP地址] register    # 配置其他分支站点的Tunnel地址,物理地址
      
      # 分支站点都开启
      nhrp entry multicast dynamic   
      
  • 在NBMA环境下,双方都指定单播邻居来建立邻居关系

    peer [对方接口IP地址]     # 先进入OSPF
    
  • OPSF的第八个状态机:

    • Attempt(尝试 ,过渡状态):出现在NBMA网络中,在 DOWN和INIT状态 之间,等待对端指定自己成为单播邻居,一旦指定后,将立即进入下一个状态
  • 不规则区域:

    • 远离骨干的非骨干区域
    • 不直连骨干的区域

image.png

  • 不规则区域的解决方法:

    1. Tunnel:合法ABR和非法ABR间S建立Tunnel隧道,然后将Tunnel宣告在OSPF

      • R2和R4直接需要建立邻居关系,所以,需要发送周期性的数据进行维护,造成中间通过链路的负担加重
      • 可能造成重复更新
      • 选路不佳(在OSPF中,路由器优先选择拓扑信息计算的路由)
    1. OSPF虚链路:非法ABR获取合法ABR的授权后,具有区域间路由共享的功能;合法ABR与非法ABR

      • 虚链路永远属于区域0

      • 优点:没有新生链路,不存在选路问题

      • 缺点:

        • 虚拟路只能穿越一个区域
        • R2和R4直接需要建立邻居关系,所以,需要发送周期性的数据进行维护,造成中间通过链路的负担加重
      • 非法ABR获取合法ABR的授权:双方路由器都需要配置

        # 在配置完成后,非法ABR将成为合法
        vink-peer [对方路由器ID]    # 先进入合法ABR和非法ABR的区域
        
      • 查看虚链路的详情

        display ospf vlink
        
    1. 多进程双向重发布:

      • 因为不同的路由协议之间,堆路由的理解及运行逻辑都不相同,所以,不同的路由协议之间是存在信息隔离的

      • 重发布:将一种协议按照另一种协议的规则发布出去

      • ASBR设备(自治系统边界路由器):在同时运行两种协议(重发布)的设备

      • 导入其他进程的路由信息(先将不规则区域写入另一个进程并导入)

        import-route [其他协议名称] [其他进程号]   # 先进入协议进程
        
      • 导入的路由信息标记(代表域外的路由信息):O_ASE

        • 路由信息的可控性较低,信任程度较低
        • 优先级默认设置为150

3.LSA头部内容:

  • LSA链路状态通告:是OSPF在不同网络环境下用于携带和传递不同的信息

  • LSDB: 链路状态据库

  • 查看LSDB

    display ospf lsdb  
    display ospf lsdb [LSA类型] [LinkState ID]   # 精准查看
    
  • LSA头部内容:

    链路状态类型,链路状态ID,通告路由器 被称为是LSA的三元组,因为这三个参数可以标识出一条唯一的LSA信息

    字段名说明
    TypeLSA的类型, 在 OSPFV2 当中,需要具体掌握6中LSA
    LinkState ID链路状态标识符,是一个LSA的名称,这个参数在不同的LSA类型中将携带不同的信息
    AdvRouter通告路由器,发出的LSA的路由器RID
    LS AGELSA的老化时间1800s=周期更新时间30min,当一条LSA被始发路由器产生时置为0,之后该LSA在网络种传播,老化时间也会持续累加;当一条LSA的老化时间到达3600s时(最大老化时间)则将会从LSDB数据库中删除
    LEN长度 ,表示LSA的内容所占的字节数
    Options标记位,Virtual:代表该路由器是V-LINK(虚链路)的一个端点;ASBR:代表该路由器为ASBR设备;ABR:代表该路由为ABR设备;E:代表特殊区域
    SEQ序列号,本质是由32位二进制构成,一台路由器每发送同一条LSA时都会携带一个序列号,且逐次加1
    CHKsum效验盒,也会参与新旧关系的比较,如果两条相同的LSA其序列号也相同,则将比较效验和,效验和大的判定为新
    • 序列号空间:(SEQ序列号内容)

      • 直线型空间:从最小值到最大值逐次加1

        • 优点:新旧关系容易区分,数字大绝对比数字小的新
        • 缺点:一旦序列号空间用尽,新旧关系不好区分
      • 循环型空间:从最小值到最大值在继续循环

        • 优点:序列号可以一致使用
        • 缺点:当两个序列号差值较大时,新旧关系不好区分
      • 棒棒糖型空间:

        • OSPF采用的就是这种序列号空间
        • 为了避免循环型空间的缺点OSPF要求不能进入循环部分(还是直线),所以,取值为 0X80000001 - 0X7FFFFFFX
        • 当序列号达到最大值时,始发设备会将该LSA的老化时间设置为最大老化时间,之后发出,其他收到该LSA的设备因为其序列号值最大,将刷新本地LSDB数据库,之后,又因为该LSA老化时间为最大老化时间,将把该LSA信息删除。同时,始发设备会再发送一条相同的LSA,其序列号为0X80000001,之后,其他设备将该LSA信息收集入库,起到刷新序列号空间的效果

4.LSA的6种分类:

分类LinkState ID通告路由器传播范围携带信息
1Router通告者的RID本区域内运行通告者的RID单区域通告者路由器接口直连的拓扑信息
2NetworkDR的IP地址MA网络中DR所在的路由器的RID单区域单个网络网段的拓扑补充信息
3Sum-Net(summary)目标路由网洛ABR边界路由器RID,在通过下一个ABR时,将修改为新的ABRABR相邻的单区域域间路由信息
4Sum-Asbr(asbr)ASBR的RIDASBR所在区域的ABR设备,在通过下一个ABR设备时,将修改为新的ABR除了ASBR所在区域的单区域ASBR的位置
5External(ase)目标路由网洛ASBR-RID整个OSPF区域域外路由信息(不规则区域路由)
7NSSA目标路由网洛ASBR-RID,离开NSSA区域后将被转换成5类LSA单个NSSA区域域外路由信息
  1. Router类型:

  • 每一条LINK都是在描述路由器接口的连接情况一个接口可以使用多个LINK来进行描述

  • 区域内的启动OSPF的路由器只发一条Router类型的LSA

  • 字段和对应的属性值:

    Link TypeLink IDDatemetric
    Point-to-Point邻居的Router ID该网络上本地接口的IP地址开销值
    TransNet(DR与本设备)DR的接口IP地址该网段上本地接口的IP地址开销值
    StubNet(网络末端)该Stub网段的IP网络地址该Stub网段的网络掩码开销值
    Virtual虚连接邻居的Router ID去往该虚连接邻居的本地接口的IP地址开销值

image.png

  • 报文格式:

    字段名说明
    V置1,代表该路由器是V-LINK的一个端点
    E置1,代表该路由器为ASBR设备
    B置1,代表该路由为ABR设备

image.png

  1. Network类型:

  • 在MA网络环境下,仅依靠1类LSA无法获取完整的拓扑信息,所以,我们引入了2类LSA,对拓扑信息进行补充说明
  • 二类LSA所补充的都是一些公共信息,所以一个MA网络中只需要一台设备发送就可以了(DR发出)。
  • 补充内容:MA网段的子网掩码,MA网段中所连接的设备RID

image.png

  • 注意:

    1. 1类和2类LSA传递的是拓扑信息,而其余的LSA传递的是路由信息
    2. 传递路由信息的LSA需要经过1类和2类LSA的验算才能使用。 例:需要通过1类和2类LSA找到通告者的位置
  1. Sum-Net类型:(域内路由信息,不规则区域路由)

  • 传递的是路由信息,由ABR设备通告,使用目标网络号作为LS ID

  • 携带内容:

    • 目标网段的子网掩码
    • 开销值是通告者到达目标网段的开销值

image.png

  1. Sum-Asbr类型(ASBR的位置):

image.png

  1. External类型(域外路由信息):

  • Metric字段的值因为不同路由协议对开销值的评判标准不同,所以在进行重发布时,无法直接使用其原先的开销值

  • 我们在重发布后将舍弃原先的开销值,而重新赋予其一个规定的初始值seed metric(种子度量值,默认为1)

  • 在重发布过程中修改种子度量值:

    import-route [其他协议名称] [进程号] cost [开销值]   # 先进入协议进程
    
  • 参数E type:标志位,标志着开销值的类型

    字段取值说明
    1所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值加沿途累加开销值
    25类LSA默认的开销值,所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值
  • 在重发布过程中修改开销值类型:(E type)

    import-route [其他协议名称] [进程号] type [类型号]   # 先进入协议进程
    
    display ip routing-table protocol ospf   # 通过查看路由表查看域外路由网段到本设备的开销
    
  • 参数Forwarding Address: 转发地址

    • 主要是为了应对选路不佳的情况
    • 不存在选路不佳的情况:则将使用0.0.0.0进行填充,无实质性作用
    • 存在选路不佳的情况,则将会把最佳选路填写在本字段,之后设备到达目标网段会查找到达FA地址的路径,而不会按照算法再去找通告路由器
  • 参数Tag:路由标记

    • 主要是给路由信息打标记,方便后面流量的抓取,默认取值为1

    • 配置:

      import-route [其他协议名称] [进程号] tag [num]   # 先进入协议进程
      

image.png

  1. NSSA类型(域外路由信息):

  • 参数Forwarding Address: 转发地址

    • 默认使用ASBR设备环回接口的IP地址作为转发地址
    • 不存在环回接口,则将使用ASBR的物理接口的IP地址作为转发地址
    • 收到这条LSA的设备,访问目标网段将直接将数据包发送到转发地址上
  • 参数options:

    options字段取值说明
    E置1:代表支持5类LSA;置0:代表特殊区域
    N置0:不在NSSA区域中;置1:在NSSA区域中
    P置1:代表该LSA支持7转5
  • 7类LSA生成的路由信息其标记为O_NSSA,优先级也是150。

5.OSPF的优化:

  • 主要指减少OSPF中的LSA更新量

  • 汇总:为了减少骨干区域的更新量

    • OSPF协议不支持接口汇总,只能在将A区域拓扑计算所得路由共享给B区域时进行汇总

    • 域内汇总:区域之间在传递三类LSA时进行汇总,减少3类LSA的更新量

      • 配置:(在ABR设备上)

        abr-summary [汇总后的IP地址] [子网掩码]   # 先进入汇总前的区域
        
      • 注意:域间路由汇总只能是一台ABR设备将自己通过1类和2类LSA学习到的路由信息汇总成一条3类LSA发送

    • 域外汇总(汇总不规则区域路由):主要针对5类 / 7类LSA进行汇总

      • 配置:

        asbr-summary [汇总后的IP地址] [子网掩码]   # 先进入在ASRB上的ospf进程,传递汇总路由的进程
        
      • 域外汇总网段的度量值:

        External分类中E type字段取值说明
        1将选择所有明细路由中开销值最大的作为汇总网段的度量值(metric)
        2将选择所有明细路由中开销值最大+1 作为汇总网段的度量值(metric)
  • 做特殊区域:为了减少非骨干区域的LSA更新量

    • 第一大类的特殊区域(末梢区域 stub):

      • 特点:

        1. 不能是骨干区域(0区域)
        2. 不能存在虚链路
        3. 不能存在ASBR设备(自治系统边界路由器)
      • 如果将一个区域配置成为末梢区域,则这个区域将拒绝学习4类和5类LSA(拒绝学习域外信息)

      • 为了保证可以正常访问到域外的网段,末梢区域会自动生成一条指向骨干的3类缺省(通过3类LSA生成的缺省路由)。

        stub    # 先进入本区域,区域内所有设备都必须配置;约等于缺省路由
        
      • 普通的末梢区域改变成 完全末梢区域(Totally stub) :在拒绝4类和5类LSA的基础上,进一步拒绝3类LSA但是保留3类缺省

        stub no-summary      # 先进入本区域,只需要在ABR设备上配置即可;约等于缺省路由
        
    • 第二大类特殊区域(非完全末梢区域 NSSA):

      • 特点:

        1. 不能是骨干区域(0区域)
        2. 不能存在虚链路
        3. 必须存在ASBR设备(自治系统边界路由器)
      • 如果将一个区域配置成为NSSA,则这个区域将拒绝学习4类和5类LSA(拒绝学习域外信息)

      • 7类LSA(NSSA):为了实现导入域外路由信息,NSSA区域又拒绝学习其他方向的4类和5类LSA的效果

      • 为了保证可以正常访问到域外的网段,所以,NSSA区域会自动生成一条指向骨干的七类缺省(通过7类LSA生成的缺省,指向其他方向的域外路由)

        nssa    # 先进入本区域,区域内所有设备都必须配置;约等于缺省路由
        
      • 普通非完全末梢区域改变成 完全的非完全末梢区域 (Totally NSSA) :在拒绝4类和5类LSA的基础上,进一步拒绝三类LSA。并自动生成一条指向骨干区域的3类缺省

        nssa no-summary    # 先进入本区域,仅需在ABR设备上配置即可;约等于缺省路由
        
  • OSPF的附录E:OSPF针对3类或5类/7类在某些特定情况下的解决方案

    • 图示:

image.png

-   图中20.1.0.0/16网段和20.1.0.1/24网段在通过R3传递三类LSA(Sum-Net)时,他们的链路状态类型,链路状态ID,通告路由器完全相同

-   因为链路状态类型,链路状态ID,通告路由器 被称为是LSA的**三元组**,因为这三个参数可以标识出一条唯一的LSA信息

-   所以,为了避免三元组完全相同,导致无法区分两条不同的LSA,则附录E要求,**掩码长度较长**网段的LSA信息将使用**目标网段的直接广播**地址作为LS ID;例:20.1.0.255/24。

6.HICP-OSPF扩展配置:

  • 缺省路由:

    • 3类缺省:只能通过特殊区域(普通STUB,完全STUB,完全NSSA)的配置完成

    • 5类缺省:通过配置命令生成,将域外的路由信息重发布到OSPF中

      ospf [num]
      default-route-advertise     # 将设备上其他途径获取的缺省信息重发布到OSPF网络上,一般在区域的边界路由器上
      
      ospf [num]                         # 一般在区域的边界路由器上        
      default-route-advertise always     # 如果设备本身不存在缺省信息,则可以通过后面增加always参数来强制下发一条缺省
      
    • 7类缺省:可以通过配置特殊区域(普通的NSSA)自动生成,也可以通过配置手工配置

      nssa deafult-route-advertise    # 先进入本区域,在区域的NSDR路由器上配置,区域中的路由器全生成一条指向NSDR的缺省
      
  • 手工认证:OSPF邻居间发送数据包中携带口令,两边如果口令相同,则身份合法

    • 接口认证: 模式,编号,密码要求邻居间一致,否则影响邻居的建立

      ospf authentication-mode [加密算法] [编号] [cipher/plain] [具体密码]      # 先进入接口
      # 双端的密钥存储形式可以不同[cipher/plain]
      
    • 区域认证:本质还是接口认证,在一个区域中配置区域认证,效果等于同时在这个区域中所有激活的接口上配置了接口认证

      authentication-mode [加密算法] [编号] [cipher/plain] [具体密码]    # 先进入本区域,问题配置
      
    • 虚链路认证:虚链路建立过程中的认证

      # 进入合法ABR和非法ABR的区域,再建立虚链路的同时配置
      vlink-peer [对方路由器ID] [加密算法] [编号] [cipher/plain] [具体密码]    
      
  • 加快收敛:减少计时器的时间

    • 查看计时器时间

      display ospf interface [接口号]
      
    • 修改hello时间:

      ospf timer hello [num]    # 先进入接口
      # 邻居间计时器 10s hello time40s dead time
      # ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      # 修改本地的hello time,本地的dead time自动4倍关系匹配
      
    • 修改死亡时间:

      ospf timer dead [num]    # 先进入接口
      # 邻居间计时器 10s hello time40s dead time
      # ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      # 修改本地的dead time,本地的hello time不会改变,会改变等待时间(wait time
    • Waiting time:

      • 等待时间 == 死亡时间,DR/BDR选举时间。
      • 修改死亡时间:该计时器时间会同步修改。
      • 注意,两个计时器分开计时,只是数值长短相同
    • Poll:轮询时间120S,与状态为DOWN的邻居关系发送hello包的间隔时间

    • NBMA环境下单方面指定邻居后,将邻居置为Attempt状态,等待对方指定自己。如果对方一直没有指定(120S,这个时间内会以30S为周期发送hello包)会将邻居的状态改为down状态,之后,将按照poll时间为周期发送hello包。

    • 修改轮询时间:

      ospf timer poll [num]    # 先进入接口,单位分钟second
      
    • Retransmit:重传时间 5S,发送信息时需要确认;如果重传时间内没有收到确认信息,则将重传

      ospf timer retransmit [num]   # 先进入接口,单位分钟second
      
    • Transmit Delay:传输延迟1S ,主要是附加在LSA的老化时间上的,为了补偿传输过程中消耗的时间

      ospf trans-delay [num]   # 先进入接口,单位分钟second
      
    • 沉默接口:将一个接口设置称为沉默接口,他将只接受不发送OSPF的数据包

      silent-interface g0/0/0   # 先进入ospf
      
    • 路由过滤:主要是针对3类,5类,7类LSA进行过滤

      # 过滤3类LSA,先进入需要过滤网段的区域,不让此网段发网其他区域
      abr-summary [需要过滤掉的IP网段] [子网掩码] not-advertise   
      #过滤5类/7类LSA,先进入NSSA区域
      asbr-summary [需要过滤掉的IP网段] [子网掩码] not-advertise   
      
  • 路由控制:

    • 优先级:

      • 修改类型为OSPF路由(通过1类,2类和3类LSA学到的)的默认优先级

        preference [num]    # 先进入OSPF进程
        
      • 修改类型为O_ASE / O_NSSA的路由(通过5类和7类学到的)的默认优先级

        preference ase [num]   # 先进入OSPF进程
        
      • 注意:这条命令在修改的只能影响本设备,并且将本设备上所有对应协议类型的路由条目优先级统一修改

    • 开销值COST:参考带宽 / 真实带宽,华为体系下,默认参考带宽为100M

      • 通过修改参考带宽达到修改开销值得目的

        bandwidth-reference [num]    # 全网需要一致(单位MB/s),先进入ospf
        
      • 通过修改真实带宽达到修改开销值得目的(修改后需要重启接口后生效)

        spend [10/100/1000]   # 修改接口得传输速率,先进入接口
        
        undo negotiation auto   # 关闭自动协商,先进入接口
        

        注意:这种方法确实可以起到控制选路的效果,但是,因为只能把接口的传输速率改低,所以,会影响链路的传输效率,不建议使用

      • 直接修改接口的开销值:

        ospf cost [num]    # 先进入接口
        

        注意:如果一条链路两端接口的开销值大小不一样,则我们将按照路由传递方向的入接口(数据传输的出接口)的开销值来计算

      • 查看接口开销值:

        display ospf interface [接口号]
        

        注意:

        • 如果一条链路两端接口的开销值大小不一样,则我们将按照路由传递方向的入接口(数据传输的出接口)的开销值来计算
        • 如果想要改变到达某一个末梢网段的开销值,建议直接在这个修改这个末梢网段接口的开销值,而不要修改沿途骨干链路的开销值。因为沿途修改则经过的路由的开销都会影响。
        • 路由层面(控制层面):路由协议传递路由信息产生的流量
        • 数据层面:设备访问目标地址时产生的数据流量

7.OSPF的选路原则:

  • 域内:1类LSA,2类LSA

    • 两条到达相同目标的路由,直接比较开销值,若两边开销值相同,则负载均衡
  • 域间:3类LSA

    • 两条到达相同目标的路由,直接比较开销值,若两边开销值相同,则负载均衡
  • 域外:5类LSA,7类LSA

    • 类型1选路原则:直接比较总度量值(种子度量+沿途累加开销值),优选总度量小的;如果总度量相同,则负载均衡

    • 类型2选路原则:先比较种子度量值,优选种子度量值小的;如果种子度量值相同,则比较沿途累加开销值,优先选择沿途累加开销值小的;如果都相同,则负载均衡

    • 类型1永远优于类型2

    • 图示:Meteic为种子值

image.png

-   参数E type:标志位,标志着开销值的类型

    | 字段取值 | 说明                                                |
    | ---- | ------------------------------------------------- |
    | 1    | 所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值加沿途累加开销值         |
    | 2    | **5类LSA默认的开销值**,所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值 |

-   同时查看所有5类LS

    ```
    display ospf lsdb ase
    ```
  • 域内和域间:域内路由优于域间路由

  • 域间和域外:域间优于域外

  • 5类和7类LSA:在华为体系中,5类和7类LSA生成的路由信息在优先级比较方面没有区别

8.OSPF的防环:

  • 域内防环:

    • 星型区域划分本身就是一种防环的手段
    • 区域之间需要遵循区域水平分割机制。 --- 从哪个区域学来的就不再发回到那个区域
  • 域间防环:SPF最短路径优先算法