刘海涛
(邢台学院,河北 邢台 054001)
浅析内部网关协议IS-IS
刘海涛
(邢台学院,河北邢台054001)
随着Internet技术的日益发展,网络已经在我们的生活中变得必不可少,那我们平时又是如何上网的呢?这就需要一项非常重要的技术——路由[1]。路由承载着联通互联网的功能,在全世界范围内形成一张巨大的网,而这张网就叫做路由表。这张表的形成就是路由技术。作为因特网的枢纽,路由技术也正在不断地发展,从路由的产生、发展到现在为止已经从当初的不成熟慢慢发展成为一个有体系的、成熟的体系结构。而连接两个路由器是靠的路由协议,比如IS-IS,本文将重点介绍IS-IS。
路由器;路由协议;IS-IS
(一)外部网关协议
外部网关是用于一个或多个自治系统之间的路由协议,它主要在各个自治系统之间实现路由信息的交互[2],实现网络的互达。这些信息包括了各个自治系统中的全部路由信息,这样他们可以建立一个连接状态图。因为有图表的存在,优化了选路机制,这样很容易地就解决了路由环路问题。
外部网关路由协议选择路由刷新消息是由网络号和自治系统路径组成的,自治系统路径是由一系列自治系统的名字字符串组成,它记录了到达最终目标所经过的所有网络,外部网关的数据包格式[3],如图1。
图1 外部网关数据包格式
(二)内部网关协议
1.距离矢量路由协议
距离矢量路由协议基于距离矢量算法,此算法又称为贝尔曼福特算法,以路由跳数为开销,每个路由器周期性地向直连路由器发送自己的路由表,每个路由器检查其他路由器发来的路由表,如果未收到路由条目则学习,如果有则对比开销,开销小则替换开销大的。具有代表性的协议有RIPv1,RIPv2,其主要特征就是选择跳数作为度量值,其允许的最大跳数为15跳,在默认情况下每隔30秒发送一次更新,即使没有发生变化也会发送更新。RIP最多可以在6条等成本路径之间均衡负载,并且不支持身份验证,它是一种分类的距离矢量路由协议,其更新中不携带子网掩码,因此也不支持VLSM,与RIPv1相比,RIPv2采用组播地址224.0.0.9来将更新发送给其他路由器,相对来说使其效率有所提高,并且RIPv2支持身份验证,也增加了RIP路由协议的安全性,RIPv2虽然支持手动汇总,但是手动汇总也只是在接口上配置,只能将路由汇总为分类网络边界,不能支持无类域间汇总,即不能汇总分类网络。总体来说RIP因其有最大跳数,收敛速度慢,周期性更新浪费资源等缺点,一般来说只是会较少地应用在小型边界网络当中。
2.链路状态路由协议
链路状态协议的最终目标是每台路由器都收到域内所有路由器的链路状态信息,每台路由器都可以自行创建网络拓扑图并独立计算通向每个网络的最短路径。链路指的是路由器上的一个接口,链路状态是有关各条链路状态的信息。链路状态协议又称为最短路径优先协议,基于Edsger Dijkstra的SPF算法,业内还有一些链路状态路由协议用于非IP网络。每台路由器都会自行地确定通向拓扑中每个目的地的开销,它的开销不像距离矢量那样以条数为开销,而是以链路的带宽等计算开销。建立路由的过程大致分为五步:第一步,每台路由首先要了解自身的链路,即与它直连的网络,要了解自身连着哪些网络,并学习。第二步,了解直连网络后再与直连网络中的相邻路由器互相发送Hello包“打招呼”,路由器使用Hello协议来发现链路上的所有邻居,形成一种相邻关系,这些小型Hello数据包持续在两个相邻的邻居之间互换,以此实现“保持生存”功能来监听邻居的状态。第三步,路由器一旦建立相邻关系,每台路由器要创建一个链路状态数据包(LSP),链路状态数据包包含与该路由器直连的每条链路的状态,路由器一旦接收到来自相邻路由器的 LSP,立即从其他接口泛洪出去。LSP并不是定期发送,仅在需要的情况下发送。第四步,每台路由器将LSP泛洪到所有的邻居,然后邻居将收到的所有LSP存储到数据库中。第五步,每条路由器使用数据库构建一个完整的拓扑图并计算通向每个目的网络的最佳路径。至此形成一张路由表。
(一)IS-IS原理概述
IS-IS的英文全称是Intermediate System to Intermediate System,IS-IS也是一种基于SPF算法的链路状态协议,同时也是一种内部网关协议,ISIS使用在不同的子网上,包括广播型的LAN、WAN和点到点网络。实际上与OSPF又非常相似,也使用Hello包寻找相邻的节点[4]。ISIS消息也使用顺序号,但它的顺序号只是一个加法计数器。当计数器计到达最大值时,一个ISIS路由器没有别的选择,只能伪造一个错误的触发信息对所有旧信息进行刷新。然而,因为序列号有32比特长度,所以使用空间又是一个不得不考虑的问题,但是这样的比特位数在到达最大值之前还是有很大的序列号剩余空间,所以这个不算什么问题。但是,目前至少仍存在有两个技术问题:1.ISIS的度量值是6比特,相对比较小,这样严重地制约了可以和它进行转换的信息;2.平切状态时的链接只有8比特长,导致路由器能通告的记录最大只能有256个。
一个非技术方面的问题是ISIS的发展受OSI限制较多,使得与OSPF相比较,它的发展比较迟缓。这主要是因为IS-IS使用的是SPF的算法,这是SPF本身的原因。针对这个问题,新产生的Wide-metric使这个范围变成24位比特,因此这个问题也得到了解决。
(二)IS-IS与OSPF区别
1.基本特点比较
都是应用域内的链路状态协议,支持IP环境,采用分层设计和分区域设计。而ISIS支持点到点和广播子网,OSPF支持虚连接,报文封装格式不同,OSPF基于接口划分区域,ISIS基于路由划分区域[5]。
2.邻接关系比较
相同点:通过Hello包发现邻居,形成邻接关系,要选举出DR/非DR。
不同点:建立邻接关系条件不同,ISIS采用的Hello协议比较简单,邻居之间的Hello时间和Dead时间不必相同。而OSPF的hello时间和dead时间必须是一样的,就点到点链路上的邻接关系而言OSP形成的邻接关系比IS-IS更靠谱。IS-IS形成邻接关系原来只有两次握手机制,后期也存在3次握手。IS-IS邻接关系被称为L1和L2邻接关系,OSPF中要DR才能形成邻接关系。IS-IS协议中选举DIS是抢占式的可预见的,优先级最高或是零都可以称为DIS,OSPF则复杂不可预见,为了保证网络的稳定性,要选出DR和BDR,这是有严格要求的,DR的优先级一定是最高的,优先级是零的直接被排除,不能参与DR的选举。还需要选举出BDR,BDR的职责就是当DR失效后,BDR要立即称为DR,并承担起DR的所有职责。IS-IS却没有这个机制,只有一个DIS,没有备份,一旦DIS失败,必须要重新选举DIS,这就导致网络可能会出现中断。
3.链路状态数据库同步过程比较
相同点:同步链路状态数据库的方法都一样。
不同点:OSPF有7种常见的LSA,数据库的结构相当复杂,出现问题后定位比较困难。而IS-IS只有两种,路由器LSP和为节点LSP,数据库也很简单,定位问题比较简单。
4.路由计算过程比较
相同点:都使用SPF算法计算路由。
不同点:IS-IS也使用SPF算法,但相对而言比较简单,IS-IS树的叶子就是IS-IS的前缀,因此叶子发生变化时只计算部分路由就可以了。IS-IS的接口开销值是0-63,链路层的区分不是太明显,当它的开销达到1024后就认为此网络不可达(IEFT在RFC3784中扩大了const的取值范围和最大metric)。OSPF则不同,接口开销值是0-1024,一个网络的理论开销值要超过65535才认为不可达。
ISIS开销类型比OSPF复杂。
ISIS开销分为:narrow、narrow-compatible、wide、wide-compatible、compatible[6]。
IS-IS是在单个自治系统内运行的链路状态协议。运行链路状态协议的路由器主要向邻居描述自己连接的链路状态信息,并通过泛洪机制使得整个区域内所有的路由器形成一致链路状态数据库来描述本区域的网络拓扑,每个路由器再根据这个数据库用最短路径算法计算出到达目的地的最优路径。这种协议机制避免了路由环路的问题,具有收敛时间快,扩展性好的特点,目前在大型的ISP网络中广泛使用。
IS-IS协议直接运行在数据链路层之上,协议类型是OxFEFE。这样在邻接关系之前完全同步他们的链路状态数据库,避免了IS-IS路由器产生的瞬时路由选择问题。在广播链路上,具有较高优先级的路由器将成为DIS,由于DIS通告Hello报文的速度远比其他节点要快,所以能够较快检测当前DIS是否正常运行,从而降低了网络中断的可能性。
在点到点链路中对每一个LSP需要收到确认信息来实现可靠的同步。在广播链路上,IS-IS节点向所有与之相连的路由器广播其LSP。接着,DIS就周期性地组播包含链路状态数据库中的每个一直LSP摘要信息的完全序列号数据包来实现广播链路上所有路由器数据库同步。这是一种尽力而为的行为,并且周期性地广播需要昂贵的带宽开销。
IS-IS和OSPF都采用了最短路径优先算法计算路由,但是IS-IS是一个基于节点寻址方案的IP路由协议,所以路由器是最短路径树的顶点,IP前缀就成为树的叶子。这样的话网络环境中仅仅与IP前缀相关的网络改变,而不是注入邻接的拓扑变化,并不需要最短路径树重新计算,这在IS-IS协议中被称为部分路由计算,这就为IS-IS协议在没有涉及基本网络拓扑变化的情况下消耗较少的CPU资源。在安全方面,ISO10589与RFC1195位IS-IS协议报文认证定义了明文文本密码。最新的RFC3567定义了MD5认证方案。
IS-IS通过增加两种新的TLV来支持IPV6协议,IS-IS协议最大的优势就是在一个双栈的网络中路由器不像OSPF那样消耗大量的CPU和内存资源来支持两个完全独立的协议。IS-IS和OSPF都要建立一个双层的分级结构拓扑,但不同的是OSPF的区域(area)划分是在连接中划分的,而IS-IS是在两台路由器之间划分的。如图2。
图2 IS-IS路由器划分area
图3 OSPF划分area
画竖线的地方就是IS-IS划分区域的地方,由此可以看出,IS-IS的区域是在两个路由器之间划分的。OSPF却不一样了,OSPF是按接口划分的,也就是说一个路由器可以属于多个接口,这样的路由器此时所扮演的角色叫ABR。如图3。
本文介绍的IS-IS是中间系统到中间系统的链路状态协议,如今互联网越来越发达,我们的生活也越来越离不开互联网,而且IPv6的网络正在搭建,所以如何将IS-IS更好地应用在IPv6互联网中,是一个富有挑战性的课题,值得我们去学习。
[1]JeffDoyle.TCP/IP路由协议.[M].北京:人民邮电出版社,2003.
[2][美]W.Richard Stevens.TCP/IP详解[M].北京:机械工业出版社,2007.
[3]谢希仁.计算机网络[M].北京:电子工业出版社,2008.
[4]雷震甲.网络工程师教程[M].北京:清华大学出版社,2009.
[5]王文寿,王珂.网管员必备宝典——WindowsServer2003网络管理[M].北京:清华大学出版社,2006.
[6][美]W.Richard Stevens.TCP/IP详解[M].北京:机械工业出版,2007.
(责任编辑 李建武)
Analysis of the Internal Gateway Protocol IS-IS
LIU Hai-tao
(Xingtai College, Xingtai, Hebei 054001, China)
With the rapid development of Internet technology,it has become indispensable in our life,but how do we access the Internet?This requires a very important technology,routing,which carries the Unicom network routing functions,forming a vast network in the world,and this network is called routing table.The formation of this form is routing technology.As the internet hub,routing technology is constantly developing,from routing generation,development up to now has been from the original immature system gradually developed into a mature structure system.The connection between the two router is the routing protocol,i.e.IS-IS,this paper will focus on the introduction of IS-IS.
the router;routing protocol;IS-IS
TP393.04
A
1008—6129(2016)01—0076—05
2016—12—01
2011年邢台市科技计划项目——“高校科研统计管理系统研究”,项目编号:2011ZC013。
刘海涛(1978—),河北临西人,邢台学院,讲师。