ISIS是一个分级的链接状态路由 协议,基于DECnet PhaseV 路由算法。ISIS可以在不同的子网上操作,包括广播型的LAN、WAN和点到点链路。ISIS是一个链接状态 协议,实际上与 OSPF非常相似,它也使用Hello 协议寻找毗邻节点,使用一个传播 协议发送链接信息。ISIS消息使用序列号,但它只是一个简单的加法计数器。当计数器计到最大值时,一个ISIS 路由器没有别的选择,只能伪造一个错误触发对所有旧信息的刷新。然而,因为序列号有3 2 比特长,使得到达最大值之前有很大的序列号空间,所以这不是什么问题。但是,至少存在两个技术问题:ISIS使用一个小的度量值(6 比特),严重限制了能与它进行转换的信息;而且链接状态也只有8 比特长, 路由器能通告的记录只有256个。一个非技术问题是ISIS受OSI约束,使得与 OSPF相比它的发展比较缓慢。这个限制的原因是由于SPF的要求;但现在的Wide-metric使这个范围变成24位的扩展解决了这个问题。
  一个非技术问题是ISIS受OSI约束,使得以前与 OSPF相比它的发展比较缓慢。但现在的ISIS在非OSI即RFC方面(Integrated)ISIS有了很多的扩展使得他的发展比 OSPF更容易实现对新的要求的支持如IPV6或者TE而且更简单易实现
  
  一个 路由器是intermediate system(IS),一个主机就是end system(ES),在一个主机和 路由器之间运行的 协议叫ES-IS, 路由器路由器之间运行的 协议是IS-IS
  
  一个subnetwork属下的接口叫:subnetwork point of p_w_upload(SNPA),它只是一个概念上的东西,实际上它是一个subnetwork提供的服务点,由SPNA定义的,不是实际的物理界面,SNPA的概念特性对应于子网的概念特性。
  
  PDU:就是一个OSI层上的一个节点到它的另一端(peer)的对应层上的节点,所以一个帧也叫做Date Link PDU(DLPDU),也因此一个网络层的packet也叫做network PDU(NPDU),这个date unit功能类拟于 OSPF的LSA,我们称它为Link State PDU(LSP),与LSA不同的是它封装在 OSPF报头之后,然后才到IP数据包。
  
  an LSP is itself a packet.
  
  =====================
  ISIS AREAS
  =====================
  ISIS和 OSPF一样建立一个双层分级结构拓扑,但和 OSPF不同的是ISIS划分area是连接中,也就是说两台 路由器中间来划分area
  
  L1_Router---------|----------L2_Router
  
  以上的竖线就是ISIS划分的area的地方,而 OSPF则不是,它是在一个 路由器当中划分的,一个 路由器中只要有两个接口接到不同的area,这个 路由器就叫做ABR

  
  area0-------ABR_Router------area1
  
  ISIS中对 路由器的称呼又和 OSPF又所不同,它只有三类,一个是完全在一个area内的, OSPF叫内部 路由器,ISIS叫L1,而 OSPF的ABR在ISIS中叫做L1/L2,还有一类是backbone里的 路由器,全都叫做L2,这样,L1/L2 路由器就会维护两个line state datebase,而与ABR不同的是,L1/L2 路由器不通告L2的路由给L1,因此所有的L1 路由器永远不会知道area外的路由,这种情况和 OSPF的tutally stubby area是非常像的,如果L1内的路由目的地是在自已的area以外,这个L1路由将被转发到一个L1/L2 路由器上,而L1/L2 路由器传送一个L1的路由到另一个area时,它在LSP设置一个bit叫Attached(ATT) bit9来告诉别的L1 路由器这条路由可以到达。

  
   OSPF用spf算法来计算一个area内的 路由器,而ISIS在这一点上也是不同的,它在内部area (inter-area) 时所使用的方法是distance vector算法。
  
  ISIS中L1/L2 路由器维护两个分离的L1和L2的link state datebase,将计算完全独立的L1和L2拓扑自已SPF tree。
  
  ISO 10589 中说ISIS 路由器可以使用virtual link来连接物理分离的area到backbone,这和 OSPF是一样的,但是这个功能CISCO就做不到的,反而别的 路由器生产商可以做到。
  
  =================
  AREA ID
  =================
  一个L1,也就是说完全在一个area内的 路由器,它的area ID或者说area address是与该 路由器的全部参数有关,也就是说不是什么一个接口的最高IP地址就能决定一个area ID,这和 OSPF又是大大的不同。ISIS可以有上限为三个的area address,这在area transitions的是候是很有用的。
  在一个domain中,一个ISIS的 路由器一定要有一个唯一标识,这可以用system ID来完成,这个system ID与 OSPF的router ID是一样的,area ID和sytem ID可以用一个地址,==========both the area ID and the system ID are defined on an ISIS router by a single address the network entrigy title。
  
  注:system ID就是router ID,在area内的时候做识别用,area ID则在area之间做识别用。
  
  =================
  Network Entity Titles
  =================
  虽然ISIS使用TCP/IP,但它仍然是CLNP 协议,因而ISIS中跑的数据包叫CLNS PDUs,这样子就算一个完全是IP环境,一个ISIS的 路由器也一定有ISO地址,ISO地址就是一个network address,ISO 8348.10 描述network entity titles,长度可以是8-20 字节(octetes)它描述该设备area ID and system ID,
  
  注:NET是为一个ISIS路由进程指定的区域地址和系统标识。该参数可以是一个地址,也可以是一个名字。

  
  ISO为不同的系统设计了很多东西给Network entity titles,这个NET的地址格式可以有很大的灵活性和扩展性。NET可长可短,包含的信息可多可少,这要视忽你的需要,但是有一点要记住,在一个routing domain里,system ID的长度一点一样!一般来说是6个字节,也一般使用标识的接口的MAC的地址。当然,system ID在一个routing domain一定要是是独一无二的。
  
  ==================
  ISIS Functionla Organization
  ==================
  OSI model 中的network layer是由两小layer组成的,一个是subnetwork independetn sublayer, 下面的半层是subnetwork dependent sublayer,根据名字来看就知道dependent sublayer与下面的date link layer有着莫大的关系,而independent layer则独立的layer。当然,network layer要再细分会分成更复杂,但这时太不细讲了。
  
  subnetwork dependent functions
  它把不同类型的date link的帧规律化,再上交给dependent layer
  下面是它的具体功能:
  -从指定的不同的subnetwork接收或者发送PDUs。
  -在subnetwork交换ISIS的hellp PDUs来发现邻居和建立adjacentcies,
  -维护adjacencies

  -链路信号分离,或者说传送OSI的PDUs的过程和传送IP数据包的过程
  
   OSPF中定义了四种网络类型,而ISIS中只有两个,呵呵,这就太好了,总算看到比 OSPF简单的东西了,以前在看 OSPF四种拓扑时曾晕倒数次,这下对这里应该快速浏览一下就行了吧。
  ISIS只有两种类型,一种是broadcast subnetwork 和 point to point 或者说是 general topology subnetworks,
  broadcast subnetwork 就算于 OSPF的multi-access
  p to p 就是nonbroadcast, subnewwork 可以是 PVC,像T1,又或者用动态来建立,如x.25的SVCs。
  好了,这里拓扑就已经讲完了
  
  ======================
  neighbors and adjacencies
  ======================
  ISIS用交换ISIS hello PDUs发现邻居,10秒发一次,这和 OSPF又是一样的 ,改这个参数用 isis hello-interval 命令

  虽然这个hello PDUs在broadcast和p to p 这两种拓扑中略有一点不同,但是本质信息却是相同的,如自已的识别,能力,发heloo的接口参数。如果两个邻居各自能力和接口参数协商好了,那他们就成为adjacent了。
  
  ISIS的L1和L2的邻居是分开来========isis froms separate adjacencies for L1 and L2 neighbors. L1 router from L1 adjacencies with L1 and L1/L2 neighbors, and L2 router from L2 adjacencies with L2 and L1/L2 neighbors. neighboring L1/L2 router from both an L1 adjcacnecy and an L2 adjacency. 一个L1和L2 路由器不会adjacent关系
  
  一旦adjacency的关系建立后,hello PDUs就扮演keepalive的角色,呵呵,好熟悉喔
  关于hold time 的概念下面举一个例子,A 路由器在hello中还有一个hold time的参数,通知它的邻居B在宣告A 路由器完蛋前需要等等下一个hello的时间有多久,如果我没记错的话 OSPF好像是4次。这么说他比 OSPF收敛要快10秒了。改这个参数用 isis hello-multiplier,呵呵,命令太多,比较难记,不过很多命令都有规律,一般改 OSPF的东西前面的命令是 ip ospf,不懂时打个?号就行了,而改ISIS的东西用 isis ? 试试
  
  如果想看ISIS的neighbor表可以用:show clns is-neighbors
  在这个命令中
  system id 和 interface就不说了,state 可以是 init 表明邻居是adjacent,priority参数是选DR时用的(broadcast network)
  circuit ID的意思是这样的,它的第一个字节说的是ISIS接口的唯一标识,如果这个接口是在一个broadcast multiacess network里,那ciscuit ID 将与DR的system ID并置,就是接在一起的意思。和这个全部东西加起来就是大家所知的LAN ID,(又来一个新的ID,faint)或者叫它pseudonde(匿名)ID更好一些,下面兴个例子
  circuit ID是0000.0c76.5b7c.02
  system ID是0000.0c76.5b7c
  pseudonode ID是02
  
  最后一个是adjacency的格式:
  intergrated ISIS的格式永远是phase v
  OSI/DECnet phase V.
  indicating OSI/DECnet phase v. the only other adjacency FORMat is DECnet phase IV.