五、is-is


(一)CLNS及CLNP

   1、iso\osi模型定义了两种数据通信服务类型:CONS(面向连接的网络服务)和CLNS(无连接网络服务)。
      iso\osi是一种网络模型
   2、CONS:面向连接的网络服务。CONP连接的网络协议,用来支持CONS服务。但现在CLNS已经取代了CONS服务。
   3、CLNS:由CLNP协议支持。CLNP无连接网络协议,专为CLNS提供支持的网络协议。有时直接叫CLNS协议。
      
      (1)  clnp:类似于IP协议,但CLNP是OSI模型中的网络层协议,为OSI的传输层提供服务。
             IP协议:是TCP\IP模型的网络层协议。 注意:OSI协议是国际标准的模型。TCP/IP是现在目前internet标准协议。是两个不同的协议。

      (2)is-is是osi协议中的动态链路协议,后来扩展到同时支持tcp\ip协议。 ospf是 tcp/ip下的动态链路协议。

   4、ES和IS

      (1)ES:终端系统。IS-IS协议中如主机、服务器等被表示为终端系统。
     (2)IS:中间系统。IS-IS协议中,路由器为中间系统。

           ES-IS:主机等终端系统与路由器(中间系统)的通信协议。不属于路由协议。用于ES和IS间建立邻接关系,用于数据链路地址到网络地址间的映射。类似于TCP/IP协议中的MAC到IP地址的映射。

           IS-IS:路由器到路由器之间的通信协议。


  总结:  osi模型下的无连接网络服务(CLNS)的网络层协议是CLNP。 动态链路协议(路由协议)是IS-IS。
          IS-IS协议中又有:ES-IS和IS-IS通信协议。


(二)IS-IS路由选择的特点

     1、是链路状态路由协议
     2、在集成的IS-IS中可以支持VLSM-无分类路由协议
     3、使用SPF算法计算最佳路由、而且可触发更新,可快速收敛。
     4、路由汇总及重分发
     5、有效利用带宽及处理器

   
(三)IS-IS路由器种类
  
    1、 IS-IS分两级路由体系

     (1)第一级:即区域内路由,用于区域内路由。IS-IS叫level1级区域或叫l1区域。
     (2)第二级:区域间路由。在区域间交换链路状态信息。IS-IS叫level2级区域或叫l2区域。
     

    2、OSI定义的4级路由层次:

     (1)level-0路由选择:存在于ES与IS之间。准确讲不算路由协议。类似于TCP/IP中的ARP协议。

     任务:在ES和IS之间建立邻接关系
         创建数据链路地址到网络地址的映射。类似于TCP/IP中的MAC地址到IP地址的映射
     ES要将分组发送给另一个ES时,将分组发送给与其连接的区域中的任一个IS,这被称为L0路由。
     (2)Level-1路由选择:存在于同一区域内的多台路由器之间,用于实现区域内路由。在同一区域内通信。
     (3)Level-2路由选择:在区域间进行路由。在同一个域内的多个域间进行路由。
     (4)Level-1路由选择:域间路由选择。类似于IP中的BGP协议。在不同的域中路由分组。一个域相当于一个自治系统AS。用IDRP协议来完成这种功能。

    3、IS-IS路由器种类:

    (1)L1路由器:区域内路由器。通过获取的LSP获得所在区域内的路由。即只负责本区域内路由,获悉所在区域内的路径。属于L1级区域。
    (2)L2路由器:区域间路由器。L2路由器只能属于L2区域。类似于OSPF骨干区域中的路由器。不属于L1级区域。
    (3)L1/L2路由器:属于L1区域,同时和L2路由器相连。同时维护本区域内和区域间路由信息。用于普通区域和骨干区域之间的连接。类似于OSPF的ABR路由器,但不会把L2路由器即区域外的路由信息转发到L1区域内。
  
    L1和L1/L2路由器组成一级区域,即L1区域。 l2路由器和l1/L2路由器之间组成二级区域,即L2区域。但L1/L2路由器属于L1级区域
    IS-IS中不存在骨干区域和常规区域的概念。但L2级区域,类似于骨干区域。
    ospf中的路由器可以同时身兼数职(如可同时是ABR路由器、ASBR路由器),也可以同时属于多个区域,但IS-IS中的路由器只能属于一个区域。



(四)CLNS编址
1、NSAP地址(也叫CLNS地址、CLNP地址)

  
OSI 下NSAP标识一个路由器而不是路由器的一个接口
NSAP 地址是变长的,最长只能为 20 个字节,高位表示区域,低位表示系统
IDP
DSP
AFI
IDI
High-Order DSP
System ID
NSEL
Variable-Length
Area Address (高位)
6
Bytes
1
Byte

