OSPF与ISIS的对比

OSPF与IS-IS在区域划分上的区别

在OSPF中,一个路由器的不同接口可以属于不同区域;在IS-IS中,每个路由器都只属于一个区域

在OSPF中,Area 0被定义为骨干区域,其它区域为非骨干区域;在IS-IS中,单个区域没有骨干与非骨干的概念

在OSPF中,只有同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发;在IS-IS中,Level-1和Level-2级别的路由器都采用SPF算法,分别生成最短路径树

   

OSPF支持的网络类型与IS-IS支持的网络类型

OSPF支持的网络类型:

  • P2P
  • NBMA
  • Broadcast
  • P2MP

IS-IS支持的网络类型:

  • P2P
  • Broadcast

   

OSPF中的开销值和IS-IS中的开销值

OSPF中的开销值:

  • 每一个激活了OSPF的接口都会维护一个接口的Cost值
  • OSPF以"累计Cost"为开销值,也就是流量从源网络到目的网络所经过所有路由器出接口的Cost总和

IS-IS中的开销值:

  • IS-IS接口的Cost在缺省情况下不与接口带宽相关,无论接口带宽多大,缺省时Cost为10
  • 在实际部署中,IS-IS也支持根据带宽调整Cost值
  • IS-IS以"累计Cost"为开销值,也就是流量从源网络到目的网络所经过的所有路由器出接口的Cost总和
  • IS-IS中Cost的开销类型:
    • Narrow类型(使能IS-IS的接口下最大只能配置值63)
    • Wide类型(使能IS-IS的接口开销值可以扩展到16777215)

   

OSPF中的报文和IS-IS中的报文

OSPF中的报文

  • OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式
  • OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89
  • OSPF的5种类型报文:
    • Hello:发现和维护邻居关系
    • Database Description(DD):交互链路状态数据库摘要
    • Link State Request(LSR):请求特定的链路状态信息
    • Link State Update(LSU):发送特定的链路状态信息
    • Link State Ack(LSAck):确认收到的LSA

    OSPF中Hello报文发送的时间间隔:缺省值10秒

    OSPF中Hello报文失效时间:缺省值40秒

IS-IS中的报文

  • IS-IS报文是直接封装在数据链路层的帧结构中的
  • PDU(Protocol Data Unit,协议数据单元)可以分为两个部分:报文头(IS-IS Header)和变长字段部分(Variable Length Fields)
  • 其中IS-IS Header可以分为通用头部(PDU Common Header)和专用头部(PDU Specific Header),对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而又所差别
  • IS-IS的3种类型报文:
    • IIH(IS-IS Hello):用于建立和维持邻居关系
      • 广播网络中的Level-1路由器使用Level-1 LAN IIH(type:15)
      • 广播网络中的Level-2路由器使用Level-2 LAN IIH(type:16)
      • 点对点网络种使用P2P IIH(type:17)
    • LSP(Link State PDU):用于交换链路状态信息
      • Level-1 LSP(type:18)
      • Level-2 LSP(type:19)
    • SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整和同步
      • CSNP:
        • Level-1 CSNP(type:24)
        • Level-2 CSNP(type:25)
      • PSNP:
        • Level-1 PSNP(type:26)
        • Level-2 PSNP(type:27)

    IS-IS中IIH报文发送的间隔时间:缺省值10秒

    IS-IS中IIH报文失效时间:缺省值30秒

       

OSPF中邻接关系的建立和IS-IS中邻接关系的建立

