HCIE-2204 -ISIS

ISIS概述

ISIS属于 IGP 协议中的链路状态路由协议,所以 ISIS 很多工作模式和特点,和 OSPF 都是类似的,比如

        都是支持网络的层次化设计,分为骨干层和非骨干层

        设备之间传递的的都是链路状态信息,不是路由条目信息

        都是支持无线规模的网络

         但是,相比较 OSPF 而言, ISIS 更加的安全,同时扩展性更强,因为 ISIS 的报文时直接封装在 2 层头部后面的,没有 IP 头部,但是 OSPF 的报文时直接封装在 IP 头部后面的,同时 ,ISIS的所有功能的实现,在报文的解构都是亿 TLV 的形式实现的,扩展更强一些。比如 ISIS可以支持 IPv4、IPv6 地址 、CLNP 地址。

        我们平时所说的 OSPF 仅仅支持 ipv4 ,如果想要支持 IPv6 的 话,需要重新开发一个新版本的 OSPF ,比如 OSPFv3 。

        ISIS当年开发出来,主要是为了传输 CLNP地址表示的路由条目。ISIS 协议中的 IS,我们交中间系统,也就是现在的路由器。

        当时的网络称之为 CLNS (  无线的网落服务 ),在网络中的设备都必须配置有地址才可以,而这个就是 CLNP 地址,类似于现在 IP 地址。之前网络中的仍和一个终端设备,我们交 ES( end system ),相当于现在的电脑。

        ISIS 就是现在路由器和路由器之间传递信息得协议,也就是路由协议

        IS-ES ,就是在路由器和终端之间传递信息得协议,类似与现在得 ARP,

所以, ISIS本身就是用于 CLNP 环境中,传递路由信息。但是对于 3 层地址而言,当初出了 CLNP 以外,还有 IP 地址。显而易见的,IP 活了, CLNP 没落了。由此,在设备之间得 IP 路由得 OSPF 活了,在设备之间传递 CLNP 的 ISIS 没落了。

        由于 ISIS 的扩展性太强了,后来又被逐渐的使用了,现在的 ISIS 可以同时支持多种类型的 地址,所以今天的 ISIS 都叫做  " 集成的 ISIS "。

ISIS的工作原理

  • 建立邻居表,包含的是链路了 UP 状态的邻居设备的信息
  • 同步数据库,包含的是整个区域中的所有链路状态信息 ( LSP )
  • 计算路由表,包含的是每个 ISIS 路由器独立计算出来的 路由条目

ISIS的报文类型

  • hello :用于邻居表的建立、维护和拆除
  • SNP : sequenece nember packet,序列号报文
    • 1 CSNP: 完全序列号报文,相当于 OSPF 的 DD 报文
    • 2 PSNP :部分序列后报文,相当于 OSPF 的 LSR ,LSAck
  • LSP : link state packet ,相当于 OSPF 的 LSA