AFI:表示机构ID,用来表示地址格式或地址分配机构。
IDI:标识NSAP地址的域。即域标识。(注意域和区域的分别)
DSP:区域标识。用来标识一个区域
system ID:用来标识单台OSI设备。路由器的ID。同一区域中系统ID必须唯一。集成IS-IS中,一般用MAC地址表示系统ID。
NSEL:用来标识选定的服务。大致相当于TCP/IP中的端口号。一般为0。当为0时,被称作NET地址。固定为1字节。

域+区域+系统ID来标识一个NSAP地址。


例:49.0001.1111.1111.1111.00
49 AFI ,表示这是一个本地的、内网的地址; 48 49 就是私网地址.此处没有IDI,即域标识
0001 2 个字节的区域ID,要求是本地唯一,但通常都规划为全局唯一;
1111.1111.1111 6 个字节的系统 ID ,通常用路由器的以太接口的 MAC 表示;
00 NSEL ,通常都设为 00 ,因为对于一个路由器来说它是个三层设备,不需要上层应用;
做实验时可将上面地址简化为 0001.1111.1111.1111.00
NSEL 00 时,就可以把 NSAP 地址称之为 NET-Network Entity Title :(网络实体名)

 



2、SNPA:子网连接点

   提供子网服务的点。SNPA是OSI协议的第二层地址。相当于TCP/IP中的数据链路层,如:MAC地址。X.25,ATM中的虚电路ID,帧中继中的DLCI。
 
3、电路:IS-IS中用用CLNS地址(也叫NSAP地址)来标识整个设备。电路ID来区分设备的不同接口。电路相当于接口。

    

(六) IS-IS PDU

1、IS-IS 头格式

数据链路层报头   PDU特有报头     TLVS

数据链路层报头:都一样。不管是什么PDU,数据链路层报头都是一样的
PDU特有报头:不同的协议会有不同的报头。如:IS-IS报头;ES-IS报头;CLNP报头。



2、IS-IS PDU报头,即下图中三种报头。

OSI PDUs
IS-IS
Data-link header
OSI family 0xFEFE
IS-IS header
first byte is 0x83
IS-IS TLVs

 

ES-IS
Data-link header
OSI family 0xFEFE
ES-IS header
first byte is 0x82
ES-IS TLVs

 

 

Data-link header
OSI family 0xFEFE
IS-IS header
first byte is 0x81
CLNS

 




3、IS-IS PDU种类

(1)hello PDU:用于建立和维护邻接关系。有ESH\ISH\IIH三种HELLO PDU。
(2)link state PDU(lsp):链路状态PDU :用于分发链路状态信息。类似于OSPF的LSA一个意思。
(3)PSNP:部分序列PDU,用于确认和请求链路状态
(4)CSNP:完整序列号PDU,用于描述路由器的LSDB中的完整LSDB表。用于发布完整的链路状态数据库。

IS-IS PDU: 是由 数据链路层报头+IS-IS PDU报头+TLVS组成。
而IS-IS PDU报头又分为  is-is报头,ES-IS报头;CLNP报头。
而每一种IS-IS PDU报头又分为:hello pdu,  lsp, psnp ,csnp报头种类。如:  is-is报头会有  is-is hello pdu ; is-is lsp pdu 。
也会有 es-is 的hello pdu,  es-is 的lsp pdU.



   

(七)拓扑结构


1、广播网络:是LAN接口或多点WAN接口。

   (1)分别建 立L1和L2邻接关系。L1只与L1建 立邻 接关系; L2只与L2建立邻接关系; L1/L2要分别与L1和L2建 立两种邻接关系。

   (2)DIS:广播网络中,选出一台DIS路由器,并由DIS路由器生成一个伪节点,与区域内的同等级的路由器建立邻接关系,并互相通告邻接关系。

            选举DIS的方法:路由器接口优先级最高的作为DIS。优先级相同时,SNPA地址最大的成为DIS。
            DIS的种类:L1  DIS和 L2 dis。 即不同区域层次拥有不同的DIS。一个路由器可以同时作为L1 和L2 级DIS。因为同一个接口的L1和L2优先级可以不同。
            注意点:虽然IS-IS中同区域中的每台路由器都与相邻路由器之间有邻接关系;但不会让区域中每台由器器都相互通告邻接关系。

2、点到点网络

