版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。ISIS路由协议-IS-IS动态路由协议1.前言为什么要学习IS-ISHYPERLINK/a/luyoujiaohuan/路由HYPERLINK/a/luyoujiaohuan/协议,这是我们学习一个HYPERLINK/a/luyoujiaohuan/协议前要了解的。IS-ISHYPERLINK/a/luyoujiaohuan/路由协议与OSPF路由协议都是链路状态路由协议,他们不但适合应用于LAN的环境,而且更多使用在城域网的环境中,目前城域网技术的发展有三个主流方向,即IP城域网技术、城域以太网技术
2、、光城域网技术。在IP城域网中关键技术包括路由技术、端到端的QoS管理、接入网技术和用户/业务管理。在路由技术中最常用的就是BGP、OSPF和IS-IS三种路由协议。如果想了解城域网的知识,所以需要先学习IS-IS路由协议。2.OSI与CLNS概述OSI(OpenSystemInterconnect)参考模型是一个国际化标准,用于增强不同厂商设备之间的互操作性。它定义了一个7层的模型,并且详细规定了各层的功能,同时也确定了计算机网络的标准。制定OSI七层参考模型的是ISO(InternationalOrganizationforStandardization,国际标准化组织)。对于数据通信和信
3、息技术的发展来说,OSI参考模型起到了重要的作用。它提供了开放式的标准架构,使不同厂商生产的通信设备之间可以进行互联和互操作。ISO七层模型的每一层都定义了单一的功能,可以将相关功能组合成功能层,从而简化和方便了协议的设计。OSI参考模型中的网络服务规范定义了网络设备之间使用无连接通信的功能,也就是CLNS(ConnectionlessNetworkService,无连接网络服务)。顾名思义,使用CLNS,无需在发送数据之间建立端到端的路径。下图中展示的是CLNS中所包括的协议组件,这些协议组件都由ISO所定义。正如上图所示,CLNP(ConnectionlessNetworkProtocol
4、,无连接网络协议)、IS-IS、ES-IS(EndSystemIntermediateSystem,终端系统中间系统)都是ISO定义的独立的OSI第三层(网络层)的协议,这些协议分别在不同的ISO标准中定义:CLNP:在ISO8473中定义,定义了CLNS所使用的协议。IS-IS:在ISO10589中定义,定义了在使用CLNP的网络中,中间系统与中间系统间进行路由信息的交换方式。ES-IS:在ISO9542中定义,定义在使用CLNP的网络中,终端系统与中间系统间进行路由信息交换的方式。CLNP这个名词可能很多人都比较陌生,它是一个OSI网络层协议。打个比方来说,它就相当于我们所熟悉的IP协议,
5、而IP定义为用来为TCP/IP协议栈提供网络层服务。与IP一样,CLNP也是一个无连接的协议,不提供可靠的数据连接,而且也独立于下层(数据链路层)协议。我们都知道,IP是TCP/IP协议栈中唯一的网络层协议,高层的协议和数据全都封装在IP数据包中进行传输。这不同于CLNS网络环境,在CLNS中,CLNP、IS-IS、ES-IS都是独立的网络层协议,它们都直接被封装到数据链路层的帧中进行传输。如同IP一样,CLNP也有一套自己的寻址体系,我们称之为CLNP地址。CLNP地址的结构和寻址方式与我们熟悉的IP地址有着很大的差别。在OSI术语中,主机(例如PC)被称为ES(终端系统),HYPERLIN
6、K/a/luyoujiaohuan/路由器被称为IS(中间系统)。ES-IS可以说是一种终端系统和HYPERLINK/a/luyoujiaohuan/路由器之间的“语言”或路由协议。它用来使同一网段或链路的终端系统和路由器之间可以彼此发现对方,并可以让ES能够获悉其网络层地址。总结来说,ES-IS主要有以下几种功能:使ES获悉其所在的区域,即区域前缀在ES与IS之间建立邻接关系建立数据链路层地址到网络层地址(CLNP地址)的映射可以看出,ES-IS在CLNS网络环境中的作用就好像IP网络中的ICMP、ARP与DHCP协议的协同工作。在ES-IS工作过程中,终端系统通过发送ESH(ESHello
7、)报文到特定的地址,目的是向路由器通告自己的存在。路由器通过监听ESH报文,以发现网络中存在的ES,以便后续将到达特定ES地址的数据包转发给ES。在ES-IS中,路由器通过发送ISH(ISHello)报文到特定地址,也向ES通告其自身的存在。ES也监听ISH,如果收到多个IS发送的ISH,ES将随即进行选择,并将所有数据都发送给这个IS。需要注意的是,通常我们的终端系统,例如PC,都不使用ES-IS,因为这些PC都运行的是TCP/IP协议栈,类似ES-IS的工作都由TCP/IP协议栈中的ARP、ICMP、DHCP协议来完成。下图所示为CLNS中ES-IS的工作机制:IS-IS是CLNS中一个重
8、要的组成部分,它是一个用来在CLNS网络环境中使路由器与路由器(IS与IS)之间HYPERLINK/a/luyoujiaohuan/动态的交换路由信息的协议,IS-IS在ISO10589中进行了定义。IS与IS,即路由器与路由器之间的通信使用IIH(IS-ISHello)报文。IS-IS的设计主要是为了满足CLNS网络中的如下需求:在路由域内执行路由选择协议功能为网络提供最佳路由当网络出现故障后,能够快速的收敛提供无环路的网络提供网络的稳定性提供网络的可扩展性合理利用网络资源为了满足如上需求,IS-IS被设计成一种链路状态路由协议,并且使用SPF最短路径优先算法以实现快速的收敛和无环路网络。之
9、前所提到的IS-IS,它仅支持CLNS网络环境,而不支持IP网络环境中的路由信息交换。后来,IETF在RFC1195中对IS-IS进行了修改和扩展,称之为集成IS-IS(IntegratedIS-IS)或双重IS-IS(DualIS-IS)。集成IS-IS的制定是为了使其能够同时应用在TCP/IP网络和OSI网络中,使其能够为IP网络提供动态的路由信息交换。集成IS-IS是一个能够同时处理多个网络层协议(例如IP和CLNP)的路由选择协议。相反,OSPF只支持IP一种网络层协议,即OSPF仅支持IP路由。而集成IS-IS可以支持纯CLNP网络或纯IP网络,或者同时支持CLNP和IP两种网络环境
10、,并为其提供路由功能。集成IS-IS协议经过多年的发展,已经成为一个可扩展的、功能强大的、易用的IGP路由选择协议,并且在运营商网络中得到了更多的应用和部署,主要用来实现域内的IP路由选择。3.OSI路由选择OSI规范中定义了四种路由选择级别,分别为L0、L1、L2和L3。L0路由选择L0路由选择是发生在ES与IS之间的,它通过使用ES-IS进行路由信息的交换。正如之前介绍ES-IS那样,ES通过侦听IS发送的ISH报文来获知IS的存在。当ES要向其他ES发送信息是,它将把数据包发送到IS。同样,IS也侦听ES发送的ESH报文以获知ES的存在,当有数据包要发送个某个ES时,它便根据通过ESH获
11、取到的信息发送个特定的ES。这个过程就称为L0路由选择。L1路由选择从图中可以看出,L1路由选择发生在同一区域内的IS之间。所谓区域是指在CLNP地址中拥有相同区域前缀的一组ES和IS。这里的区域概念与OSPF中的区域非常相似。同一个区域中的IS之间通过交换路由信息后,便得知了本区域内的所有路径。当IS收到一个到目标地址是本区域内地址的数据包后,通过查看数据包的目的地址以将数据包发往正确的链路或目的地。可以看到,L1路由也就是区域内的路由选择。L2路由选择当IS收到一个目的地址不是本区域的数据包时,数据包将被转发到其他区域的IS,其他区域的IS再将其转发到正确的目的地或者将数据包中继到其他区域
12、,以便由其他区域的IS转发到正确的目的地。这样的路由被称作L2路由选择,可以看到,L2路由选择是发生在区域之间的,所以也称作区域间路由。L3路由选择了解了L0、L1、L2路由选择后,我们已经可以猜测出L3路由选择的作用了,L3路由选择就是域间的路由。L3路由选择类似与IP路由中的BGP(BorderGatewayProtocol,边界网关协议),它的目的是在不同的路由域或自治系统(AS,AutonomousSystem)间交换路由信息,并将去往其他自治系统的数据包转发到正确的自治系统以便到达最终目的地。这些自治系统之间可能拥有不同的路由拓扑,所以不能直接进行路由信息的交换。通常L3路由选择都是
13、由IRDP(Inter-DomainRoutingProtocol,域间路由选择协议)来完成的,IRDP的功能类似于IP路由中的BGP路由协议。4.IS-IS路由选择IS-IS所完成的路由功能就是L1和L2路由选择,也就是说IS-IS用来在同一个路由域内进行区域内和区域间的路由选择。IS-IS路由选择分为两个等级,即L1和L2。IS-IS区域中的L1路由选择负责路由到区域内的终端系统(ES)和IS。在同一个路由选择区域中,所有设备的区域地址都相同。区域内的路由选择是通过查看地址中的系统ID后,然后选择最短的路径来完成的。L2路由选择是在IS-IS区域之间进行的。路由器通过L2路由选择获悉L1路
14、由选择区域的位置信息,并建立一个到达其他区域的路由表。当路由器收到数据包后,通过查看数据包的目标区域地址(非本区域的区域地址),选择一条最短的路径来路由数据包。由于IS-IS负责L1和L2等级的路由,IS-IS路由器等级(或称IS-IS路由器类型)可以分为三种:L1路由器(Level1)、L2路由器(Level2)和L1/2(Level1/2)路由器。L1路由器属于同一个区域并参与Level1路由选择的路由器称为L1路由器。L1路由器类似于OSPF中的非骨干内部路由器。在CLNP网络环境中,L1路由选择负责收集本区域内所有主机和路由器的信息,可以说L1路由器只关心本区域的拓扑结构。L1路由器将
15、去往其他区域的数据包发送到最近的L1/2路由器上。L2路由器属于不同区域的路由器通过实现Level2路由选择来交换路由信息,这些路由器成为L2路由器或骨干路由器。L2路由器类似于OSPF中的骨干路由器。在CLNP网络环境中,L2路由器与其他L2或L1/2路由器交换区域前缀信息。对于IP网络环境,在L1路由选择中,仅在区域内交换IP前缀信息,而不同区域的IP前缀信息由连接到骨干区域的执行L2路由选择的路由器交换。L1/2路由器同时执行L1和L2路由选择功能的路由器为L1/2路由器,L1/2路由器类似于OSPF中的ABR(区域边界路由器),它的主要职责是搜集本区域内的路由信息,然后将其发送给其他区
16、域的L1/2路由器或L2路由器;同样,它也负责接收从其他区域的L2路由器或L1/2路由器发来的区域外信息。可以说所有L1/2路由器与L2路由器组成了整个网络的骨干(Backbone)。此外,需要注意的是,对于IS-IS来说,骨干必须是连续的,也就是说具有L2路由选择功能的路由器(L1路由器或L1/2路由器)必须是物理上相连的。总结这三种类型的路由器的作用,可以归纳为:L1路由器负责收集区域内的路径信息L2路由器负责收集区域间的路径信息L1/2路由器负责收集区域内和区域间的路径信息,这类似与OSPF中的ABR5.IS-IS与OSPF对比1、IS-IS与OSPF的相同点从IS-IS与OSPF的功能
17、上讲,它们之间存在着这么大的相似之处,虽然它们在结构上有着差异:IS-IS与OSPF同属于链路状态路由协议。作为链路状态路由协议,IS-IS与OSPF都是为了满足加快网络的收敛速度、提高网络的稳定性、灵活性、扩展性等这些需求而开发出来的高性能的路由选择协议。IS-IS与OSPF都使用链路状态数据库收集网络中的链路状态信息,链路状态数据库存放的是网络的拓扑结构图,而且区域中的所有路由器都共享一个完全一致的链路状态数据库。IS-IS与OSPF都使用泛洪(flooding)的机制来扩散路由器的链路状态信息。IS-IS与OSPF都使用相同的报文(OSPF中的LSA与IS-IS中的LSP)来承载链路状态
18、信息。IS-IS与OSPF都分别定义了不同的网络类型,而且在广播网络中都使用指定路由器(OSPF中的DR,IS-IS中的DIS)来控制和管理广播介质中的链路状态信息的泛洪。IS-IS与OSPF同样都是采用SPF算法(Dijkstra算法)来根据链路状态数据库计算最佳路径。IS-IS与OSPF同样都采用了分层了区域结构来描述整个路由域,即骨干区域和非骨干区域。基于两层的分级区域结构,所有非骨干区域见的数据流都要通过骨干区域进行传输。IS-IS与OSPF都是支持VLSM(VariableLengthSubnetMask,可变长子网掩码)和CIDR(ClasslessInter-DomainRout
19、ing,无类域间路由)的IP无类别路由选择协议。IS-IS与OSPF都是标准协议。2、IS-IS与OSPF的不同点区域设计OSPF的骨干区域就是区域0(Area0),是一个实际的区域。IS-IS与OSPF最大的区别就是IS-IS的区域边界位于链路上,OSPF的区域边界位于路由器上,也就是ABR上。ABR负责维护与其相连的每一个区域各自的数据库,也就是Area0骨干区域数据库和Area1非骨干区域数据库。如下图所示IS-IS的骨干区域是由所有的具有L2路由选择功能的路由器(L2路由器或L1/2路由器)组成的,而且必须是物理上连续的,可以说IS-IS的骨干区域是一个虚拟的区域。这点与OSPF不同,
20、虽然IS-IS中的L1/2路由器的功能相似于OSPF中的ABR,但是对于L1/2路由器来说,它只属于某一个区域中,并且同时维护一个L1的链路状态数据库和一个L2链路状态数据库,而且L1/2路由器不像OSPF中的的ABR,可以同时属于多个区域中。与OSPF相同的是,IS-IS区域间的通信都必须经过L2区域(或者骨干区域),以便防止区域间路由选择的环路,这与OSPF非骨干区域间的流量都要经过骨干区域(Area0)的操作是一样的。通过上图所示的IS-IS区域可以看出,由于IS-IS的骨干区域是虚拟的,所以更加利于扩展,灵活性更强。当需要扩展骨干时,只需添加L1/2路由器或L2路由器即可,这比OSPF
21、要灵活的多。我们在设计IS-IS区域和路由器类型时,可以遵循以下原则:不与骨干相连的路由器可以配置为L1路由器与骨干相连的路由器必须配置为L2路由器或L1/2路由器不与L1路由器相连的骨干路由器可以配置为L2路由器纵观IS-IS与OSPF大体的功能,包括邻接关系、路由结构、链路状态操作、使用的算法等都存在着许多相似之处。但在这些相似点之中,或者说在这些基础上,IS-IS与OSPF也是存在着很多的不同点。下表中从各个方面列出了IS-IS与OSPF之间的区别。IS-ISOSPFIS-IS可以支持CLNP和IP两种网络环境OSPF仅支持IP网络环境IS-IS所使用的数据包被直接封装到数据链路层帧中O
22、SPF数据包被封装在IP报文中IS-IS是ISOCLNS中的一个网络层协议OSPF不是网络层协议,它运行在IP之上IS-IS使用LSP承载所有的路由选择信息OSPF使用不同类型的LSA承载路由选择信息IS-IS利用TLV可以灵活的对协议进行扩展OSPF很难进行扩展IS-IS可以忽略不支持的TLV网络中所有路由器都必须能够识别所有LSAIS-ISPDU可以承载多个TLV字段,只有一个报头,节省带宽1类、2类LSA可以承载多个IP前缀;3类、4类、5类LSA只能承载单个IP前缀,如果需要发送多个IP前缀信息,需要多个LSAIS-IS仅支持广播类型链路与点到点类型链路OSPF可以支持多种网络类型:广
23、播、点到点、NBMA、点到多点和按需电路(DemandCircuit)IS-IS邻接关系建立过程简单,仅3步OSPF需要通过多种状态建立邻接关系数据库同步在建立邻接关系之后数据库同步在邻接关系建立之前IS-IS路由器只属于一个区域,基于节点分配区域OSPF路由器可以属于多个区域,典型的是ABR,OSPF基于接口分配区域IS-IS的区域边界在链路上OSPF的区域边界在路由器上IS-IS的L1区域(非骨干区域)为末节(stub)区域,除非使用路由泄漏(RouteLeaking)机制默认情况下,OSPF非骨干区域不是stub区域,但可以配置为stub区域IS-IS仅在点到点链路上的扩散是可靠的,在广
24、播链路中通过DIS周期性的发送CSNP来实现可靠性OSPF在所有链路上的扩散都是可靠的IS-IS中没有备份DISOSPF中要选举BDR,以接替DR的角色IS-IS中的DIS可以被抢占OSPF中的DR不能被抢占DIS以3倍的频率发送HelloPDUDR以正常的频率发送Hello报文默认情况下,IS-IS的LSP最大生存时间为1200s,刷新间隔为900s,而且定时器的值可调OSPF的LSA的老化时间为3600s,刷新间隔为1800s,而且是固定值默认情况下,IS-IS的接口cost值为10默认情况下,OSPF的接口cost值根据带宽进行计算默认情况下,IS-IS保持时间(holding-time
25、)为30s,而且在建立邻接关系时不需要双方的保持时间匹配默认情况下,OSPF的保持时间(dead-interval)为40s,而且为了建立邻接关系,必须使双方的保持时间一致IS-IS通过将HelloPDU的大小填充至接口MTU大小来检查双方的MTU是否匹配OSPF通过在DBD报文中嵌入接口MTU字段来检查双方的MTU是否匹配6.IS-IS寻址虽然IS-IS(集成IS-IS)可以用来交换IP路由选择信息,但是对于一个运行IS-IS协议的路由器来说,它必须拥有一个CLNP地址,就算只使用IS-IS进行IP路由选择信息的交换也需要这样做。因为IS-IS在交换IP路由信息时,使用的还是ISO数据包,I
26、P路由选择信息承载在ISO数据包中,并且使用CLNP地址来标识路由器并建立拓扑表和链路状态数据库。CLNP地址与我们熟悉的IP地址有着很大的区别。首先,CLNP地址是一种基于节点的编址方案,也就是说一个节点(路由器)只需要一个CLNP地址,而IP地址是一种基于链路或者说是基于接口的编址方案,路由器中每一个接口都需要一个IP地址以进行不同子网间的数据包路由。其次,在地址结构上,CLNP地址与IP地址也有着很大的差别。NSAP地址IS-IS将CLNP地址称作网络服务访问点(NSAP,NetworkServiceAccessPoint),也就是常用的CLNP地址。在OSI参考模型中,每一层为高层提供
27、特定的服务。NSAP定义了适当的服务接口,类似于IP路由器为TCP和UDP定义的协议类型。在ISO术语中,数据链路层地址(例如LANMAC地址、Frame-RelayDLCI等)常被称为子网连接点(SNPA,SubnetworkPointofAttachments)。由于一个网络设备可能连接多个链路,所以需要有多个SNPA地址,但是只需要一个CLNP地址。正如之前介绍ES-IS那样,ES-IS的主要功能之一就是为节点提供NSAP地址到SNPA地址的映射。NSAP地址主要包含两个内容:节点的CLNP地址高层进程NSAP地址相当于IP报头中的IP地址和上层协议。NSAP地址最长为20字节,这要比长
28、度为固定4字节的IP地址要长的多。下图所示为一个NSAP地址的地址格式,其中包括很多域:NSAP地址由两个主要部分组成,IDP(InitialDomainPart,初始域部分)和DSP(Domain-SpecificPart,特定域部分)。IDP又分为AFI(AuthorityandFormatIdentifier,机构和格式标识符)和IDI(InitialDomainIdentifier,初始域标识符):AFI字段是一个取值范围为099的十进制数,它指定该地址的格式和分配给该地址的机构。AFI字段标识与NSAP相关的高层寻址域和DSP部分的语法。下表中列出了一些有效的AFI值。如下表中所示,
29、AFI值为49时表示此地址为私有地址。这类似于RFC1918中规定的私有IP地址范围。IS-IS可以对这些地址进行路由,但不应该将这些地址通告给其他CLNP网络。其他使用AFI值为49的网络可能采用了不同的编址方案,两种不同的编址方案一起使用可能会产生编址问题。IDI用来标识AFI下的子域。例如ISO6523ICD地址域有一个4位格式,而ISODCC用3为格式标识数据国家代码。美国政府使用的ISO6523ICD子域的IDI值为0005和0006,即47.0005分配给美国政府的公民组织,47.0006分配给美国国防部。AFI地址域37X.12139ISO数据国家代码(DCC)41F.6943E
30、.16345E.16447ISO6523国际代码指示符(ICD)49本地管理(私有)DSP由HODSP(HighOrderDSP,高序DSP)、ID和SEL(选择符)组成:HODSP将域划分为多个区域。HODSP大致相当于IP子网。ID表示系统ID(SysID),SysID用来唯一标识OSI设备。SEL表示NSAP选择符号(NSEL),用来标识设备中的进程,它大致相当于IP中的端口或套接字。在IS-IS路由选择过程中,没有使用NSEL,所以NSEL始终保持为00。如下所示为一个完成的20字节的NSAP地址:在NSAP地址格式中介绍过,NSAP地址中包含了很多不同的字段,看起来有些复杂。可以将N
31、SAP地址进行简化,其中各种字段可以归类为3个部分:区域ID、SysID和NSEL。这样解释NSAP格式就显得清晰得多了,这样的结构也称为简化的NSAP格式,如下图所示。如上图所示,简化的NSAP地址格式中的区域ID字段包括AFI(第一个字节)和ID(SysID)前面的字段,组成了可变长度的区域地址。虽然SysID长度为18个字节,但是目前实现的IS-IS中,都采用了定长的6字节表示SysID。SEL(NSEL)为1字节。简化的NSAP地址最长也为20字节。由于SysID为6字节,NSEL为1字节,那么区域地址部分可为113字节不等。由于1字节足够用于定义区域ID,所以在大多数的IS-IS实现
32、中NSAP地址最小长度为8字节。对于IP应用程序而言,在NSAP地址中,1字节定义AFI,最少2字节定义实际的区域信息,6字节定义SysID,1字节定义NSEL,所以NSAP地址最少为10字节。NSAP使用16进制格式进行配置,以AFI(十进制数值)字节开始,NSEL字节(00)结束,用点进行分隔。AFI和NSEL之间的每隔字段是4个数字(16进制中的2字节)组,用点进行分隔。相反,IP地址使用点分十进制表示法。如下所示为在路由器中配置的NSAP地址:NET地址在IS-IS路由选择过程中,没有使用NSAP地址中的NSEL,所以NSEL始终保持为00。当NSEL为00时,我们就称这个NSAP地址
33、为NET(NetworkEntityTitile,网络实体名)地址,NET地址用来唯一地表示IS-IS路由选择域中的OSI主机。路由器使用NET地址来标识自己。路由器在发送的链路状态数据包(LSP)中用NET来标识自己,这类似于OSPF发送的LSA中的路由器ID(RouterID)。在NET地址中,还有三个与其相关的术语:SNPA、电路ID(CircuitID)和链路。之前已经提到过,在ISO术语中,数据链路层地址常被称为子网连接点(SNPA,SubnetworkPointofAttachments)。SNPA通常为:LAN接口的MAC地址。X.25、或ATM的虚电路(VC)ID,或Frame
34、-Relay中的DLCI(数据链路标识符)。对于HDLC(高级数据链路控制)接口,SNPA被设置为“HDLC”。术语电路相当于接口。由于NET地址用来标识整个设备(路由器),所以CircuitID用来表示不同的接口。路由器按照如下方式为接口指定1字节的CircuitID。对于点到点接口,SNPA是电路的唯一标识符。例如在HDLC点到点链路上,电路ID为0 x00。对于LAN接口,将1字节的电路ID附加到6字节的指定中间系统(DIS)的SysID的后面,例如aabb.ccdd.eeff.01。术语链路是位于两个IS(路由器)之间的路径,当两个相邻的SNPA可以通信是,链路就处于UP状态。系统ID
35、(SysID)已经了解到SysID是NSAP地址的三个重要组成部分之一,另外两个部分是区域地址和NSEL。根据ISO10589中的规定,SysID长度可以为18个字节。但是目前实现的IS-IS中,都遵循GOSIP2.0标准采用了定长的6字节表示SysID。6字节的长度也与LANMAC地址的长度一致。所以在配置路由器的NET地址时,可以使用路由器上某个LAN接口的MAC地址作为SysID,也就是在三层的NSAP地址中嵌入一个二层的MAC地址。但SysID也可以不为MAC地址,也可以取其他的任意值,但要满足6个字节的长度。定义SysID时,需要注意以下几点:IS-IS路由域中的每个节点的SysID
36、必须唯一。IS-IS路由域的所有节点的SysID长度必须一致,通常都为6个字节。在同一区域中的每个节点的SysID必须唯一。如果两台路由器属于不同的区域,并且都没有参与到L2的路由选择中,那么就不需要SysID唯一。但如果这两台路由器都连接到L2骨干区域中,即参与L2路由选择,那么就需要保持SysID唯一。但是推荐按照第一条中描述的,保证IS-IS路由域中的每个节点的SysID都唯一。以免产生路由信息计算问题。在配置路由器NET地址中的SysID时,有几种方法可行。第一就是使用LAN接口的MAC地址作为SysID,由于MAC地址是唯一的,所以这样设置可以保证SysID在整个域中都唯一。第二种方
37、法就是将IP地址转化成SysID,使用这种方式时通常都使用Loopback接口的地址。具体方法是将带0的淀粉十进制环回IP地址转换成12字符的地址,然后吧12个字符4个数字为一组,分为3组,以点隔开,以十六进制形式表示6字节的SysID。以下是一个将IP地址转换为SysID的例子。假设路由器有一个Loopback接口,IP地址为1,转换步骤如下:对于点分十进制环回IP地址的每一个字节不够3为数字的,使用0在前面进行填充,以补足3为,也就是将1转换为192.168.001.011。此时IP地址变为了12个数字,然后按照每4个数字一组分为3组,192.168.001.011转换为1921.6800
38、.1011。1921.6800.1011就作为NET地址中的SysID字段,再加上区域地址和NSEL(00)后便形成了NET地址。假设区域地址为49.0001,那么使用IP地址转换为SysID的完整NET地址就为:49.0001.1921.6800.1011.00由于同一区域内的所有路由器的区域地址是相同的,NSEL为00也是相同的,所以SysID成为区别路由器间不同NET地址的关键,也就是必须要保证SysID唯一。使用多个NET地址在ISO10589中规定,一个节点最多可以拥有3个NSAP地址,但每个地址的SysID必须一致,不同的是区域地址。当一个运行IS-IS的路由器上具有多个NET地址
39、时,被称为多宿主(Multihoming)。需要注意的是,多宿主并不代表路由器连接到多个区域,而是在一台路由器上配置多个具有不同区域地址的NET地址,这主要用于区域合、区域分离、重编址。区域合并使用多宿主功能,可以将不同区域合并到一个区域。一台L1路由器只在本区域内扩散链路状态信息,如果这台路由器连接了两个区域,那么可以实现在多个区域内扩散链路状态信息,使用这个机制,可以有效的完成区域的合并。如下图所示,R1与R2都为L1/2路由器。R1与R2分别属于不同的区域49.0001和49.0002,之间建立了L2邻接关系,R1与R2都向L2骨干区域通告链路状态信息。现在需要将这两个区域合并为一个区域
40、。这时可以为R1赋予两个NET地址,这两个NET地址包含不同的区域地址,分别为49.0001和49.0002,但是SysID是相同的。由于R1也具有了区域地址为49.0002的NET地址,与R2的区域地址相同,这时根据IS-IS建立邻接关系的规则,R1与R2之间也建立了一个L1邻接关系,并且拥有一个合并的L1链路数据库。最后可以将R1原先的49.0001的NET地址删除,这样就完成了区域的合并。区域分离区域分离的操作与区域合并的正好相反。区域分离可以将原有的一个区域分离为两个不同的区域。如下图所示,R1与R2都为L1/2路由器。起初R1和R2属于同一个区域中,都拥有相同的区域地址49.0001
41、,之间形成了L1和L2邻接关系,共享相同的L1和L2链路状态数据库。现在需要将这两个区域分离开。与区域合并一样,可以先赋予R2两个NET地址,区域地址分别为49.0001和49.0002。之后再将R2原先区域地址为49.0001的NET地址删除,这时由于R1和R2处于不同的区域,L1邻接关系将不存在,但L2邻接关系和L2链路状态数据将保留,此时便完成了区域分离。重编址重编址过程与区域合并、区域分离相似,重编址可能需要清除一些或者全部路由器的区域前缀,用新的区域前缀代替。如下图所示,现在希望将原先的49.0001区域迁移到49.0002区域,这就需要更改路由器上的区域地址。R1和R2属于同一个区
42、域49.0001中,要将R1和R2迁移到49.0002区域中,可以为R1和R2都赋予两个NET地址,两个NET地址包含不同的区域地址,49.0001和49.0002,然后依次删除R1和R2的包含49.0001区域地址的NET地址,这样就实现了路由器新的NSAP地址的无缝、无冲突的重新配置。注意,IS-IS多宿主与IP中的辅助地址(secondanaryIP)是不同的,辅助地址可以在同一条链路上创建多个隔离的逻辑子网。另外,辅助IP地址是在一条链路上配置多个子网。NSELNSEL定义了网络层服务的用户,路由层是特殊的网络层服务用户,它的NSEL值为0。之前多次提到,在IS-IS路由器上配置的NS
43、AP地址采用00作为NSEL,这时NSAP地址被称为NET。NSEL的值与IP报头中的协议类型或TCP/UDP报头中的TCP、UDP端口号类似,NSEL帮助网络层把数据发送到适当的应用程序或服务。在OSI分层模型中,网络层服务的是传输层。目标不是路由进程的CLNP数据包具有非0的NSEL值的NSAP地址,表示节点需要将数据发送到传输层。我们在使用IS-IS进行IP路由选择中,只要记住始终保持NSEL为00即可。1.IS-IS报文结构与OSPF一样,运行IS-IS路由选择协议的路由器也是通过收集其他路由器泛洪的链路状态信息来构建自己的链路状态数据库。在OSPF中,OSPF路由器通告链路状态信息是
44、通过LSA(LinkStateAdvertisment),在IS-IS中,与LSA具有同样功能的包含链路状态信息的报文称为LSP(LinkStatePackets,链路状态数据包)。LSP包含了由IS-IS路由器产生的描述其周围环境的路由选择信息。在IS-IS中,路由协议使用的三大类报文:Hello报文、链路状态数据包(LSP)和序列号数据包(SNP),Hello报文用来建立和维持IS-IS路由器之间的邻接关系;LSP用来承载和泛洪路由器的链路状态信息,并且LSP(确切的说应该是链路状态数据库)是路由器进行SPF计算的依据;SNP用来进行链路状态数据库的同步,并且用来对LSP进行请求和确认。下
45、面所示为IS-IS中所使用的PDU数据包类型,使用这些数据包,IS-IS可以完成从邻接关系的建立、链路状态信息的扩散和链路状态数据库的同步的操作。每种PDU都有一个特定的类型号,在IS-IS的PDU报文头中,有一个PDU类型字段,此字段中所包含的信息就是PDU的类型号,路由器就是通过类型号来识别所收到的PDU报文类型。Hello数据包分为三种类型:L1LANIS-ISHelloPDU(类型号15)L2LANIS-ISHelloPDU(类型号16)点到点IS-ISHelloPDU(类型号17)链路状态数据包LSP分为两种类型:L1LSP(类型号18)L2LSP(类型号20)序列号数据包SNP分为
46、四种类型:L1完全序列号数据包(CSNP,CompleteSNP)(类型号24)L2完全序列号数据包(CSNP)(类型号25)L1部分序列号数据包(PSNP,PartialSNP)(类型号26)L2部分序列号数据包(PSNP)(类型号27)a)IS-ISPDU报头格式在所有IS-ISPDU起始的8个字节都是该数据包的头部字段,并且对于所有的PDU数据包类型(包括Hello报文、LSP和SNP)都是公用的、相同的。下图所示为IS-ISPDU数据包起始的8个字节:Figure.IS-ISheaderfieldsIntradomainRoutingProtocolDiscriminator:域内路由
47、选择协议鉴别符。这是ISO9577分配给IS-IS的一个固定的值,用于标识网络层PDU的类型,对于IS-ISPDU,该字段的值永远都为0 x83。LengthIndicator:长度标识符。标识该固定头部字段的长度。Version/ProtocolIDExtension:版本/协议ID扩展。当前始终为1。IDLength:ID长度。用于表示源ID(SysID)的长度。值为0表示长度为6字节;值为255表示长度为0,即为空;18的整数,表示SysID具有相同长度的字节数。PDUType:PDU类型。这是一个5bit的字段,用于标识IS-IS数据包的类型。值为15表示L1LANIIH;值为16表示
48、L2LANIIH;值为18表示L1LSP;值为20表示L2LSP;值为24表示L1CSNP;值为25表示L2CSNP;值为26表示L1PSNP;值为27表示L2CSNP。Version:版本。当前为1。Reserved:保留位。没有使用的bit位,始终为0。MaximumAreaAddresses:最多区域地址。表示我们可以为一个路由器配置多少个不同的区域前缀。值为0表示最多支持3个区域地址数,默认情况下值为0。AdditionalHeaderFields:附加报头字段。至此字段之前的8个字节对于所有的IS-ISPDU都是相同的。附加报头字段将根据不同的PDU类型而不同。TLVFields:T
49、LV字段。用于承载IS-ISTLV。如下图采集到PDU报头。b)IS-ISHelloPDU格式对于L1LANIIHPDU和L2LANIIHPDU,它们有着相同的报文格式和功能:Figure3-5.IS-ISLANHello(PDUTypes15,16).Reserved:保留的6bit位。当前没有使用,始终为0。CircuitType:电路类型。01表示L1路由器,10表示L2路由器,11表示L1/2路由器。SourceID:源ID。发送该PDU的路由器的SysID。HoldingTime:保持时间。用来通知它的邻居路由器在认为这台路由器失效之前应该等该的时间。如果在保持时间内收到邻居发送的H
50、elloPDU,将认为邻居依然处于存活状态。这个保持时间就相当于OSPF中的deadinterval(死亡间隔)。在IS-IS中,默认情况下保持时间是发送HelloPDU间隔的3倍,但是在配置保持时间时,是通过指定一个Hello报文乘数(hello-multiplier)进行配置的。例如,如果HelloPDU的间隔为10s,Hello报文乘数为3,那么保持时间就是30s(10sx3)。PDULength:PDU长度。整个PDU报文的长度。包括固定报头和TLV字段。Priority:优先级。接口的DIS优先级,用来在广播LAN中选举DIS。优先级数值越高,路由器成为DIS的可能性越大。LANID
51、:局域网ID。由DIS的SysID与1字节的伪节点ID组成,LANID用来区分同一台DIS上的不同LAN。如下图采集到的报文格式。下图所示为点到点IIHPDU的报文格式:从点到点IIHPDU的格式可以看出,大部分字段与L1/L2LANIIHPDU的报文格式相同。但是在点到点IIHPDU中没有“Priority”字段,因为在点到点网络上不需要选举DIS。而且使用“LocalCircuitID”代替了LANIIHPDU中的“LANID”字段。LocalCircuitID(本地电路ID)由发送HelloPDU的路由器分配给这条电路的标识,并且在路由器的接口上是唯一的。在点到点链路的另一端,Hello
52、报文中的本地电路ID可能或也可能不为同样的值。Figure3-4.Point-to-PointHelloPacket(PDUType17).c)IS-ISLSPPDU格式LSPPDU分为L1LSP和L2LSP。L1LSP和L2LSP各自承载了IS-IS不同层次的路由选择信息,但是它们有着相同的报文格式。Figure.LSPformat每个LSP都包含着这些重要的信息:LSPID、LSP序列号、LSP校验和、剩余时间、区域关联状态、超载状态以及区域划分。PDULength:PDU长度。整个PDU报文的长度。包括固定报头和TLV字段。RemainingLifetime:剩余时间。此LSP到期前的生
53、存时间。当生存时间为0时,LSP将被从链路状态数据库中清除。LSPID:LSP标识符。用来标识不同的LSP和生成LSP的源路由器。LSPID包括三个部分:SysID、伪节点标识符(PseudonodeID)和LSP编号。SequenceNumber:序列号。LSP序列号主要用于使路由器能够识别一个LSP的新旧版本,这也与OSPF的LSA中携带的序列号是相同的作用。Checksum:校验和。校验和主要用于检查被破坏的LSP或者还没有从网络中清除的过期LSP。当一台路由器收到一个LSP,在将该LSP放入到本地链路数据库和将其再泛洪给其他邻接路由器之前,会重新计算LSP的校验和,如果校验和与LSP中
54、携带的校验和不一致,则说明此LSP传输过程中已经被破坏。P:Partition,分区。表示区域划分或者分段区域的修复位。当P位被设置为1时,表明始发路由器支持自动修复区域的分段情况。ATT:Attached,区域关联。L1/L2路由器在其生成的L1LSP中设置该字段以通知同一区域中的L1路由器自己与其他区域相连。通常来说就是L2骨干区域相连。当L1区域中的路由器收到L1/2路由器发送的ATT位被置位的L1LSP后,它将创建一条指向L1/2路由器的默认路由,以便数据可以被路由到其他区域。虽然ATT位同时在L1LSP和L2LSP中进行了定义,但是它只会在L1LSP中被置位,并且只有L1/2路由器会
55、设置这个字段。OL:Overload,超载。表示路由器的资源状态。如果该bit被置位,就表示路由器发生了超载。超载是指路由器没有足够的系统资源(CPU资源和内存资源)用来处理路由选择交换信息。被设置了超载位的LSP不会在网络中进行泛洪,并且当其他路由器收到设置了超载位的LSP后,在计算路径信息时不会考虑此LSP,因此最终计算出来的到达目的地的路径将绕过超载的路由器。设置超载位还可以使数据的传输路径绕过某个特定的路由器。ISType:中间系统类型。该字段表示了此LSP是来自L1路由器还是L2路由器。这也表示了收到此LSP的路由器将把这个LSP放到L1链路状态数据库还是L2链路状态数据库。01表示
56、L1,11表示L2,00与10未使用。下图是采集到报文。d)IS-ISSNPPDU格式SNPPDU分为CSNP和PSNP。其中CSNP包含L1CSNP和L2CSNP;PSNP包含L1PSNP和L2PSNP。CSNP与PSNP都包含了路由器本地链路状态数据库中LSP的摘要信息。其中CSNP包含的是所有LSP的摘要信息,PSNP包含的是部分LSP的摘要信息。下图所示为CSNP的报文格式。Level1/2CompleteSequenceNumbersPDUPDULength:PDU长度。整个PDU报文的长度。包括固定报头和TLV字段。SourceID:源ID。发送该PDU的路由器的SysID。Sta
57、rtLSPID:起始LSPID。表示TLV字段中描述的LSP范围的第一个LSPID。EndLSPID:结束LSPID。表示TLV字段中描述的LSP范围的最后一个LSPID。如下图所示,是采集到的报文。下图所示为PSNP的报文格式。Level1/2PartialSequenceNumbersPDU通过上图可以看出,PSNP报文的格式与CSNP的相似,只不过没有StartLSPID和EndLSPID两个字段。由于PSNP携带的只是部分LSP的摘要信息,所以不需要起始和结束字段。如下图是采集到的报文。e)IS-ISTLV根据不同的IS-ISPDU类型和特定的网络环境,紧跟在各种类型IS-ISPDU之
58、后的是TLV(Type/Length/Value)字段,PDU报头与TLV字段构成了一个完整的IS-ISPDU。在ISO10589和RFC1195这二种当前IS-IS标准中,使用代码(code)这个词,而不是类型(type),但由于TLV用于其他协议标准中,故TLV比CLV在网络文献中使用的多,在这里我们也使用TVL代替CLV。在IS-ISPDU所使用的各种TLV中,既有ISO10589中定义的,也有RFC1195中定义的。ISO中定义的TLV用于CLNP网络环境,但是其中的大多数也用于IP网络环境。RFC中定义的TLV只用于IP环境。对于一个IS-ISPDU,后面既可以携带支持CLNP协议的
59、TLV,又可以携带支持IP协议的TLV。如果一个路由器不能识别一个TLV,那么将忽略它。EncodingofVariableLengthFields如上图中所示,TLV中包括Type、Length和Value三个字段:Code(Type):表示TLV的类型,不同的TLV使用不同的类型号来区别,Type长度为1字节。Length:表示TLV中Value字段的长度,长度为1字节,所以这意味着Value字段长度的最大值为255字节。Value:表示实际承载的值,长度是可变的,最大为255字节。下表中列出了IS-IS中所使用的各种TLV,以及这种TLV由哪种标准进行定义:类型TLVISO10589RF
60、C11951区域地址X2中间系统邻居(LSP)X3终端系统邻居X4区域分段指定L2中间系统X5前缀邻居X6中间系统邻居(Hello)X8填充X9LSP条目X10验证信息X14LSP缓存X128IP内部可达性信息X129支持的协议X130IP外部可达性信息X131域间路由选择协议信息X132IP接口地址X133验证信息X对于TLV4,它用于之前我们介绍的区域修复功能;TLV133是IETF为IP验证而定义的TLV,但是大多数实现中都使用TLV10来支持验证。使用TLV的最大优点就是增强了协议的扩展性,当需要扩展协议的功能时,只需要定义新的TLV就可以。下表中列出了部分IETF为增强IS-IS协议
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西门子杯S120培训
- 10 巴黎奥运-2025年中考英语新热点时文阅读
- 2024年山东省淄博市中考化学试题卷(含答案解析 ) +2023年中考化学及答案
- 天津市红桥区2024-2025学年八年级上期中-生物试卷
- 2024年江苏省淮安市中考语文试题卷(含答案解析)+2023年中考语文及答案
- 2024年聚合工艺理论考试100题及答案
- 质量管理体系过程方法和风险思维专业解读与应用之34:9绩效评价-9.1监视、测量、分析和评价-9.1.3分析与评价(雷泽佳编制-2024B1)
- 关于城镇道路工程与质量验收规范及新增改表格
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)8.5 拓展案例1 RDS的RemoteApp功能
- 心理健康教案
- 浅析专利法第26条第3款和第4款的关联关系
- 动力触探与标准贯入试验实施细则
- 提升机事故案例分析及提升机电控技术PPT课件
- 100以内退位减法经典实用
- 校本课程开发方案家乡景区文化避暑山庄
- 抢救病人登记表
- 投标函及投标函附录范本(完整版)
- 牙合畸形的早期矫治PPT参考课件
- 施工组织设计(横道图+平面图)
- 隐患分类分级管理台帐(完整版)
- 门式钢架钢结构施工方案(精华版)
评论
0/150
提交评论