ISIS的基本配置

       

         ISIS 基本概念

  • 区域
    • 与 OSPF 中的区域类似,都分为骨干区域和非骨干区域
    • 骨干区域和非骨干区域的互联原则都是:非骨干区域必须直接连着骨干区域
    • 在 ISIS 中,骨干区域陈伟 Level-2 区域
      • 所谓的 level-2 区域,指的是该区域的中的所有的 ISIS 邻居类型都是 level-2
    • 在 ISIS 中,非骨干区域称之为 level-1 区域
      • 所谓的 level-1 区域,指的是该区域中的所有的 ISIS 的邻居关系类型都是 level-1
    • 为什么 ISIS 中得所有的报文类型都有 level-1 和 level -2 呢?
      • 因为 ISIS 协议中的所有的报文类型,都有 level-1 和 level -2 两种类型
    • 那为什么 ISIS 的报文有分为两种类型呢?
      • 不同类型的设备,就产生了不同类型的报文

  • 进程号
    • 在 ISIS 中,进程号的作用与 OSPF 协议中的作用是完全相同的
    • 不同的 ISIS 进程号,就想让于不同的 ISIS 协议
  • router-id
    • 虽然我们在上面 3 个概念中,在 OSPF 中都找到了对应的概念。但是在 ISIS 协议中,上述的几个概念,是通过一个 地址来体现的,即 NET 地址 (  network entity title )网络实体标识符
  • Net ( 任何一个运行了 ISIS 协议的设备,都必须配置一个 NET 地址  )
    • NET 地址的结构:可变长度,8-20  个字节
      • 分为三个部分:区域号 + 系统 ID + 选择符
      • 区域号:可变的,长度是 1-13 字节。组织的就是区域号
      • 系统 ID :固定长度,长度是 6 个字节。指的就是 router-id
      • 选择符:固定长度,长度是 1 个字节,在目前的 IP 网络中,永远都是 00
      • 注意,上述的 3 个部分,都是以 16进制的数值表示的
        • 特点,永远是以 1 个字节开头,1 个字节结尾
        • 例如: 49.0001.0000.0000.0001.00
        • 选择符 :00
        • 系统 ID : 0000.0000.0001
        • 区域号 : 49.0001

        ISIS配置案例

  • 拓扑

  • 基本配置

    • R1

      undo terminal moniteer
      system-view
      sysname R1
      interface gi0/0/0 
      ip address 192.168.12.1 24
      quit
      isis 1                                           # 指定进程号为 1 如果不选默认为 1
      network-entity 49.0000.0000.0001.00                # 配置 network-entity 地址
      quit
      interface gi0/0/0
      isis enable 1                        该接口宣告进入到 ISIS 进程 1中
      quit 

      display isis peer

      R2

      undo terminal moniteer
      system-view
      sysname R2
      interface gi0/0/1
      ip address 192.168.12.2 24
      quit

      isis 2                                #  指定进程号为 1 如果不选默认为 1
      network-entity 49.0000.0000.0002.00
      quit
      interface gi0/0/1
      isis enable 2                        #  该接口宣告进入到 ISIS 进程 2 中
      quit 

      display isis peer

重要字段解释:

@ system id ,相当于邻居设备的 router-id

@ interface ,表示本地与对端设备建立邻居时候使用的接口

@ circuit id  ,表示的是电路 ID ,其实说的是“ 伪节点 ” ,就是 DIS 或者 DR

@ State ,表示的是邻居的状态,总共有三种 : down --init  ---up

@ holdtime,表示的邻居的最大蠢货时间,默认是 30 S;当该计时器倒计时为 0 的时候,则删除邻

居关系

@ type ,表示的是邻居关系之间的类型

@ PRI ,表示邻居的 “ 优先级 ” ,用于 选举 DIS的

ISIS各种级别的相关解释

ISIS各种级别的含义
IS-level系统 level表示的是路由器产生报文的能力
level-1表示该设备只能产生 level-1 的报文
level-2 表示该设备只能产生 level-2 的报文
level-1-2 表示该设备只能产生level-1、level-2 的报文
circuit-level接口 level表示的是接口收、发报文的能力
level-1     表示该接口只能收、发 level-1
level-2表示该接口只能收、发 level-2
level-1-2表示该接口只能收、发 level-1和 level-2 报文
接口类型,保持默认1/2
R2-L1R2-L2R2-L1/L2
R1-L1L1        无L1
R1-L2L2L2
R1-L1/L2L1L2L1/L2

ISIS 报文分析 ——-hello

        

 重要字段解释:

 PDH Type       # 表示的是 ISIS报文的类型

        ISIS的报文类型,是由设备的类型以及报文的出接口的类型决定的。

                设备的类型:决定了可以产生什么类型的报文,默认都是 Level-1-2

                接口的类型:决定了一个端口上允许发送和接的报文类型,默认都是 level-1-2

        如果互相建立邻居的两个设备之间,他们产生和发送的报文的类型无法兼容,则无法建立邻居

        如果想要修改“ 路由了下 ”,可以使用命令:

                isis 1

                        is-level levle-1 //将该设备的 IS 类型修改为 level -1

                        quit

                验证命令:display isis brief   -----> system level:

[R1]isis 1
[R1-isis-1]is-level level-1

 如果想要修改  “ 接口类型 ”,可以使用命令

        interface gi0/0/x

                isis circuit-type level-1   //指定该接口只能收和发 L1 的报文

        验证命令:display  isis interface gi0/0/x ---> type

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis circuit-level level-1
[R1-GigabitEthernet0/0/0]quit

 

         可以看到此时 Type 已经由 L1/L2 变成了 L1

 Max Areas : 一个 ISIS 路由器可以同时加入最多 3 个ISIS 区域;该参数是可以修改的,如果不                           同,则无法建立邻居。