3、链路状态数据库同步和邻接关系

   SNP:序列号PDU:分为CSNP和PSNP。用来确认LSP已收到和确保LSDB同步。
       CSNP和PSNP的格式完全相同,都包含LSP信息。CSNP包含LSDB中的所有LSP信息。而PSNP只包含部分,PSNP用来请求和确认LSP,以及传送部分LSP。

   (1)广播网之LSDB同步

       A:在广播网中(LAN),只有DIS定期多播发送(10S)CSNP,列出其LSDB中保存的LSP。
       B:与DIS相邻的路由器收到DIS发送的CSNP后,把CSNP中包含的LSDB LSP与自已的LSDB相比较。同区域内的L1级路由器接受L1 DIS 的CSNP。L2级路由器接受L2 DIS 的CSNP。
       C:比较后看自已的LSDB是否与DIS的CSNP相同,如果不同时,路由器向DIS发送一个PSNP,以请求遗漏的LSP。 DIS再向请求路由器发送一个应答PSNP,并把遗漏LSP发送给请求路由器

   (2)点到点网络之LSDB同步

       A:点到点链路不定期发送CSNP。CSNP只在点到点链路激活时被发送一次
       B:链路发生改变时,发生改变的路由器向点对点对方路由器发送PSNP。以把变化的LSP发送给对方
       C:对方路由器收到PSNP后,把变化的LSP加进自已的LSDB后,发回一个PSNP确认信息。

   (3)广播网之邻接关系

     IIH PDU 通告区域ID,在LAN中,用不同的IIH分组分别通告L1和L2邻接路由器。

     A: 同一个区域内的L1 、 L1/L2路由器只接受所在区域的L1 IIH PDU。因此只与本区域内的路由器建立一个邻接关系。
     B:L2路由器和L1/L2路由器的L2进程,只接L2 IIH PDU,且建 立L2邻接关系。
  
 (4)点到点网络之邻接关系

      A:在点到点链路上,L1和L2 IIH  PDU的格式相同,但HELLO分组指出了级别和区域ID
      B:在同一个区域内,L1路由器(包括L1和L1/L2路由器之间的链路)之间交换IIH PDU。 指定级别为L1。  并建 立邻接关系。
      C:L2路由器(包括相同区域,和相同域但不同区域的L2路由器)之间建 立L2邻接关系
      D:相同区域内的两台L1/L2路由器,同时建立L1和L2邻接关系。
      E:两台相连,但不在同一区域内的L1路由器可以交换IIH, 但不建 立邻接关系。因为区域ID不同。


(八)IS-IS和OSPF的区别


    1、相同点:

        都是链路状态路由协议
        都技持VLSM,都使用SPF路径算法
        都成功应用于ISP
        都快速会聚。
  
    2、不同点:
   
     
      (1)is-is适用于运营商 ,OSPF适用于企业。

         IS-IS不灵活,大多要手动的分配接口开销,不适合企业使用但对运营商来说不是太大的问题,因为运营商考虑更多的是路由策略的实施控制,所以相对于OSPF的自动metric生成,他们更倾向于手工配置,运营商的核心网通常都使用IS-IS
     
      (2)区域设计:
   
           OSPF采用一个主干区域,其他所有区域都与主干区域相连。OSPF对设计有一定的限制。需要采用一对致的编址结构,以便 能将地址汇总到主干。
    
           IS-IS,采用L1  ,  L1\L2  ,L2 路由器级成的层次结构。区域边界不在路由器上,在链路上。穹使用的LSP少得多。(IS-IS的LSP和OSPF的LSA差不多的意思)。在同一区域中可容纳的路由器更多。可扩展性比OSPF好。IS-IS只需要添加L2或L1\L2路由器即可以扩展主干 。这比OSPF简单。


   (3)
随着规模越大, IS-IS OSPF 的扩展性更强,这个扩展性重点不是体现在能容纳的路由器更多,资源带宽占用更少,而是体现在 IS-IS TLV 上:如果现在网络中出现一种新的应用,这中新应用要求与 IGP 进行交流和通信,如果这种 IGP OSPF 的话,那么需要为此开发一种新的 LSA ,用来让 OSPF 支持这种新应用,但这样做所付出的代价巨大,且老的 OSPF 路由器无法识别而丢弃(就像思科路由器不支持 LSA6 ,也就是 MOSPF ),也就是向后兼容性很差;但如果这种 IGP IS-IS 的话,情况就简单了,它支持任何新的应用都无需开发新的 LSP ,因为它有 TLV-T 代表 type (新特性的名字)、 L 代表 length (新特性字段长度)、 V 代表 value (新特性的具体属性), TLV 相当于一节车厢,而 LSP 相当于一列车,当出现新应用后只需要加挂一节车厢即可,当出现和 OSPF 里类似的无法识别的情况时,不是作丢弃操作,而是跳过不读取而已。 OSPF 为了支持 IPV6 而专门开发了一个 V3 的版本,而对于 IS-IS 来说,无需再专门开发一个针对 IPV6 的版本,只要增加一个新的支持 IPV6 TLV 就可以了。 IS-IS 超强扩展性就在于此。



