zoukankan      html  css  js  c++  java
  • 4.1【OSPF】NP十二班第七天OSPF的SPF算法&外部路由选择

    SPF算法&外部路由选择

     LSDB通过描述一个有向图来描述网络拓扑结构
     
    帧中继NBMA网络(非广播多路访问)
    R2到R1的距离:10
     R2到R3的距离:10
    计算设备到网段的距离
    (R1、R2、R3在同一个网段之内)
     

     
     
     
     
     
     SPF算法的步骤:
    1、计算自己到达节点(路由器)的距离(transit、point-to-point、virtual-link)
    2、计算到达叶子的距离(路由条目)的 距离(stubnet)
     
     1.首先计算R2到达R1的距离,10
    2.计算R2到2的距离,节点的距离加上R1所通告的路由的距离,10+200=210,累加COST值
     
    以RT1为根节点
     
    1.以RTA为根节点
    2.查看自己的Router LSA
    分析与自己相邻节点的网络类型,生成候选列表
    P-2-P:连接节点的链路
    StubNet:路由
     
     
    3.计算到根最短路径的相邻节点
    一台设备以自己为根,首先去看自己发送的1类LSA,通过1类LSA去看有哪些链路信息是跟节点互联的,将这些链路信息全部放到候选列表里面,在候选列表中找出最短路径;把最短路径放到最优列表里面,同时将这个链路信息从这个候选列表里面删除掉,最优的放到最短路径树里面
     
    4.RTA选择了RTB,现在RTA会去看RTB所通告的Router LSA,看RTB上面有哪些链路信息,看RTB所通告的Router LSA;在点到点里面,LinkID是邻居的router ID,可以通过这个去查邻居,RTB通告的LSA。
     
     5.通过RTB,进行扩展
    通过1类LSA只能知道到达这个网段N6的距离,但并不知道这个网段上是否还有其他节点,通过DR通告的2类LSA,知道这个网络上有哪些节点信息
     
     通过这个2类LSA,知道这个网络上有哪些节点,下表的是网络上节点的router-id,然后可以把这些设备的router-id放到候选列表中
     
    会保持COST值最小的 一个,3和4中随便选一个,比如现在把3放到最短路径树列表里面,可以获取一个LINK ID,根据这个LINK ID再去查,查到3多通告的一个router LSA,根据这个LSA再去看3所通告的一个链路信息
     
     
    因为这个Transiet 10.3.1.1已经在最短路径树里面,把4放到候选列表里面,这样候选列表为空,再看4所通告的LSA,发现点到点(P-2-P)和TransNET(广播网)已经在最短生成树里面不需要放。
     6.通过计算把所有的最短路径树列表里面的LINK ID全部看完了,看完以后候选列表为空,可以画出图。通过第一轮计算,可以计算出这个网络上有哪些节点,可以把自己到节点的距离算出来
     

    7.第二步,需要看每一个节点所通过的stubNet的链路类型,这些都是路由,累加就可以了,根据stubNet扩展叶子
     
     
    通过这两轮计算,可以计算出到达节点和到达叶子的距离
     
    为什么2类LSA用的是DR接口的IP地址而不是DR设备的Router id?
    因为每台设备都会用Router id去表示一个Router LSA,如果用Router ID作为LINK ID使用的话,在广播网里面可能只会找到DR设备所通告的Router LSA而找不到2类LSA,为了区分2类LSA才用的接口IP地址,它的目的是需要将DR所通告的Router LSA和2类LSA所区分开,用不同的地址来表示。
     
    一边是广播网,一边是点到点,为什么可以建立邻居传递LSA但是没有路由?
    因为他们两个的SPF算法不一样,算不出来路由
     
    为什么2类LSA用的是DR接口IP地址?
    这种做法是用于区分DR所通告的1类和2类LSA
     
    【实验配置】:一边是点到点,一边是广播网
     
    53:40
    把1改成广播网 ,2改成点到点
     
    在R2上有1发送的Router LSA
      以R2为根,计算到达其他节点的距离,需要看R2自己所发送的Router LSA
    R2#show ip ospf database router self-originate       //查看自己所发送的Router LSA
     
     有两条链路:第一条是 点到点的 类型,第二条是Stub Network
    选点到点的类型,计算到达节点距离,需要将LINK ID和Metric放到候选列表里面;
    接下来利用LINK ID去查本地的LSDB,这个LINK ID是对端设备的Router ID;
     
    show ip ospf database 12.1.1.1
     此时,有一个Stub Net,有一个Transit ;把Transit Network放进去,把12.1.1.2放进去,这个Metric是10,再去查12.1.1.2
     
    show ip ospf database network 12.1.1.2
    会发现并没有LSA,所以会造成节点计算有问题
     
    通过一步一步来查,会发现无法执行SPF算法,两边可以正常 建立邻居有LSA但没有路由条目。

    如果在IOU2上把e0/0的点到点网络类型改为NBMA非广播网是否可以建立邻居关系是否可以计算路由?
     调整Hello时间
     show ip route ospf
     会发现有路由,因为广播网和非广播的计算方法一样的,在广播网和非广播网里面都会选举DR和BDR,但是一边点到点,一边非广播不行。
    ***********************************************
    5类LSA
    AS  External  LSA
    每一条外部路由都会生成一条5类LSA去表示
     show  ip ospf database external 1.1.1.0    看详细信息 
     Metric Type :2  //代表2类的外部路由:OE1 或者OE2
    Metric:20             //种子度量,不管重分发什么路由Metric值都是20
     
    Forwadr Address:转发地址
    External Route Tag:外部路由的标签
    4) AS external LSA:
     
    R2#show ip ospf database external 1.1.1.0
     
                OSPF Router with ID (23.1.1.2) (Process ID 1)
     
                    Type-5 AS External Link States
     
      Routing Bit Set on this LSA in topology Base with MTID 0
      LS age: 241
      Options: (No TOS-capability, DC, Upward)
      LS Type: AS External Link
      Link State ID: 1.1.1.0 (External Network Number )
      Advertising Router: 12.1.1.1
      LS Seq Number: 80000001
      Checksum: 0x424C
      Length: 36
      Network Mask: /24
            Metric Type: 2 (Larger than any link state path) \有两种metric type,分别是1和2。
            MTID: 0 
            Metric: 20  \思科中所有引入的路由的默认metric值为20,称为种子度量,可以手工修改。
            Forward Address: 0.0.0.0 \转发地址,可以避免次优路径。
            External Route Tag: 0 \为外部路由增加TAG,便于路由控制。
     
     5类LSA中什么情况下才会填充FA地址? (FA地址就是填充外部路由下一跳的地址,如果外部路由没有下一跳则FA地址为空)
     1、将到达外部路由下一跳的出接口宣告进OSPF
     2、接口的类型不能是点到点或者点到多点
     3、接口不能是一个PASSIVE接口
     
     注:如果5类LSA中填充了FA地址,那么外部路由只计算到达FA的距离,不计算到达ASBR的距离。
     
     计算FA地址的前提条件:到达FA地址的路由必须是OSPF域内或者域间路由,其它类型的路由不能参与计算。这么做的原因是为了避免选路造成的环路问题。
     
     
    默认情况下重分发进OSPF的外部路由类型为OE2,OE2不累加转发链路COST,而OE1是累加转发链路COST值。所以OE1比OE2更加精确。
     

     
    OSPF中为什么会出现次优路径?Forwarding Address怎么填充?
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Serverless 解惑——函数计算如何访问 MySQL 数据库
    Kubernetes 会不会“杀死” DevOps?
    开发函数计算的正确姿势——使用交互模式安装依赖
    从零开始入门 K8s | 调度器的调度流程和算法介绍
    eclipse中如何自动生成构造函数
    微服务架构中API网关的角色
    JAVA设计模式之责任链模式
    谦先生的程序员日志之我的hadoop大数据生涯一
    谦先生的bug日志之hive启动权限问题
    CSS盒子模型之详解
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/11389701.html
Copyright © 2011-2022 走看看