System ID : 表示的是发送这个 ISIS 报文的设备系统 ID,不能相同

Holdtimer  :表示的是“ 如果在改时间内无法接收对方发送过来的数据包 ”,则删除邻居。在需要选                    举 DIS 的“ 广播网络环境 ” 中,DIS的 holdtier 是 9S;

                      非 DIS 的 holdtier  是 30 S;

                        并且,DIS 的 hello 时间是 3S。非 DIS 的时间是 1/3         

   

 priority:优先级,默认是 64.用于 DIS 的选举

Area  Address :表示的是发送这个 ISIS 报文的设备所属于的区域,

                        相同区域的设备,可以建立 L1 的邻居,也可以建立 L2 的邻居

                         不同区域的 设备,只能建立 L2 的邻居

interface Address :表示的是发送这个 ISIS 报文的接口的 IP 地址。想要建立邻居的话,接口的 IP                                地址必须能够互通才可以。

所以,能够影响 ISIS 邻居建立的因素:

  1. 接口的 IP 地址必须互通
  2. 双方的设备类型和接口类型,必须兼容
  3. 双方支持的最大区域数,必须相同
  4. 系统 ID,不能相同
  5. ISIS 认证,必须成功
  6. ISIS 接口的网络类型必须相同( 要么都是广播,要么都是 P2P )修改接口的网络类型的命令:

        interface gi0/0/x

                isis  circuit-type p2p -->   修改为点到点

               undo  isis  circuit-type boardcast     修改为广播

           

ISIS数据分析

        ISIS数据库字段

在ISIS 协议中,数据库分为两种: L1 数据库和 L2 数据库

一个 ISIS 路由器到底有哪种类型的数据库,完全取决于路由器的“ 系统类型 ”

 display isis lsdb         # 查看 ISIS 数据库

以上显示的都是 ISIS 数据库中的 LSP 的简要信息

LSPID ,表示的是 LSP 的名字,由三部分组成;

                系统 ID,表示这个 LSP 是由那个 设备产生的;

                伪节点标识符,表示该 LSP 是不是由 DR产生的;

                                        如果该字段是 0,这说明不是 DR 产生的,此时也叫 “ 非伪节点 LSP ”,                                                里面包含了路由条目信息

                                         如果该字段不是 0.这说明是由 DR 产生的;类似于 2 类 LSA ,其中不包                                                 含路由条目信息       

                分段标识符,表示这个 LSP 有没有被分段;

                                        如果该字段是 0 ,说明没有被分段

                                        如果该字段不是 0 ,说明被分段了,

                                        同时 ,通过import-ruote 方式引入的路由,也会进入到分段的 LSP 中

Seq Num,序列号,作用于 OSPF  的 LSA 序列号相同。表示 LSP 的新成都。每当 LSP 变化一                                     次,序列号就会自动加 1

Holdtime , 保持时间,类似于 OSPF 中的 LSA 的 age 字段,用于表示 LSP 的有效期。在 ISIS 中

                   ISIS 最大的存活时间是 1800S,并且是倒计时,为 0 时,就删除该 LSP

APP/P/OL,在 LSP 中, 3 个标记位,分别表示了不同的功能;

      ATT:关联位

                如果为 1,说明产生这个 LSP 的路由器,和骨干区域相连

                如果为 0,说明这个 LSP 的路由器,没有和骨干区域相连

        P :该标记位,在 ISIS 中,一直保留,没有使用起来

        OL: overload,超载位

                如果为1 ,说明产生这个 LSP 的路由器,系统资源不足,所以,在计算路由条目的时                             候,就不能将这个路由器作为下一跳转发设备

----------------------------------------------------------------------      、

注意      

虽然我们平时将LSP 分为 L1 的 LSP 和 L2 的LSP,但是,我们从计算路由的角度,还可以将 LSP 分为:

        伪节点 LSP:就是 DIS 产生的,类似于 2 类 LSA ,其中没有路由信息

        非伪节点 LSP,才是 ISIS 真正用来传递路由/计算路由的 LSP

另外,默认情况下:

        L1 区域的路由,会自动的就进入到 L2 区域

        L2 区域的路由,不会自动进入到 L1 的区域

所以,为了实现 L1 和 L2 的互通

        同时连接 L1/L2 区域路由 ( 俗称 OSPF 中的 ABR ),会产生 1 个 ATT位为1 的 LSP传递给自己所连接的 L1 区域的所有路由

        然后 L1 区域的素有系统级别为 level-1 的路由器,收到该 LSP 以后。发现 ATT 为 1,所以就计算出一个“ 默认路由 ”。