在OSPF中邻接关系的建立

  1. 建立邻居关系
    1. 路由器会向目的地址为组播地址224.0.0.5,并且和它处于相同网段的设备发送Hello报文(报文简单记住四要素:Router ID、认证字段、Area ID,Neighbor字段,此时的Router ID就是路由器自己的Router ID,Neighbor则为空)
    2. 假设现在R1发送了Hello报文给了R2,R2在收到Hello报文后,会将收到R1报文的这个接口状态设置为Init状态,并将R1发送过来的Hello报文中的Router ID放到自己路由器的邻居表中,并发送一个包含自己Router ID,Neighbor为R1 的报文给R1(以组播方式发送,地址为224.0.0.5)
    3. R1收到R2发送过来的Hello报文后,查看报文中Neighbor字段是自己,就将自己收到R2报文的这个接口的状态设置为2-Way状态,并以同样的方式,将R2发送过来的Hello报文中的Router ID放到自己路由器的邻居表中,并发送一个包含自己Router ID,Neighbor为R2的报文给R2(以组播方式发送,地址为224.0.0.5)
    4. R2收到报文后,检查报文中的Neighbor字段是自己,就将自己接收到R1Hello报文的接口状态设置为2-Way状态

    这样,R1和R2两台路由器的接口都建立起了双向的2-Way状态,邻居关系建立起来

  2. 邻接关系建立
    1. 如果是广播网络,则进行DR和BDR的选举,选举的规则:
      1. 接口的DR优先级越大越优先
      2. 接口的DR优先级相等时,Router ID越大越优先

      注意:接口的DR优先级设置为0是,表示该路由器不参与DR/BDR的选举

      DR/BDR的选举是非抢占式的

    2. R1和R2两者已建立了邻居关系。当R1的邻居状态变为ExStart状态后,R1会发送第一个DD报文(此报文中I-bit置位,表示这是第一个DD报文,M-bit置位表示后续还有DD报文要发送,MS-bit置位,表示R1宣告自己是Master,DD序列号被随机设置为X)
    3. 同样R2的邻居状态变为ExStart状态后,R2会发送第一个DD报文(此报文中的I-bit置位,M-bit置位,MS-bit置位,DD报文随机设置为Y)。由于R2的Router ID较大,所以R2将成为真正的Master。收到此报文后,R1会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为ExChange状态
    4. 当R1的邻居状态变为ExChange后,R1会发送一个新的DD报文(此报文中包含了LSDB的摘要信息,序列号设置为R2在上一步骤中使用的序列号Y,I-bit不置位,表示这不是第一个DD报文,M-bit不置位,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit不置位,表示R1宣告自己是Slave)。收到此报文后,R2将邻居状态从ExStart变为ExChange状态
    5. 当R2的邻居状态变为Exchange后,R2会发送一个新的DD报文(此报文包含了LSDB的摘要信息,DD序列号为Y+1,I-bit不置位,M-bit不置位,MS-bit置位,表示R2宣告自己是Master)。
    6. R1开始向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的,并且在本地LSDB中没有的链路状态信息
    7. R2向R1发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后,且没有其他待请求的LSA后,会将邻居状态从Loading状态变为Full状态
    8. R1向R2发送LSAck报文,作为对LSU报文的确认

       

IS-IS中邻接关系建立

  • 广播网络中的邻接关系建立过程

    在广播网络中,使用三次握手建立邻接关系

  1. 在Down状态下,R1组播(地址:01-80-C2-00-00-14)发送Level-1 LAN IIH报文,此报文中邻接列表为空
  2. R2 收到此报文后,将自己的邻接状态标识为initial,然后,R2再向R1回复Level-1 LAN IIH,此报文中标识R1为R2邻接
  3. R1收到此报文后,将自己与R2的邻接状态标识为Up,然后,R1在向R2 回复Level-1 LAN IIH,此报文中标识R2为R1的邻接
  4. R2收到此报文后,将自己与R1的邻接状态标识为Up,这样,两个路由器成功的建立了邻接关系
  5. 广播网络中需要选举DIS,在邻接关系建立后,路由器会等待2个Hello报文间隔(缺省值:20秒),进行DIS选举

注意:Level-1 LAN IIH发送的组播地址:01-80-C2-00-00-14;Level-2 LAN IIH发送的组播地址:01-80-C2-00-00-15

DIS的选举规则:

  • DIS优先级数值最大的被选举为DIS
  • 如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DIS

注意:DIS发送Hello PDU的时间间隔是普通路由器的1/3(约3秒),这样可以确保DIS出现故障时能够更快的被发现

  • P2P网络中的邻接关系建立过程

    点到点网络中,邻接关系的建立使用两次握手方式

  1. RouterA接口启动IS-IS后,向RouterB发送一个P2P IIH,报文中携带了自己的System ID和其他信息,但报文并没有Neighbor邻居列表
  2. RouterB接收到Hello报文后,直接将RouterA的邻接状态设置为Up
  3. RouterA也在收到RouterB的P2P IIH报文后将直接将邻接状态设置为Up

   

OSPF中的DR和IS-IS中的DIS的区别

  • 在OSPF协议中优先级为0的路由器不参与DR/BDR的选举;在IS-IS协议中优先级为0的路由器也参与DIS的选举
  • 在OSPF中,当一台新路由器加入后,即使他的DR优先级值最大,也不会立即成为该网段中的DR(即,OSPF中的DR是不会抢占的);在IS-IS广播网络中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS(即,IS-IS中的DIS时会被抢占的),原有的伪节点被删除,此更改会引起一组新的LSP泛洪
  • 在OSPF协议中,路由器只与DR和BDR建立邻接关系,DRother路由器不建立邻接关系;在IS-IS广播网络中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系

   

