zoukankan      html  css  js  c++  java
  • 3.8【OSPF】NP十二班第五天OSPF Router LSA详解

    OSPF Router-LSA详解


    帧中继环境下DR和BDR的选举

    1、DR和BDR在同一网段而不是同一区域,因为在同一区域里面可能会存在多个DR,多个BDR;DR和BDR是接口的概念。
    2、在NBMA网络环境中一般是不能通过组播去建立邻居关系的,在NBMA环境中如何通过组播去建立邻居关系?
     
    需要把网络类型改成点到多点,会从接口发送组播报文,需要将PVC修改一下:
     
    需要开启伪广播:
    开启brocast以后,帧中继也是支持组播和广播
     
    加broadcast关键字,更改网络类型,R2上可以有正常路由条目,和算法是有关系的。
     
    或者把网络类型改成点到多点:
     改成点到多点网络类型,是不会选举DR和BDR的,只是通过单播的方式:点到点的方式去维护邻居关系。
    横杠:表示接口的状态机是点到点(网络类型是点到多点):
     
    点到多点、非广播网(帧中继、ATM非广播网的 环境,低速链路)
    网络类型             hello timer         dead timer           DR/BDR选举
    广播                     10                        40                         有
    非广播网              30                       120                        有
    点到点                  10                        40                         无
    点到多点               30                       120                       无
    虚链路                   无                        无                         无
    点到多点非广播(cisco)  30        120                        无
     
    结论:由于DR和BDR的选举会造成DR会通告2类LSA,造成SPF算法错误 ,所以才引申出一个点到多点的网络类型去解决这个问题。
     
    *******************************************************

    OSPF LSA(LSA在OSPF里面是一个最重要的内容)

    LSA:链路状态通告,不同的LSA通告不同的内容
    LSDB:在链路状态数据库保存的是不同类型的LSA
     
    有了LSA以后,才可以执行SPF算法,计算一个最短路径
     
     
    ASBR:将Rip、Eigrp重分发进OSPF的话,它的角色就是ASBR
    ASBR:自治系统边界路由器(如果将一些外部路由重分发进OSPF,这样的设备就是ASBR)
    ABR:区域边界路由器,连接了多个区域
     
    OSPF常用的LSA?(R/S)
     
    1类LSA(Router LSA)  :
     
    由谁通告:所有配置OSPF的设备;
    传递范围:本区域内通告
    2不会将 1的1类LSA传递到3中,但可以在本区域内传递的;最终,在这个区域的所有设备都会有这条1类LSA
    通告的内容:通告所有宣告进OSPF的链路信息
     
     
    【分解实验】31:01
     
    show ip ospf database       //查看LSDB
     Router Link states:1类LSA
    ADV Router:通告路由器
    Age: age时间-LSA的一个老化时间;LSA的 最大老化时间:3600秒;
    Seq#序列号:0X 80 00 00 02 有4个字节,1个字节8个比特,2的32次方比特
    checksum:对LSA的 一个校验
    Link count:在这个LSA里面,通告了几条链路信息
     

    show  ip ospf database ?  //查看各种LSA
     为什么router-id不能重复?
    因为LSA通告的时候,会标识这个LSA是由谁通告的,而标识者就是自己的Router-id。
     
    show ip ospf database router  12.1.1.1  //加router参数,后见指定一个链路状态ID,实际上这个链路状态ID等于自己的Router-ID
     
    LSA的头部内容:
     1类LSA的内容:
     R1#show ip ospf database router 12.1.1.1
     
                OSPF Router with ID (12.1.1.1) (Process ID 1)
     
                    Router Link States (Area 0)
     
      LS age: 331  \LSA的保存时间,老化时间为3600S, LSA的更新时间为1800S。
     Options: (No TOS-capability, DC) 
      LS Type: Router Links      \ 1类LSA
      Link State ID: 12.1.1.1 \1类LSA中LS ID等于发送者的Router-id
      Advertising Router: 12.1.1.1 \LSA通告者的Router-id(填充LSA通告者的Router-id)
      LS Seq Number: 80000002  \LSA序列号为32个bit,第一个比特代表符号(1=负数 0=整数),同时用到线性增长和棒棒糖算法。每个LSA更新序列号都会加1,这样来表示每个LSA都是最新的
      Checksum: 0xCF25
      Length: 36
      Number of Links: 1
     
        Link connected to: a Transit Network    链路类型 -LINK类型
         (Link ID) Designated Router address: 12.1.1.2
         (Link Data) Router Interface address: 12.1.1.1
          Number of TOS metrics: 0                   服务类型
           TOS 0 Metrics: 1
     
     
    如何去比较一个LSA的新旧?(大体流程)
    1.用LSU去通告LSA,判断这个LSA是否在LSDB里面?
    2.如果在的话,比较序列号,看序列号是否一致?
    如果一致,Ignore LSA;如果 不一致,看这个序列号是否大于本地保存的一个LSA?如果 大于,接收,替换掉本地保存的LSA;如果不是,继续将LSA发给我的邻居
    3.如果这条LSA不在LSDB里面,需要将这条LSA添加到LSDB,并发送LSACK,去泛洪LSA,给邻居,后续去运行SPF算法做一个计算
     1类LSA中其实用31bit去表示序列号,如果到达最大序列号,会重复执行最小序列号,开始重新执行算法,这种算法是棒棒糖算法
     增长方法:线性增长
    32个bit位里面,其中的31bit是代表序列号的,第一个bit位代表正负,1为负数,0为正数
    最小的序列号十六进制数:0x80000001  = 1000 0000(80)
                                 -0000 0001
                                  -ffff ffff
                                   00000000
                                    7f ff ff ff
    OSPF序列号增长需要100多年用完
    LSA序列号用到两个算法:(1)线性增长 (2)棒棒糖算法
     
    checksum:对LSA做一个哈希,保证LSA的可靠性,防止窜改
     
    链路类型有4种:
    LINK类型                              LINK-ID             LINK-DATA
    Transit                              DR接口IP地址        本接口IP地址
    Poinit-to-point(P2P)          邻居的Router-id     本接口IP地址   
    Stubnet                             网络前缀地址        掩码地址
    Virtul-link 虚链路               邻居的Router-id     MIB的接口ID(本接口IP地址)
     
    //看OSPF里面的LSU报文
    Do Not Age:如果这个比特位置位,1,这个LSA永远不老化
    Flags:只有在routerLSA里面才包含,如何知道网络中是 虚链路/ASBR/ABR   -  V / E /B
     注:在Router-LSA中包含3个flag位。
        1、Vbit 标识虚链路
        2、Ebit 标识是ASBR
        3、Bbit 标识是ABR
     
     
    在OSPF中的序列号如何判断LSA的新旧?
    收到一条LSA之后需要和我的LSA做个比对,用新的LSA去代替旧LSA
    1、比较序列号,序列号越大越新。
    2、如果序列号一样,比较checksum值,越大越新。
    3、如果checksum一样,比较LSA AGE,如果LSA AGE等于MAX AGE(3600)为最新。说明这条LSA是需要马上被老化掉的
    4、如果LSA AGE不等于MAX AGE,需要运行Maxage diff算法,比较接收到的LSA和本地保存的LSA的AGE时间差,如果时间差大于15分钟,LSA AGE越小越新,如果小于15分钟则认为是一样的,忽略。
     1.R4转发时延设为500s,经过R2加500,经过R3加500s,变为1000s
    ,约等于16分钟
    2.R3到R4的时间1000多s,而R4到R3约为2秒
    3.现在LSA age> max age 15分钟,R4到R3的LSA会变为新的替换掉R3到R4的 LSA
     
    【实验演示】1:21

    2类LSA(Network LSA):
    3类LSA(Network summary LSA):
    4类LSA(ASBR summary LSA):
    5类LSA (AS External LSA):AS外部的LSA
    6类LSA:组播的LSA,用于MSPF
    7类LSA(NSSA LSA):
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/11287198.html
Copyright © 2011-2022 走看看