魏 红 韩 冰
[摘要]IS-IS是一种等级式的、链路状态式的路由通讯规程。它是通过向整个网络广播连路状态信息,以此建立一个完整的网络结构信息。要设计、操作一个IS系统,IS-IS分为第一级和第二级系统。第一级系统将只与同一区域内的其它第一级系统通讯。而第二级系统将把属于不同区域的路由器连接起来。IS-IS与OSPF非常类似,例如,它们都属于链路状态,使用不同的区域,分级式路由通讯规程。OSPF已经被使用的非常广泛。几年前,IS-IS还没有受到如此广泛的重视,最近以来,越来越多的英特网服务提供商,以及IPV6的应用都对IS-IS这项功能提出要求。对IS-IS和OSPF的功能、为什么要引入IS-IS及其优点进行论述。
[关键词]路由通讯规程 IS-IS OSPF IPv4 IPv6
中图分类号:TN91文献标识码:A文章编号:1671-7597(2009)0310007-02
一、引言
Intermediate System-to-Intermediate System(IS-IS)是一种链路状态的分级式路由规程。它是广播网路链路状态信息到整个网络,从而建立一个完整的一致网络拓扑结构数据库。为了路由器的设计和操作,IS-IS分为第一级和第二级。第一级路由器只与同一区域内其他第一级路由器通讯。第二级路由器用于连接不同区域的第一级路由器。IS-IS与OSPF两者有众多相似之处,如:同属于链路状态式路由通讯规程,都是使用不同的分区,分级式路由通讯规程。由于OSPF已经获得了极为广泛的应用,而IS-IS在以前较少为人们所用,尤其是在IPV4领域。但随着近期较多来自ISP(Internet Service Provider)的要求,尤其是IPV6的越来越广泛的应用,使得IS-IS逐渐引起了人们的注意。本文作者想就IS-IS的一些特点,以及它与OSPF的比较论述一下自己的观点。
二、IS-IS不像OSPF那样需要设定边界
所有的消息由特殊类型标题加上type/length/value(TLV)的这种结构组成。这样一来,就带来了结构上的灵活性、可扩展性、兼容性方面的优势。但也带来了运算上的复杂性,给CPU带来了较多的负担。
三、IS-IS路由规程是工作在数据链路之上而不是工作在IP层之上
所以来自于外部的基于IP基础上的攻击对于IS-IS是无能为力的。但是这也引入了另一个问题--信号传输的优先顺序选择。在拥塞的情况下,当信息包不能被马上传递时,路由器会将它们先放在队列上。很明显寻路规程的信息包应该得到最高的优先级。这对于OSPF来说,因为它使用IP来进行路由规程的通讯,所以是没有问题的。但对于使用数据链路层的IS-IS路由规程来说,优化这种信息比较复杂了。
四、相对应于OSPF的AID(区域ID),RID(路由器ID)这两项是被分开表述的。而IS-IS AID和SysID(系统ID)则是被统一表述在NET(Net working Entity Title)一项下。
五、IS-IS使用三种Hello消息,而OSPF后则使用一种Hello消息
首先,IS-IS在始发于点对点,和广播链路上是使用不同的Hello信息的。在广播链路上Hello类别的不同是建立在“一个潜在的邻居”是否在同一个区域或在不同的区域。在某种局域网链路上传送哪一种Hello是取决于该路由器接口的不同配置。
六、IS-IS“邻接”的建立
当IS-IS双向通讯建立起来以后,IS-IS邻居就认为他们进入了“邻接”状态。这是发生在数据库同步之前,而此之后就可以同步它们的数据库了。IS-IS数据库的同步是一个相对简单、灵活的过程。OSPF使用复杂的状态机来同步它的数据库,受严格的状态机来控制。
七、IS-IS DIS(Designated Intermediate System)系统
IS-IS的DIS(Designated Intermediate Systems)与OSPF DR有以下明显的区别:
1.没有备份DIS。
2.一个有高优先级的IS将会直接换掉已有的DIS。
3.设置优先级为“0”并不意味着此路由器不可能成为DIS。
4.是一个广播网络的网状网“彼邻”连接,而不是只与DIS发生连接。
5.在一个广播网络上,不同的DIS能够同时拥有L1和L2“邻接”。
八、IS-IS区域和路由器类别
同OSPF一样,IS-IS使用两极式结构。所有的区域之间的交通量必须经由更高一级区域来连接,以避免环路。较高一级称作L2(LEVEL 2),较低一级被称为L1(LEVEL 1)。没有预留的骨干区域(0.0.0.0)。这点与OSPF是不同的。
九、IS-IS 数据库的同步
在OSPF和IS-IS之间,数据库同步唯一的相似点是:在一个广播网络上,所有的OSPF 的路由器将与DR来同步;而IS-IS的路由器将与DIS来同步。一个最大的不同点是:OSPF在DR、BDR和DROTHER上是使用不同的组播地址的。而IS-IS只是在L1和L2的“邻接”信号类别上加以区别。而CSNP、PSNP、和LSP都是用组播加以传送,并且所有在广播网络上的路由器都会收到同样的这些信号。
十、区域的设计
为了在两个区域(L1,L2)之间传送路由信息,至少需要一个路由器来连接两个区域,并保留每个区域的链路状态数据库,同时在每一个区域运行分立的SPF运算。OSPF把这种路由器称为ABR(区域边界路由器)。在IS-IS中,L1/L2就类似于OSPF的ABR。
通常情况IS-IS的L1区域是“totally stubby”区域。不会从L2区域传播路由信息到L1区域(但也有例外,请看下文11、L2 to L1路由的渗透)。L1/L2路由器将它所连接的L1区域路由信息传入到与它相连的L2区域。
十一、地址的汇集(Address Summarization)
IS-IS可以在一个L1区域内汇集路由,以简化L2 LS数据库。同时,L1-only路由器不能总结自己的路由,因为这样一来将会引起L1区域内数据库的不稳定。这点和OSPF一样。只有L1/L2路由器可以总结L1区域的路由,然后传送到邻接的L2邻居。
十二、L2 to L1路由的渗透
假如一个L1区域只有一个L1/L2出口路由器,那么就会只有一条缺省出去的道路。这不会引起问题。但假如有多个L1/L2路由器,而可供L1-only路由器使用的信息是有限的,就会限制它们选择最好的出去的道路。所以这时最好从L2区域渗透一些特殊信息到L1区域。RFC 1195是禁止这样做的。所以又制定出了RFC2966,用于新增功能,以允许这样做。
十三、IS-IS虚拟链路
在OSPF中,虚拟链路是用于通过非主干区域,修复被分开的主干区域。IS-IS正好相反,使用虚拟链路是用于修复被分开的L1区域,而这却要通过L2主干区域。IS-IS是主要应用于ISP的,而ISP要么根本不需要L1区域,要么即便有L1区域,L1区域也是完整设计的,所以也许根本就没有用户需要这项功能。
十四、同等费用多条路由(ECMP)
假如有多条路由到一个终点,所有路由费用相等,这叫ECMP,那么像OSPF一样,IS-IS支持ECMP。这时,将会停止工作SPF的运算。
十五、抗攻击性
IS-IS是可以被很多种网络攻击手段攻击的,例如:
1.恶意的改变某些Hello消息中的数据,可以用于断开或欺骗链路那边的IS-IS 路由器。
2.送出哄骗式的LSP消息,例如,假装是从某个已存在的域里发过来的,这样可以引起巨大的交通量、运算量。
3.一个假的或无效的Hello消息,并设置为高优先级,可以引起DIS的重新选择,甚至接受一个根本不存在的DIS。
等等,都可以对之造成攻击。但是我们再仔细想想,这些攻击必须来自于网络内部。因为,IS-IS信令消息是工作在数据链路层的,所以IS-IS是免疫于任何外部网络的IP式的攻击的。而OSPF在这方面却是望尘莫及的。
十六、身份鉴别
IS-IS的身份鉴别类型、数据是被封装在TLV(type/length/value)。TLV类型是10。而后TLV可以被装载在所有种类的IS-IS PDU中。ISO 10589只申明了明文传送密码鉴别方式。其它可用的域值还属于预留区,将来可用。现在已有很多路由器厂家使用这些区域了。有些已经支持下MD5功能了。
十七、平滑重启动
在RFC 3847中,IS-IS平滑重启动使用一个新的TLV,被称做成“启动TLV”,装在Hello消息中传输,这与OSPF相似。
十八、IS-IS 可扩展性
事实上,新功能的引入只需加入新的TLV到一个LSP中,因此IS-IS比OSPF更容易扩展,而LSP自身的结构保持不变。这就比给OSPF定义一个新的LSA简单。而且,当IS-IS碰到一个新的、不知道的TLV时,只是不改变它,继续传送。而OSPF却是将它扔掉。这样一来,在IS-IS网络中引入新功能时,尤其是在一个子网中,就很方便有效了。
十九、向IPv6的扩展、升级
IS-IS向IPV6扩展时,只需在现存的规程中加入两个新的TLV。它们是:IPV6 Reachability,IPV6 interface Address TLV。当一个路由器支持IPV6时,它需要将“Protocols Supported TLV”的IPv6 NLPID的值设置为“142(0x8E)”。
参考文献:
[1]捷夫多 艾多,路由TCP/IP,第一卷:CCIE专业最终版[M].美国:Cisco出版社出版,2005.
[2]汤姆 托马斯,OSPF网络设计解决方案[M].美国:Cisco出版社出版,硬皮本,第二版,2003年4月,ISBN:1587050323.
[3]汗奈斯 格来德勒、沃尔特 高若斯基,完全的IS-IS路由规程[M].美国:斯普林格出版社,2004年12月出版.ISBN:1852338229.