OSPF-LSA其他内容

LSA更新规则

序列号(sequence)

内容

  1. LSDB中的每个LSA都有一个序列号
    • 4个字节的数字
    • 以0x80000001开始
    • 以7FFFFFFF结束
  2. OSPF每30分钟泛洪一次LSA
    • 每一次,序列号增加1
    • 具有更高(更新)序列号的表示最新的LSA
  3. 最后,序列号会返回到0x80000001
    • 现有LSA的生存时间提前到达最大生存时间MAX Age(一小时),并且已经刷新

序列号判断重复的LSA

  1. 图示

    alt 序列号判断重复的LSA

  2. 分析

    • 路由器收到其他路由器发送的LSA,判断该LSA是否在LSDB中,如果不在,则添加到LSDB中并发送LS ACK给其他路由器,泛洪LSA,运行SPF算法计算路由,形成新的路由表
    • 如果收到其他路由器发送的LSA的序列号与之前已有的LSA序列号重复,忽略该LSA
    • 如果没有重复,则判断其他路由器发送的LSA与路由器原有的LSA哪个的序列号高,序列号高的代表LSA较新,如果其他路由器发送来的LSA的序列号高,添加该LSA到LSDB
    • 如果路由器原有的LSA的序列号高,则将原有的LSA发送给其他路由器

过期时间

刷新时间Refresh Age

  1. 内容

    • LS Age的单位是S,随时间而增长,越小代表LSA越新
    • 一条LSA在向外泛洪之前,LS Age的值需要增加Inf Trans Delay(该值可以在端口上设置,缺省为1s,表示在链路上传输的延迟)
    • 如果一条LSA的LS Age达到LS Refresh Time(30分钟),重新生成该LSA(Age重新计算,序列号+1)
  2. 验证

    • R4中宣告一条路由

      alt R4中宣告一条路由

    • R1中会出现一条新的LSA

      alt R1中有新的LSA

Max Age

  1. 内容

    • 如果一条LSA的LS Age达到了Max Age(1小时),这条LSA将会被删除
    • 如果路由器希望将某条自己此前生成的LSA删除,则可以重新生成这条LSA实例,并将LS Age设置成MAX Age
    • 如果路由器收到一条LS Age为MAX Age的LSA,则从LSDB中删除此LSA(前提是LSDB中存在此LSA)
  2. 验证

    • R4删除一条路由

      alt R4不宣告

    • 抓包看

      alt 删除一条LSA

引入外部路由

外部路由类型

图表

Type Cost
第一类外部路由
(External Type 1)
AS内部Cost+AS外部Cost
第二类外部路由
(External Type 2)
AS外部Cost

图示

alt 引入外部路由

区别

当路由Cost相同的时候,外部路由的Type1 优于 Type 2

alt 外部路由引入类型区别

实验

拓扑

alt 引入外部路由类型实验拓扑

命令

  1. 图表

    命令 备注
    import-route static/rip/ospf/bgp/isis
    limit:配置引入外部路由的最大数量
    cost:配置外部路由的开销,默认为1
    route-policy:配置路由策略
    tag:配置标签,用于路由策略,默认为1
    type:配置引入外部路由的类型,默认为2
    引入外部路由的命令
  1. 上面路由器的配置

    • R1配置

      1
      2
      3
      4
      5
      6
      7
      sys
      sys R1
      int g0/0/0
      ip add 10.0.1.1 24
      ospf 1 router-id 1.1.1.1
      area 1
      net 10.0.1.1 0.0.0.0
  • R2配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sys
    sys R2
    int g0/0/0
    ip add 10.0.1.2 24
    int g0/0/1
    ip add 10.0.2.1 24

    ospf 1 router-id 2.2.2.2
    area 1
    net 10.0.1.2 0.0.0.0
    area 0
    net 10.0.2.1 0.0.0.0
  • R3配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    sys
    sys R3
    int g0/0/0
    ip add 10.0.2.2 24
    int g0/0/1
    ip add 10.0.3.1 24
    q
    ip rpute-static 4.4.4.4 32 10.0.3.2

    [R3]acl 2000
    [R3-acl-basic-2000]rule 1 per
    [R3-acl-basic-2000]rule 1 permit sr
    [R3-acl-basic-2000]rule 1 permit sour
    [R3-acl-basic-2000]rule 1 permit source 10.0.3.0 0.0.0.255
    [R3-acl-basic-2000]rule 2 permit so
    [R3-acl-basic-2000]rule 2 permit source 4.4.4.4 0.0.0.0
    [R3-acl-basic-2000]q
    [R3]rout
    [R3]route-p
    [R3]route-policy wuchao permit node 10
    Info: New Sequence of this List.
    [R3-route-policy]if-ma
    [R3-route-policy]if-match acl 2000


    ospf 1 router-id 3.3.3.3
    import-route direct route-policy wuchao
    import-route static
    area 0
    net 10.0.2.2 0.0.0.0
  • R4配置

    1
    2
    3
    4
    5
    6
    sys
    sys R4
    int g0/0/0
    ip add 10.0.3.2 24
    int lo 1
    ip add 4.4.4.4 32
  1. 修改Cost

    1
    [R3-ospf-1]import-route static cost 10
  1. 修改Type

    1
    [R3-ospf-1]import-route direct route-policy wuchao type 1