所以,通过上面的描述,我们会发现:

        ISIS 的 L1 区域,特别像 OSPF 中的 totally stub 区域

通过 ISIS 来计算路由

  • ISIS的数据库中,包含的是:自己产生的 LSP 以及同区域的邻居设备产生的 LSP
  • LSP 分为:伪节点 LSP和非伪节点 LSP
  • 伪节点 LSP,是由 DIS 产生的,用于表示 DIS 的管理范围,类似于 2 类 LSA,不能用来计算路由
  • 非伪节点 LSP,是任何一个路由器都会产生的 ,类似于 1 类 LSA ,其中 包含的都是自己本身宣告的哪些路由。【 以后在计算路由的时候,应该是仅仅关注“ 非伪节点 LSP ”就可以了 】
    • 未分段的 LSP:包含的都是路由器自己本身的 “ 内部路由 ”,开销等于接口的开销
      • 所谓的 ISIS 的内部路由,指的就是通过 “ ISIS enable   ** ”  启用 ISIS 协议产的路由
      • 每个接口启用 ISIS 以后,都会有一个默认的开销 ——cost ;通常物理接口的开销都是 10,虚拟端口的开销( loopback )默认都是 0
    • 分段的 LSP:包含的都是 路由器的 “ 外部路由 ”,默认的开销都是统一的 64
      • 所谓的 ISIS 外部路由,指的是通过 “ import-route *** ” 选的路由条目 
  • 虽然上述提到的“ 非伪节点 LSP ”可以用来“ 表示 ” 路由,但是真正用来计算路由的时候,仅仅依靠这些 LSP,还是不够的。因为 这些 LSP 中,仅仅包含了路由条目的一部分;网段/掩码的类型,开销值,但是不包含下一跳的 IP 地址
  • 如果想要 “ 完整的计算出路由条目 ”,还要依靠 ISIS邻居神之间的互联接口 IP 地址,该 IP 地址就是路由表的 路由条目的下一跳 IP 地址。而该 IP 地址已经在 建立邻居的时候,通过 ISIS的  hello 报文,互相传递给对方了。并且,我们在设备的 ISIS 邻居表的详细信息中,也是可以产看到这个 IP 地址的 ,命令如下:
  • [R5]display  isis  peer  verbose                                 # 查看 ISIS 邻居的详细信息

                              Peer information for ISIS(1)

      System Id     Interface          Circuit Id       State HoldTime Type     PRI
    -------------------------------------------------------------------------------
    0000.0000.0003  GE0/0/0            0000.0000.0003.01 Up   9s       L2       64 

      MT IDs supported     : 0(UP) 
      Local MT IDs         : 0 
      Area Address(es)     : 49.0001                                邻居设备所在的区域 ID
      Peer IP Address(es)  : 192.168.35.3                       邻居设备的接口 IP 地址
      Uptime               : 00:00:41
      Adj Protocol         : IPV4 
      Restart Capable      : YES
      Suppressed Adj       : NO
      Peer System Id       : 0000.0000.0003     邻居设备的系统 ID

ISIS数据库同步