(九)IP和CLNS环境中集成IS-IS原理

      CLNS原只支持OSI模型,现集成为支持IP。

      1、集成IS-IS NET编址

         即使只使用集成IS-IS的IP路由选择功能,每台IS-IS路由器也必须配一个NET地址。因为集成IS-IS依赖于CLNS路由选择支持。
         在集成IS-IS中,每台路由器都有唯一的NET地址来标识整个路由器,并用NET地址来计算SPF路径树。IP前缀是主机的信息,不参与SPF路径树的计算。
         在集成IS-IS中,用NET地址标识整个路由器,而不是标识路由器上的某一个接口。而在实际IP编址时,确保路由器的每个接口属于不同的子网。ip子网被视为与IS-IS区域相关联的树叶对象。

     2、IS-IS区域路由选择的准则和路由选择表

         IS-IS使用的路由算法是SPF+PRC(部分路由计算)   
         IS-IS根据CLNS协议的LSDB表算出SPF树(L1级和L2级都有自已的LSDB表,并分别算出SPF树)。将最佳路由插入到CLNS路由选择表中。
         IS-ES之间,即一个IS和连接的IP子网之间用IP路由计算出是否可达。即部分路由计算。

         注:
         IS-IS使用OSI路由选择表,即CLNS路由选择表选择到达目的最佳路径。而不是IP路由选择表。
         IS-IS用CLNS协议的LSDB计算到目的地的SPF树。每条路径的总链路度量值决定了到目的地的最短路径。
         L1和L2路由器有不同的LSDB,因此路由器运行SPF两次,分别外地对L1级和L2级。并分别为L1和L2创建 独立的SPF树
        
       因为IP不参与SPF树计算,只通过CLNS计算,所以当一个IS连接的IP子网出现故障时,即树叶IP子网出现故障时,SPF对不受影向,不重新计算。只通过部分路由计算是否可达。
       如果出现故障的IP子网不是树叶子网时,而 是干道时,将扩散到整个网络中。
   
 

(十)配置:

 
    1、定义区域和地址,并启用is-is路由
 
       在配置集成IS-IS前,必须将区域绘 制成图,并制定编址方案。确定哪些路由器为L1、L2、L1\L2路由器;哪些同一区域;哪些接口参与哪种路由选择。规划IP编址方案,以便扩展。
       注意:CLNS邻接关系的两端 可以配置不同的子网IP地址。在IP路由器中,相邻两台路由器接口必须在同一子网内。并且默认将路由器配为L1/L2路由器。

      (config)# router isis {area-tag}         //启用集成IS-IS,并设置进程名。和OSPF的进程号类似。
                 //is-is可以在同一路由器上存在多个IS-IS进程,进程名只对本地路由器有效。
                 //此命令后,自动启动IP路由选择,但CLNS路由选择是被禁用的。如还要启用CLNS路由选择,就要执行下面这条命令。
      
       (config)# clns routing                   //启用CLNS路由选择。还必须在一个支持CLNS路由选择接口上启用 is-is路由选择进程。既要路由IP也要路由CLNS时才需此命令。
      
       (config-router)#net  {net-address}       //设置路由器的NET地址
     
      (config-if)#ip router isis {area-tag}    //接口下启用集成IS-IS。即路由器的哪些接口参与is-is路由选择,支持ip 路由。
                 //在如rip ,eigrp路由协议中,都是用network命令以发布启用路由协议的接口,但is-is中没有此命令,只能在单个接口下用此命令启用。
     
      (config-if)#clns router isis {area-tag}  //在接口上支持clns路由选择。
      
    2、优化 is-is

        (config-router)#isis type {level-1 | level-1-2  |level-2-only }    //修改路由器级别。L1 、L2 、L1/L2。默认是L1/L2。整个路由器生效。
       
        (config-router)#isis circuit-type {level-1  |level-1-2 |level-2-only}  //修改IS-IS接口的级别。只是单个接口生效,接口上定义的覆盖全局定义的。一般用在L1/l2路由器上。
                        //L1/L2路由器虽然需建立L1和L2级邻接关系,但不是所有的接口都需要建立L1和L2两种邻接关系。有的接口只与L1路由器相连就只需L1邻接关系。有的接口只与L2路由器相连,就只需L2邻接关系。所以可以改变接口的级别。

       (config-if)# isis metric {metric} [level-1 |level-2]     //全局修改 is-is度量值。 与多数ip路由协议不一样,IS-IS设置其链路度量值时,不考虑线速和带宽。所有接口度量值都为10。所以计算距离时,只和RIP一样,相当于用跳来计算。取值范围  0---63。总开销不超过1024。
 
        (config-router)#isis metric {metric} [level-1 |level-2]  //接口下修改度量值, 接口上定义的覆盖全局定义的。
 
        (config-router)#summary-address {ipaddress mask}  [level-1 |level-2 |level-1-2]   //路由汇总,默认是 L2路由器。

                       //路由选择协议的可扩展性是适当使用路由汇总的结果。对IS-IS路由器进行配置,使之将某个IP地址范围聚合成一个汇总地址。IP路由汇总为L1/L2,L1,L2。默认为L2。