验证

  1. 此时R1中会有两条外部路由,且开销都是1

    alt Type2-Cost

  2. 修改引入外部路由的Cost

    alt 修改Cost

  3. 修改外部路由器引入的类型

    alt 修改外部路由器的引入类型

Forwarding Address(次优外部路由)

产生原因

图示

alt 次优外部路由的原因

解释

  1. A与B之间跑OSPF协议
  2. B与C之间跑RIP协议
  3. A、B、C属于同一个局域网
  4. A到C的数据包:A把数据包发送B,又从B的同一个接口将数据包发给C;而A可以直接将数据包发给C,就用到Forwarding Address

内容

  1. 如果引入OSPF的外部路由的下一跳与引入外部路由的路由器(OSPF协议)接口在同一个局域网
  2. 则在描述该外部路由的AS-External LSA中
  3. Forwarding Address 应该被设置成ADBR路由表中该路由的下一跳

图示

alt 解决次优路由的方法

实验

拓扑

alt 次优路由Forwarding Address实验拓扑

命令

  1. R1配置

    1
    2
    3
    4
    5
    6
    7
    sys
    sys R1
    int g0/0/0
    ip add 192.168.1.1 24
    ospf 1 router-id 1.1.1.1
    are 0
    net 192.168.1.1 0.0.0.0
  1. R2配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    sys
    sys R2
    int g0/0/1
    ip add 192.168.1.2 24
    ip route-static 3.3.3.3 32 192.168.1.3
    ospf 1 router-id 2.2.2.2
    import-route static
    are 0
    net 192.168.1.2 0.0.0.0
  1. R3配置

    1
    2
    3
    4
    5
    6
    sys
    sys R3
    int g0/0/0
    ip add 192.168.1.3 24
    int lo 1
    ip add 3.3.3.3 32

验证

  1. R1中有外部路由3.3.3.3

    alt R1中有外部路由

  2. R1的外部路由详细信息中有Forwarding Address 指向R3

    alt R1中外部路由详细信息

汇总

概述

内容

  1. 将路由表中的多条路由汇总成一条路由,从而减少路由表的规模,提高性能和扩展性
  2. OSPFF的汇总只能在ABR和ASBR中配置

命令

命令 备注
area 0 (需要在ABR所要宣告的路由的区域内配置)
abr-summary 192.168.0.0 255.255.252.0
advertise :发布汇总路由,默认
not-advertise:不发布汇总路由(可以屏蔽某段路由)
cost:开销 (多条路由汇总,默认用Cost最大的值作为汇总后的Cost)
ABR区域间路由汇总
asbr-summary 192.168.0.0. 255.255.252.0 ASBR外部路由汇总

区域间路由汇总

atl 区域间路由汇总

外部路由汇总

alt 外部路由汇总

实验

拓扑

alt  外部路由汇总实验总结

配置

  1. R1配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    sys
    sys R1
    int g0/0/0
    ip add 12.0.0.1 24
    int lo 1
    192.168.0.1/24
    int lo 2
    192.168.1.1/24
    int lo 3
    192.168.2.1/24
    int lo 4
    192.168.3.1/24

    ospf 1 router-id 1.1.1.1
    area 0
    net 12.0.0.1 0.0.0.0
    net 192.168.0.1 0.0.0.255
    net 192.168.1.1 0.0.0.255
    net 192.168.2.1 0.0.0.255
    net 192.168.3.1 0.0.0.255
  1. R2配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    sys
    sys R2
    int g0/0/0
    ip add 12.0.0.2 24
    int g0/0/1
    ip add 23.0.0.1 24

    #路由器策略
    q
    acl 2000
    rule 1 permit source 3.3.3.3 0.0.0.0
    q
    route-policy wuchao permit node 10
    if-match acl 2000
    q
    ip route-static 3.3.3.3 32 23.0.0.2
    ospf 1 router-id 2.2.2.2
    import-route static route-policy wuchao
    area 0
    net 12.0.0.2 0.0.0.0

    #路由汇总
    abr-summay 192.168.0.0 255.255.252.0 # 后面可以加参数
    # Cost 修改汇总后的Cost
    # advertise 宣告汇总路由(默认)
    # not-advertise 不宣告汇总路由(可以屏蔽一些路由)
    area 1
    net 23.0.0.1 0.0.0.0
  1. R3配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sys
    sys R3
    int g0/0/0
    ip add 23.0.0.2 24
    int lo 1
    ip add 3.3.3.3 32

    ospf 1 router-id 3.3.3.3
    area 1
    net 23.0.0.2 0.0.0.0