针对广播的网络环境

  • 与 OSPF 相同,在广播网络环境下,ISIS 认为一个网段中,存在很多的 ISIS 路由器,所以,设备在同步数据库的时候,效率就会降低
  • 所以,为了提高 ISIS 邻居设备之间的数据库同步效率,我们选择一个类似于 OSPF 中的 DR 的设备,叫做 DIS ( 伪节点 ) ,用于实现数据库的快速同步
  • 首先说一下 DIS 的选举原则:
    • 首先,比较的是接口的 DIS 的优先级,数值越大越好,默认是64
    • 然后,比较的是接口的 MAC 地址,越大越好
    • DIS 与 DR 的区别
      • 在 ISIS 中,优先级为 0 的,ISIS 路由器也有资格参与 DIS 的竞选
        • 在 OSPF ,中,优先级为 0 的 OSPF 路由器,不能参与 DR 竞选,只能是 DRother
      • 在 ISIS 中,是不存在备份的 BDIS
        • 在 OSPF 中,可以存在备份的 BDR
      • 在 ISIS中,DIS 是可以被抢占的
        • 在 OSPF 中,DR 是非常稳定的,不允许被抢占
    • 为什么 ISIS 广播环境下,可以不需要 DIS?
      • 因为普通的 ISIS 路由器发送的 hello 报文周期是 10 s,最大存活时间是  30s;即网络故障出现以后,普通的 ISIS 路由器需要 30 S 才可以发现故障,但是作为 DIS 身份的 ISIS 路由器发送报文的速度是非常快的。hello 时间是 3.3s。最大的存活时间是 10s
    • 为什么 DIS 是可以被抢占的?
      • 因为在 ISIS 广播环境中,多个ISIS 路由器之间建立邻居,同步数据库的时候,刚开始的都是“ 全部数据库 ”同步,并且不仅仅是 与 DIS 进行同步。这点与 OSPF 不同
      • 任何两个建立邻居关系的设备,都会进行数据库同步。但是一旦同步以后,DIS 也拥有了整个区域中的所有的数据信息。
      • 所以此时 DIS 就会周期性的发送 CSNP报文( 类似于 OSPF 中的 DD 报文 ),包含了整个数据库中的 所有 LSP 的简要信息,目的就是为了 让大家时刻知道整个数据库的条目的信息变化
      • 如果每个路由器发现自己的数据库的简要信息和CSNP中,完全相同。说明整个区域的 数据库是没有变化的
      • 如果发现不同,则直接发送一个个 PSNP,进行请求那个自己没有的 LSP (  类似于 LSR)此时收到 PSNP 的 ISIS 路由器,就会发送一个 LSP 条目进行更新 ( 类似于 LSA ),为了确保整个数据库同步过程更加的 可靠,ISIS 没有专门弄一个类似于 OSPF 的 LSACK报文,而是告知:让 DIS 周期性的发送 CSNP报文,来变相的实现数据库的同步、确认。

修改和查看 DIS 的优先级

        interface gi0/0/x

                isis dis-priority  *** level -1 / level -2 

                quit

        display isis interface gi0/0/x     查看修改后的 DIS 优先级

        display isis  peer     关注 circuit-id 字段

        display isis interface  查看最后的是 DIS   (   y/y)

  • 针对广播的网络环境
    • 与OSPF相同,在广播网络环境下,ISIS认为一个网段中,存在很多的ISIS路由器。所以,设备在同步数据库的时候,效率就会降低。
    • 所以为了提高ISIS邻居设备之间的数据库同步效率,我们选择一个类似于OSPF中的 DR 的设备,叫做 DIS (伪节点)。用于实现数据库的快速同步。
    • 首先说一下DIS的选举原则:

  
  [R1]display  isis interface 

                       Interface information for ISIS(1)
                       --------------------------------
 Interface       Id      IPV4.State          IPV6.State      MTU  Type  DIS 
 GE0/0/0         001         Up                 Down         1497  L1/L2 Yes/No 

针对点到点的网络环境

        例如 R1 和 R2 建立 ISIS 邻居关系:

  1.  和 R2 都发送一个hello 报文,然后与对方建立邻居
  2.  R1 和 R2 开始同步数据库,首先向彼此发送一个CSNP ( 相当于 DD )通过比较,发现彼此的书苦苦还是有些不同的
  3. R1 和 R2 就开始发送 PSNP ( 相当于 LSR ,)请求自己本地数据库中没有的 LSP
  4. R1 和 R2 就开始 回应 LSP ( 想让与 LSU 中包含的 LSA )
  5. R1 和 R2 收到对方回应的自己想要的 LSP 以后,就直接返回一个 PSNP( 相当于 LSACK ),用于告知对方:已经收到了对方传递过来的 LSP 
  6.  最终,两个设备之间的数据库,就完全同步了。