IS-IS中LSDB同步过程

  • 广播网络中LSDB同步过程

  1. 新加入的路由器R3首先发送IIH报文,与该广播网络中的路由器建立邻接关系,建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(L1:01-80-C2-00-00-14;L2:01-80-C2-00-00-15)。这样,网络上所有邻接都将收到该LSP
  2. 该网段中的DIS会把收到的R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(缺省值:10秒)并发送CSNP
  3. R3收到DIS发来的CSNP报文,对比自己的LSDB,然后向DIS发送PSNP报文请求自己没有的LSP
  4. DIS收到该PSNP报文请求后,向R3发送对应的LSP进行LSDB同步
  • 点对点网络中LSDB同步过程
    • R1先与R2建立邻接关系
    • 建立邻接关系之后,R1与R2会先发送CSNP到对端设备,如果对端的LSDB与CSNP没有同步,则发PSNP请求索取相应的LSP

       

    假设R2向R1索取相应的LSP

  1. R1发送R2请求的LSP的同时,启动重传定时器,并等待R2发送的PSNP作为收到LSP的确认
  2. 如果在接口LSP重传定时器超时,R1没有收到R2发送的PSNP报文作为应答
  3. 则R1重新发送该LSP
  4. R2收到LSP后,发送PSNP进行确认

   

OSPF路由计算和IS-IS路由计算

OSPF路由计算

IS-IS路由计算

  • Level-1路由器的路由计算
    • R1是Level-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Level-1 LSP
    • R1根据LSDB中的Level-1 LSP计算出Area49.0001内拓扑,以及到达区域内各个网段的路由信息
    • R2及R3作为Area 49.0001内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。R1作为Level-1路由器,会根据ATT标志位,计算出指向R2和R3的默认路由

  • Level-1-2路由器的路由计算
    • R2及R3路由器维护Level-1 LSDB,它们能够通过这些LSDB中LSP计算出Area 49.0001的路由
    • R2及R3路由器维护Level-2 LSDB,它们能够通过这些LSDB中LSP计算出Area 49.0002的路由
    • R2及R3路由器通过Level-2 LSP的形式将49.0001的路由发送到Area 49.0002

       

       

  • Level-2路由器的路由计算
    • R4和R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由

   

OSPF中的缺省路由和IS-IS中的缺省路由

OSPF中的缺省路由:

由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5和Type7路由

OSPF缺省路由的应用情况

  • 由区域边界路由器(ABR)发布Type3 LSA,用来指导区域路由器进行区域之间报文的转发
  • 由自治系统边界路由器(ASBR)发布Type5 LSA或Type7 LSA,用来指导OSPF路由域内路由器进行域外报文的转发

区域类型

产生条件

发布方式

产生LSA类型

泛洪范围

普通区域

通过default-route-advertise命令配置

ASBR发布

Type5 LSA 

普通区域

Stub区域和Totally Stub区域

自动产生

ABR发布

Type3 LSA 

Stub区域

NSSA区域

通过nssa [default-route advertise]

ASBR发布

Type7 LSA 

NSSA区域

Totally NSSA区域

自动产生

ABR发布

Type3 LSA 

NSSA区域

注意:

import-route命令不能引入外部路由的缺省路由。当需要引入其他协议产生的缺省路由时,必须在ASBR上配置default-route-advertise命令,发布缺省路由到OSPF普通区域或OSPF的NSSA区域

OSPF路由域中在通告缺省路由前,会比较缺省路由的优先级,如果在某OSPF设备上同时配置了静态缺省路由,要使OSPF通告的缺省路由加入到当前的路由表中,则必须保证所配置的静态缺省路由的优先级比OSPF通告的缺省路由的优先级低

IS-IS中的缺省路由:

在IS-IS中,主要通过3种方式控制缺省路由的生成和发布:

  • 在Level-1-2设备上,控制产生的Level-1 LSP中ATT位的置位情况
  • 在Level-1设备上,通过配置使其即使收到ATT位置位的Level-1 LSP也不会自动产生缺省路由
  • 在IS-IS中发布缺省路由

   

OSPF中的等价路由和IS-IS中的等价路由

当路由表中存在到达同一目的地址,且同一路由协议发现的多条路由时,若这几条路由的开销值也相同,那么这些路由就是等价路由

OSPF中存在等价路由可以实现负载分担

IS-IS中存在等价路由可以采取两种方式:

  • 配置负载分担:流量会被均匀的分配到每条链路上
  • 配置等价路由优先级:针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路

当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担:

  1. 路由优先级:选取优先级高的路由进行负载分担
  2. 下一跳设备的System ID:如果路由的优先级相同,则比较下一跳设备的System ID,选取System ID小的路由进行负载分担
  3. 本地设备出接口索引:如果路由优先级和下一跳设备的System ID都相同,则比较出接口的索引,选取接口索引小的路由进行负载分担

   

   

posted @ 2022-05-21 22:30  hongliang888  阅读(1183)  评论(0编辑  收藏  举报