验证

  1. 没有汇总之前的LSDB

    alt 没有汇总之前的LSDB

  2. 汇总之后的LSDB

    alt 汇总之后的LSDB

特殊区域

stub区域与Totally Stub区域

图示

alt 特殊区域图示

图表

特殊区域 备注
Stub 末节区域,屏蔽LSA 4/5
区域内不能有ASBR、不能是区域0(核心区域)、不能有虚连接
由ABR向该区域发送一条LSA 3类型的缺省路由
Totally Stub 完全末节区域,屏蔽LSA 3/4/5类型
区域内不能是ASBR、不能是区域0(核心区域)、不能有虚连接
由ABR向该区域发送一条LSA 3类型的缺省路由

stub区域

内容

  1. 末节区域
  2. 屏蔽LSA 4/5类型
  3. 不能是核心区域
  4. 不能有ASBR
  5. 不能有虚连接
  6. 由ABR发送一条LSA 3类型的缺省路由

图示

alt Stub区域图示

实验

  1. 拓扑

    alt Stub试验拓扑

  2. 配置

    • R1配置

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      sys
      sys R1
      int g0/0/0
      ip add 12.0.0.1 24

      ospf 1 router-id 1.1.1.1
      area 1
      net 12.0.0.1 0.0.0.0
      # 设置成末节区域
      stub
  • R2配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    sys
    sy R2
    int g0/0/0
    ip add 12.0.0.2 24
    int g0/0/1
    ip add 23.0.0.1 24

    ospf 1 router-id 2.2.2.2
    area 1
    net 12.0.0.2 0.0.0.0

    # 设置成末节区域
    stub
    area 0
    net 23.0.0.1 0.0.0.0
  • R3配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    sys
    sys R3
    int g0/0/0
    ip add 23.0.0.2 24
    int lo 1
    ip add 192.168.11.1 24
    int lo 2
    ip add 192.168.12.1 24
    int lo 3
    ip add 192.168.13.1 24
    int lo 4
    ip add 192.168.14.1 24

    ospf 1 router-id 3.3.3.3
    area 0
    net 23.0.0.2 0.0.0.0
  1. 验证

    • 没有特殊区域之前的LSDB

      alt 没有特殊区域之前的LSDB

    • 设置Stub之后的LSDB

      alt 设置Stub之后的LSDB

  2. 路由表

    alt Stub区域路由表

Totally Stub 区域

内容

  1. 完全末节区域
  2. 屏蔽LSA 3/4/5类型
  3. 不能是核心区域
  4. 不能有ASBR
  5. 不能有虚连接
  6. 由ABR发送一条LSA 3类型的缺省路由

图示

alt Totally Stub图示

实验

  1. 拓扑

    alt Totally Stub实验拓扑

  2. 配置

    • area1 内部路由器R1

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      sys
      sys R1
      int g0/0/0
      ip add 12.0.0.1 24

      ospf 1 router-id 1.1.1.1
      area 1

      # 配置Stub区域
      stub
      net 12.0.0.1 0.0.0.0
  • area 1 边界路由ABR配置(R2)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sys
    sy R2
    int g0/0/0
    ip add 12.0.0.2 24
    int g0/0/1
    ip add 23.0.0.1 24

    ospf 1 router-id 2.2.2.2
    area 1
    # 配置Totaly Stub
    stub no-summary
    net 12.0.0.2 0.0.0.0
    area 0
    net 23.0.0.1 0.0.0.0
  1. 验证

    • 3类、4类、5类LSA被一条3类LSA的缺省路由代替

      alt 3类缺省路由

    • 没有设置Totally Stub

      alt 没有设置Totally Stub

  2. 路由表

    alt Totally Stub 路由表

Stub与Totally Stub区域的问题

问题描述

  1. OSPF的area被定义为Stub或Totally区域后,无法作为ASBR引入外部路由
  2. 会出现次优路由