ISIS路由表分析

  • 内部路由
  • 外部路由
  • 路由属性
    • 优先级
      • 默认是 15,表示的是路由条目的稳定性,仅仅是本地起作用
        • 如果想要修改优先级的 话,使用命令;
          • isis 1
            • preference **      # 修改设备上所有的 ISIS 路由器的优先级
    • 开销值
      • 是基于表示这个路由的 LSP 的传递方向上的所有入端口的开销的累加和,计算而来
      • 默认情况下,一个ISIS 路由最大的开销值是 1024,。所以这样一来,就会导致 ISIS 的网络规模收到了限制,所以 ISIS 的开销属性,是可以分为两种类型的
        • 窄带开销类型:接口默认是 10.最大是 63,路由条目开销最大 1024
        • 宽带开销类型:在该类型中,接口的开销最大是2 的 24次方;路由条目开销是 2的 32次方,【 想要支持更加丰富的上层应用,都必须将ISIS 的开销类型改为宽带 】
        • 如果想要修改ISIS 开销类型,必须确保全网的所有 ISIS路由器的开销类型得是 “ 互相兼容的 ”,强烈建议都是 wide 的类型
        • 配置 ISIS 的cost 类型的命令:
          • isis  1
            • cost-style?
            • compatible ,发两种类型的,收两种类型的
            • narrow ,发narrow,收narrow
            • narrow-compatible ,发narrow,收narrow 和 wide
            • wide ,发wide,收 wide
            • wide-compatible ,发wide,收narrow和wide
          •   如果互相建立 的 ISIS 路由器,他们的 cost 类型。无法互相兼容,就会导致:ISIS邻居依然是存在的,但是路由条目无法计算出来!
        • 配置 ISIS接口的COST 的 命令
          • interface gi0/0/x
            • isis cost ***  level-1 /level-2/ level-1-2
            • quit
          • display isis  interface gi0/0/x
        • 注意:但凡修改 ISIS 的任何命令,都要在回车之前,打个问号,看看是否可以跟 level 参数,确定当前修改的参数,是针对 level-1 的,还是针对 level-2 的
      • ISIS 区域之间的路由传递特点
        • L1 区域的路由,可以自动的进入到 L2区域
        • L2 区域的路由,不会进入到 L1 区域
          • 所以,L1 区域访问 L2 区域或者其他区域链路时候,使用的都是“ 默认路由 ”,而不是“ 精准的明细路由 ”
          • L1 区域的默认路由,都是自己计算出来的
            • 首先,l1 区域的 L1/L2 路由器( 同时连接着 L1 区域和 L2 区域 )会产生1 个 ATT 位为 1 的 level-1 的 LSP [ 该 L1/L2 路由器,必须成功建立 L2 邻居关系 ]
            • 其次, L1 的纯的 L1 路由器,基于该 LSP 计算出一个 L1的默认路由 
          • 正是因为 L1 区域通常使用的”  默认路由 ”访问其他区域,所以在 L1 秋雨存在多个 L1/L2 路由器的情况( 类似于 OSPF 的区域中存在多个ABR 一样 ),就有可能会出现“ 数据转发的次优路径 ”问题。为了解决该问题。我们可以:
            • 在 L1 区域的路由器上,基于数据转发路径的规划,调整“默认路由 ”开销,从而影响数据的转发路径
            • 在 L1/L区域的 L1/L2 路由器上,手动的将 L2 的路由“ 泄露到  ” L1 区域,从而让 L1 区域的路由器获得更多的明细路由,从而影响数据转发路径【 常用手段—— ISIS 路由泄露 】
            • ISIS 路由泄露的配置命令:(   L2 ---L1)
            • 在 L1/2 路由器上配置:
              • isis  { 进程号 }
                • import-route isis level-2 into level-1 {  策略 }
            • ISIS 除了通过 ATT 位,可以计算出来默认路由来,还可以使用类似于OSPF 的方式,来产生默认路由:
              • 第一种:无条件的 产生 ISIS 的默认路由
                • 即不管自己有没有默认路由,都可以通过ISIS 产生 1个默认路由
                  • isis  
                    • default-route-advertise always   # 永远产生 1 个默认路由,但是该命令产生的默认路由,默认只能进入到 L2 的 LSP,
                    • 如果想要在 L1 的路由器上配置 “ 产生默认路由 ”,就必须使用命令:
                      • isis 
                        • default-route-advertise always level-1 # 永远产生 1个默认路由,通过 L1 的 LSP 表示
              • 第二种
                • 即自己本地必须存在 1 个默认路由,才可以产生 ISIS 的默认路由
                  • 确保自己本地路由表中是有默认路由的
                  • 使用下面的配置命令:
                    • isis 
                      • default-route-advertise   # 默认只能通过 L2 的 LSP 表示
                    • 想要在 L1 的 LSP ,通过该方式产生默认路由,,只能:
                      • default-route-advertise level-1
                  • 并且我们总结出规律:
                    • 通过 default-route-advertis 命令产生的 默认路由优先级,要高于 通过  “ ATT ”位计算出来的默认路由
        • ISIS 路由的产生方式
          • 接口下宣告( isis  enable *** )
            • 该方式产生的路由,叫做 ISIS 的内部路由
            • 该方式产生的路由,存在与设备产生的 “ 非伪节点 LSP  ”中 
          • 进程下宣告 (  import-route   *** )
            • 该方式产生的路由,叫做 ISIS 的外部路由
            • 该方式产生的路由,存在于设备产生的 “ 分段 LSP 中 ”
            • 该方式产生的路由。默认情况下,只能进入到 L2 的 LSP 中

             

ISIS区域对比

        ISIS 中的 L2 区域:默认情况下,可以接收任何区域发送guolde路由,以及导入的外部路由

        ISIS 中的 L1 区域:默认情况下,不要外部路由,也不要 L2 区域的路由。所以类似于 OSPF 中的 totally stub 区域

        ISIS 的路由传递 : L2 不会进入到 L1; L1 会自动的进入到 L2

我们看下 R2上的路由:

 R5路由

 

        如果 L2 想要进入到 L1,就得需要 : ISIS 路由泄露( 将 L2 的路由,导入到区域 L1 )

此时再看 R2 路由

 

 

        默认,L1 进入到 L2 区域,是自动的,全部的 L1 路由,都进入到 L2 区域;不可控制

        如果想要控制这种转发行为,也是可以的,但是必须通过命令:

        R3

        isis 1

                import-route isis level-1 into level-2 {  策略 } 

例如:

        在 R4上,L1 区域的路由进入到 L2 区域的时候,不允许 10.10.1.1/32 的过去,其他路由,都是允许的。

        从而,确保 R5 访问 10.10.1.1 /32 的时候,都选择走 R3

R4

        创建 ACL ,匹配感兴趣的路由 : 10.10.1.1/32,然后干掉,允许其他路由

acl 2000

rule 10 deny source 10.10.1.1 0.0.0.0 

rule 20 permit source any 

 

 

 

此时我们可以看到 路由的下一跳已经由 192.168.45.4 换成了  192.168.35.3 了,说明 ACL 已生效

  • 在匹配 路由条目的时候,如果使用ACL,那只能使用“ 基本 ACL ”
  • 基本 ACL 的名字的取值空间为 : 2000-2999
  • 基本 ACL 在匹配路由条目的时候,不精准,只能匹配路由的网段,不能匹配掩码
  • 基本 ACL 的“ 规则条目 ”中,所使用的不是 “ 反掩码 ” ,而是“ 通配符 ”
  • 在 ACK 中的通配符,我们仅仅关系“ 通配符中的  0 ” 所对应的 “ 网段 ”中的 位,必须和我们在 ACL 中写的 “ 条件 ” 是相同的

例如:        

        上述的通配符是 0.0.0.0  ,所以我们在使用这个 ACL 匹配路由的时候

        查看“ 路由条目 ”的所有 bit,因为通配符是 32 bit 的 0,并且。备件仓的路由条目的“ 网段 ” 的 32 bit。必须和我们在 ACL中 写的 10.10.1.1 的所有 32 bit 相同。

        此时才叫做“ 该路由匹配住了 该 ACL ” 只有匹配住了才能执行动作 “ deny ”

        192.168.1.0/24

        192.168.1.0/25

        192.168.1.0/26

        192.168.1.0/27

以上是独立的 4个路由,但是如果我们使用 ACL: 192.168.1.0 0.0.0.0 就可以将上诉的 4 个路由,全部匹配住;

        192.168.1.0/24

        192.168.1.238/25

        192.168.1.192/26

        192.168.1.224/26

以上是独立的 4个 路由,如果使用 ACL : 192.168.1.0 0.0.0.255 既可将上述的 4 个路由,全部匹配住;

在 ISIS 进程中,通过 impor-route isis 命令调用 ACL 