问题图示

alt Stub和Totally Stub问题

NSSA与Totally NSSA

图表

特殊区域 备注
NSSA Not-So-Stubby-Area 不是那么末节的区域,屏蔽LSA 4/5类
区域内允许有ASBR
为了传递外部路由,该区域内使用LSA7类代替LSA5类
该区域的外部路由去往其他区域需要将LSA7类转化成LSA5类
该区域ABR会发送一条LSA 7的缺省路由
Totally NSSA 完全不是那么末节的区域,屏蔽LSA 3/4/5类
区域内允许有ASBR
为了传递外部路由,该区域使用LSA7类代替LSA5类
该区域的外部路由去往其他区域需要将LSA7类转化成LSA5类
该区域的ABR会发送一条LSA 3类和LSA7类的缺省路由

图示

alt NASA与Totally NASA

NSSA(Not So Stubby Area)

内容

  1. 不是那么末节的区域,屏蔽LSA 4/5类LSA
  2. 允许该区域有ASBR,外部路由
  3. 因为Stub区域不允许有4类和5类LSA,此时这个区域使用LSA7类代替LSA5类
  4. 为了传递该区域的外部路由到其他区域,ABR会将LSA7类转化成LSA5类
  5. 该区域会发布一条LSA7类的缺省路由

图示

alt NSSA区域图示

实验

  1. 拓扑

    alt NSSA区域试验拓扑

  2. 配置

    • 末节路由器配置

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      sys
      sys R1
      int g0/0/0
      ip add 12.0.0.1 24
      int lo 1
      ip add 9.9.9.9 32

      ospf 1 router-id 1.1.1.1
      import-route direct
      area 1

      # 配置NSSA区域
      nssa
      net 12.0.0.1 0.0.0.0
  • ABR路由器配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sys
    sy R2
    int g0/0/0
    ip add 12.0.0.2 24
    int g0/0/1
    ip add 23.0.0.1 24

    ospf 1 router-id 2.2.2.2
    area 1
    # 配置NSSA
    nssa no-summary
    net 12.0.0.2 0.0.0.0
    area 0
    net 23.0.0.1 0.0.0.0
  1. 验证

    • 不配置特殊区域的LSDB

      alt 不配置特殊区域的LSDB

    • 配置Stub的LSDB

      alt 配置Stub的LSDB

    • 配置NSSA的LSDB

      atl 配置NSSA的LSDB

    • 末节区域内全部路由器配置NSSA后的LSDB

      atl 末节区域内全部路由器配置NSSA后的LSDB

Totally NSSA

内容

  1. 完全不那么末节的区域,屏蔽LSA 3/4/5类LSA
  2. 允许末节区域内有外部路由
  3. 末节区域内外部路由是LSA7类
  4. 末节区域内的外部路由宣告给其他区域,需要将LSA7类转化成LSA5类
  5. 末节区域内发送一条LSA3类缺省路由和LSA7类缺省路由

图示

实验

  1. 拓扑

    Totally NSSA实验拓扑

  2. 配置

    • 末节区域ABR的配置

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      sys
      sy R2
      int g0/0/0
      ip add 12.0.0.2 24
      int g0/0/1
      ip add 23.0.0.1 24

      ospf 1 router-id 2.2.2.2
      area 1
      # 配置Totally NSSA
      NSSA no-summary
      net 12.0.0.2 0.0.0.0
      area 0
      net 23.0.0.1 0.0.0.0
  • 末节区域引入外部路由的路由器配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sys
    sys R1
    int g0/0/0
    ip add 12.0.0.1 24
    int lo 1
    ip add 9.9.9.9 32

    ospf 1 router-id 1.1.1.1
    import-route direct
    area 1

    # 配置NSSA区域
    nasa
    net 12.0.0.1 0.0.0.0
  1. 验证

    • 没有配置特殊区域

      alt 没有配置特殊区域NSSA

    • 配置Totally NSSA区域

      alt 配置Totally NSSA区域

总结

类型 LSA3 LSA4 LSA5 LSA7 自动发布缺省路由
Stub
Totally Stub
NSSA ⅹ/√
Totally NSSA ⅹ/√

Stub区域

alt Stub区域总结

Totally Stub区域

alt Totally Stub区域总结

NSSA区域

atl NSSA区域总结

Stub 区域总结

atl Stub区域总结

Totally Stub区域总结

alt Totally Stub区域总结1

NSSA区域总结

alt NSSA区域总结1

吴超 wechat
subscribe to my blog by scanning my public wechat account