ISIS认证

        ISIS链路认证

        该类型的认证,在链路上配置,仅仅针对hello  报文加密和解密

        最终影响的是ISIS 的邻居表( L1 和L2 的邻居 )

        配置命令:

                接口下配置的明文认证,针对的是 接口上收和 发的 hello 报文;

                        interface gi0/0/0

                        isis authentication-mode simple HCIE

                        quit

 

                  接口下配置的密文认证,针对的是接口上收和 发 的 hello  报文;

                        interface gi0/0/0

                        isis authencitation-mode md5 HUWEI

                        quit

 

        当我们在接口上,通过上述的命令,启用了 ISIS 认证以后

  • 对于发送的报文,是一定要带着秘密的
  • 对于接收的报文,有密码。是一定要检查秘密的 
    • 如果收的报文,有密码,且是正确的,则认证成功
    • 如果收的报文,没有密码,则认证失败
  • 如果一个 ISIS 的接口,没有启用认证:
    • 对于发送的报文,一定没有密码
    • 对于接收的报文,一定不会检查密码相关的内容的
      • 如果收的报文,没有密码,则正常接收
      • 如果收的报文,有密码,直接忽略,正常接收

        ISIS 区域认证

                该类型的认证,是在进程下配置的,仅仅针对 level-1 的 SNP 和 LSP 加密和解密,最终            影响的 L1 的数据库。以及 L1 的路由表

                配置命令

                应该在 L1 区域的所有路由器上都得配置,否则会导致 L1 区域无法同步,从而无法正常          计算 L1 的路由

                        isis  1

                        area-authentication-mode simple HCIE 

 

                或者

                        area-authentication-mode MD5 HCIE

 

        ISIS域认证

                该类型的认证,是在进程下配置的,仅仅针对 level-2 的 SNP 和 LSP 加密和界面,最终影响的 L2 的数据库,以及 L2 的路由表

                配置命令:

        在 L2 区域的所有设备上都要配置该命令。否则影响 L2 区域的数据库同步

                isis  

                domain-authentication-mode md5 HCIE 

或者 

        domain-authentication-mode simple HCIE 

 

 

ISIS路由汇总

        产生背景

        当前的网络环境下,进行汇总,可以实现节省对端设备的系统资源。但是主要的目的就是为了提高网络的稳定性

        因为一旦进行了路由汇总,那么在发送路由的时候就不发送明细路由了,仅仅发送“ 汇总之后的路由 ” ,所以很多明细路由不稳定的时候,对邻居设备是无感知的

       

         汇总配置

  • 在 ISIS 协议中华,无论是内部路由,还是外部路由;无论是 L1 的路由,还是 L2 的路由,都可以进行汇总
  • 在 ISIS 协议中,只有在 “ 产生” 这些明细路由的设备上,才可以进行汇总
  • 如果想要确认明细路由的 “ 产生 ” 设备,就去看包含这个明细路由的 LSP 的 “ 系统 ID  ” 是谁,就可以了
  • 配置命令
    • 假如在 L1 设备 R 1 上,有 4个接口,宣告进入到 ISIS 
    • 然后最这些路由进行汇总
    • interface loopback 1
      • ip address 10.10.1.1 32
      • isis enable 1
      • quit
    • interface loopback 2
      • ip address 10.10.2.2 32
      • isis enable 1
      • quit
    • interface loopback 3
      • ip address 10.10.3.3 32
      • isis enable 1
      • quit
    • interface loopback 4
      • ip address 10.10.4.4 32
      • isis enable 1
      • quit
  • isis 1
  • summary 10.10.0.0 255.255.0.0 level-1

 

 如何写出正确的“ 汇总路由 ” 

        汇总路由的“ 网段 ”  ---指的是被汇总的哪些明细路由的 “ 公共部分  ”

                        针对多个明细路由,相同的位,直接写

                        针对多个明细路由,从那些不同的位开始,后面的全部都写成0

10.10.1.1---》0000   0001

10.10.2.2---》0000   0010

10.10.3.3---》0000   0011

10.10.4.4---》0000   0100

公共部分 :10.10.0.0

汇总路由的“掩码 ” ---指的是被汇总的那些明细路由的“ 公共部分 ”,有多个 bit 是相同的,在上述的例子中, 4 个 明细路由的,前面的 12 bit 。都是相同的,所以此时的掩码是 21

所以,最终汇总路由是: 10.10.0.0/21

 

        

ISIS路由过滤

  • ISIS中不存在针对 LSP 的过滤

  • ISIS中存在针对路由的过滤--filter-policy [ 用法与 OSPF 中,完全相同 ]

    • 入方向 filter-policy ,指的是路由从数据库中进入到路由表中的时候,起作用,,针对任何类型的路由都起作用

    • 出方向 filter-policy ,仅仅是针对通过 import-route 方式引入的路由起作用 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值