is-is提高篇2

is-is提高篇2
2009年09月03日
  IS-IS三步曲之二提高篇 作者:小宝 - 1 - IS-IS提高篇本提高篇从以下方面介绍IS-IS 协议: l 详细了解IS-IS PDU数据包类型 l TLV介绍 l IS-IS和OSPF的比较 IS-IS是OSPF的前身,也就是说OSPF是IS-IS修改而来。邻居和邻接:路由器间要有共同的网段来形成邻居,邻居间用IIH 数据包来进行交换hello信息。 IIH 有3 种类型: l 点对点IIH l LAN 1 level-1 IIH l LAN 2 level-2 IIH Hello协议有以下功能: l 发现邻居 l 邻居间发送keepalive 保持邻接 l 邻居间确认双向通信 l 用于DIS选举 IS-IS PDUs 类型: 4 种数据包类型,每一种都分为 Level 1 和 Level 2. l IIH―用于邻居间形成邻接. l LSP―4 种lsp类型: Level 1 伪节点, Level 1 非伪节点, Level 2 伪节点, Level 2 非伪节点 l CSNP―完全序列号PDUs用于通知所有路由器所有的lsp的数目 l PSNP―部分序列号 PDUs 用于请求缺失的lsp IS-IS hellos 数据包要填充到接口的最大传输单元,确保在形成邻接前能够处理来自邻接点的最大可能的数据包。可以关闭此功能,用命令: no hello padding no hello padding multi-point 或者no hello padding point-to-point IS-IS三步曲之二提高篇 作者:小宝 - 2 - IS-IS数据包格式详解:我们已经知道isis数据包分3 种(IIH、LSP、SNPs),在isis数据包字段中有一个字段是Type,标识了此PDU是那一种类型,有可能是IIH 或者是LSP也或者是SNP数据包;每种数据包都由包头和可变长字段(TLV)组成,每种类型的数据包的前8 个字节都相同。我们就看看Type字段都包括什么内容: Level 1 LAN IS-to-IS Hello PDU Type 15 Code 1 = Area addresses 源节点区域地址 Code 6 = IS neighbors (Hellos)可收到hello数据包连接的lan 路由器 Code 8 = Padding 填充数据包到mtu大小 Code 10 = Authentication 认证 Code 129 = Protocols Supported 协议支持,支持的网络层协议(如IP和CLNP)的协议标识符。 Code 132 = IP interface address 出接口地址 Level 2 LAN IS-to-IS Hello PDU Type 16 Code 1 = Area addresses 源节点区域地址 Code 6 = IS neighbors (Hellos) 可收到hello数据包连接的lan 路由器 Code 8 = Padding填充数据包到mtu大小 Code 10 = Authentication information 认证信息 Code 129 = Protocols Supported协议支持,支持的网络层协议(如IP和CLNP)的协议标识符 Code 132 = IP interface address 出接口地址 Point-to-point IS-to-IS Hello PDU Type 17 Code 1 = Area addresses 源节点区域地址 Code 8 = Padding 填充数据包到mtu大小 Code 10 = Authentication information认证 Code 129 = Protocols Supported协议支持,支持的网络层协议(如IP和CLNP)的协议标识符 Code 132 = IP interface address 出接口地址 Level 1 Link-State PDU Type 18 Code 1 = Area addresses 源节点区域地址 Code 2 = IS neighbors (LSPs)邻居路由器和伪节点 Code 3 = ES neighbors 直连工作站 Code 6 = IS neighbors可收到hello数据包连接的lan路由器 Code 10 = Authentication information Code 128 = IP internal reachability info.域内IP路由 Code 129 = Protocols Supported协议支持,支持的网络层协议(如IP和CLNP)的协议标识符 Code 132 = IP interface address 出接口IP地址 Level 2 Link-State PDU Type 20 Code 1 = Area addresses 源节点区域地址 Code 2 = IS neighbors (LSPs) 邻居路由器和伪节点 IS-IS三步曲之二提高篇 作者:小宝 - 3 - Code 2 = IS neighbors收到hello数据包连接的lan路由器 Code 4 = Partition designated Level 2 IS:分隔指定层2中间系统,在层2区域上用虚链路互连分隔的层1 区域的层2 邻居 Code 5 = Prefix neighbors 前缀邻居,可达nsap前缀 Code 10 = Authentication information Code 128 = IP internal reachability info.域内IP路由 Code 129 = Protocols Supported支持的网络层协议(如IP和 CLNP)的协议标识符 Code 130 = IP external reachability info外部IP路由 Code 131 = IDRP information域间路由选择信息 Code 132 = IP interface address 出接口IP地址 Level 1 Complete Sequence Number PDU Type 24 Code 9 = LSP entries LSP条目信息 Code 10 = Authentication information 认证 Level 2 Complete Sequence Number PDU Type 25 Code 9 = LSP entries LSP条目 Code 10 = Authentication information Level 1 Partial Sequence Number PDU Type 26 Code 9 = LSP entries LSP条目 Code 10 = Authentication information Level 2 Partial Sequence Number PDU Type 27 Code 9 = LSP entries LSP条目 Code 10 = Authentication information 从上面的表看出,hello数据包类型的分类: l LAN Level-1 hello数据包的pdu是类型15 l LAN Level-2 hello数据包的pdu是类型16 l 点到点hello数据包的类型是17 LSP的数据包类型: l 层1的lsp类型是18 l 层2的lsp类型是20 SNPs的数据包的类型: l 层1 CSNP 类型是24 l 层2 CSNP 类型是25 l 层1 PSNP类型是26 l 层2 PSNP类型是27 所有类型的数据包包头信息大致相同,包头字段再加上TLV 字段就形成了完整的数据包,每种类型数据包仅支持某种特定的TLV 字段。提示:TLV 是Type、Length、Value就是变长字段的内容,在ISO10589中使用Code这个词来表示而不是用Type,但Type的叫法在其他文献中使用较多,所以Type和Code意思一样。 IS-IS三步曲之二提高篇 作者:小宝 - 4 - IS-IS Hello 包格式:主要字段: Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,分配给IS-IS协议的网络层标识符:0x83 Length Indicator:长度标识符,数据包头字段数 Version/protocol id ext:当前为1 IS-IS三步曲之二提高篇 作者:小宝 - 5 - ID length:标识源ID(SysID)字段长度,值为0 表示长度为6 字节 TYPE:PDU类型,就是上面我们的那张表,表示此数据包的类型是hello,SNPs还是LSP Version:版本为1 Resvered:保留位,1 Mximum Area Addresses:值为1-254 的实际数字,为0 的时候表示每个区域最多3 个地址; 路由器间这个数字必须相同,否则不能形成邻接。以上8 个字段所有的isis数据包都相同。 Source ID:发送路由器的SysID Holding time:保持时间,缺省是hello的3 倍,也可以用isis hello-multiplier 改变 PDU length:整个PDU的长度大家注意到LAN的IIH和点到点的IIH包不同的是,点到点IIH有一个本地电路ID,LAN IIH 有一个LAN ID 和优先级信息。路由器利用hello包头8位local ID 给每一个点到点链路分配一个本地唯一的链路标识符。8 位字段允许路由器最多定义256 个点到点链路。 IS-IS三步曲之二提高篇 作者:小宝 - 6 - IS-IS LSP 数据包和SNPs 数据包 IS-IS三步曲之二提高篇 作者:小宝 - 7 - 层1 的LSP 和层2 的LSP 各自封装了不同层次的路由选择信息,但他们的数据包格式差不多,不同的是TLV 值。我们通过上面的表格知道了,层1LSP的PDU类型是18,层2是20 Code 1 = Area addresses 源节点区域地址,这类TLV 列出源路由器上配置的区域地址组。 Code 2 = IS neighbors (LSPs)邻居路由器和伪节点,这类TLV搜寻并列举邻接的层1 路由器,这类TLV 和hello包的Code6 不同,Code2 包含每台邻接路由器的度量信息。 Code 3 = ES neighbors 直连工作站,这类TLV 只在层1 路由LSP出现,搜寻并列举出邻接的层1 路由器和终端系统。 Code 6 = IS neighbors可收到hello数据包连接的lan路由器 Code 10 = Authentication information 明文验证 IS-IS三步曲之二提高篇 作者:小宝 - 8 - Code 128 = IP internal reachability info.域内IP路由,这类TLV存储了直接连接的IP地址前缀表,只在非伪节点的LSP 中使用,每个IP 地址前缀被分配了一个度量值。,默认为窄度量,6 个bit Code 129 = Protocols Supported协议支持,支持的网络层协议(如IP和CLNP)的协议标识符 Code 132 = IP interface address 出接口IP地址,包含了LSP源路由器上配置的一个或多个IP 地址,高版本的IOS自动写入环回地址。 Code 3是层2LSP的TLV 没有的字段,专门为层1 设计。 Code 1 = Area addresses 源节点区域地址 和层1 相同 Code 2 = IS neighbors (LSPs) 邻居路由器和伪节点 这类TLVcisco目前不支持 Code 4 = Partition designated Level 2 IS:分隔指定层2 中间系统,在层2区域上用虚链路互连分隔的层1 区域的层2 邻居 Code 5 = Prefix neighbors 前缀邻居,搜寻可达nsap前缀,只用于CLNP区域间选择。 Code 10 = Authentication information Code 128 = IP internal reachability info.域内IP路由 Code 129 = Protocols Supported支持的网络层协议(如IP和CLNP)的协议标识符 Code 130 = IP external reachability info外部IP路由,这TLV 收集通过其他路由协议得到的 IP路由信息。 Code 131 = IDRP information域间路由选择信息 cisco不支持 Code 132 = IP interface address 出接口IP地址 和层1 相同。 CSNP和PSNP数据包是为了保证可靠的扩散LSP。两者具有相同的数据包格式并各自携带了LSP摘要信息的集合,区别是csnp是携带了路由器的lsdb 所有的lsp摘要信息,而psnp 是携带信息只是一个子集 IS-IS三步曲之二提高篇 作者:小宝 - 9 - IS-IS 和OSPF 的比较:经常会有人问:IS-IS和OSPF谁更好?近两年由于cisco的引导IS-IS在国内大型网络中开始得到规模的应用,但OSPF在全球范围的应用更多。 ISIS 协议的日益流行使其有点也备受关注.从根本上讲ISIS 和OSPF 从基本功能与操作上都是如此的相似,以至于很难说使用其中一个就比另一个好的或者更有效.当然,这两个协议也有不同之处,其中包括细微差异和重大差异。集成ISIS和OSPF都是20 世纪80 年代后期定义的,简单的说OSPF是从ISIS早期版本进化而来的。和ISIS本来是为CLNS设计路由不同的是,ospf天生就是为支持IP路由设计的,并且 IETF大力推广OSPF为IP网络的首选内部网关协议。由于isis没有被更多的厂商支持,如 Bay和3com,所以ospf比isis更加流行。近年来集成isis协议用于IP路由选择的快速发展,欧洲的大多ISP配置更多的采用ISIS 而不是OSPF。但相比OSPF大量RFC的发布,ISIS则显得少的可怜,目前为止好像只有RFC1195和 ISO10589,近两年IETF 重新标准化了ISIS 的新应用,如MPLS 流量工程,IPv6 等等,另外isis第二个版本即将启动。我们从下面的两张图可以简单了解一下两者的区别。 IS-IS三步曲之二提高篇 作者:小宝 - 10 - IS-IS三步曲之二提高篇 作者:小宝 - 11 - 接下来继续讨论两者的差异和共同之处。首先了看看共同之处: l 都是链路状态协议,都要求区域内的路由器交换路由信息或者链路状态信息。链路状态信息都被收集到链路状态数据库中。 l 都使用扩散来进行交换路由信息 l 都在广播链路中使用指定路由器来控制扩散 l 都是基于链路状态数据库中的信息,采用几乎相同的算法 l 都支持分层路由选择 l 都支持无类路由 l 都是IGP协议在看看区别: ISIS OSPF ISIS是支持ISOCLNP和IP双重路由 仅支持IP包 ISIS封装在链路层中 封装在IP包中 ISIS是ISO3个网络层协议之一 不是网络层协议,在IP上运行 ISIS可以忽略不支持的TLV类型 网络中所有ospf 路由器必须识别所有使用的扩展和lsa 选项 ISIS可以承载多个tlv字段,只有一个包头节省带宽所有ospf的lsa 都有自己的包头,type 1 和2 的lsa 可以有多个ip 前缀,type3,4 和5 的 lsa 仅可以承载单个ip前缀。 ISIS仅支持广播和点到点类型 OSPF支持:点到点,广播,NBMA,点到多点,按需电路。最初数据库同步在邻接关系建立后进行 数据库同步在邻接建立以前进行 ISIS路由器只属于一个特定区域 OSPF路由器可以属于多个区域在链路上划分边界 在路由器上划分边界默认下isis 是stub 区域,层2 不能向层1 泄漏路由信息默认不是stub区域 DIS无备份,DIS可以被抢占 DR有备份,DR不能被抢占 ISIS可以进行PRC计算 OSPF要进行完全SPF计算 ISIS 仅在点到点链路上进行可靠扩散,在广播链路上是不可靠的 OSPF保证在所有链路上上扩散的可靠性深入探讨:这些讨论包括: l 封装 l 报文格式和编码问题 l 邻接路由器的发现与邻接关系的维持 l 路由选择信息的分发 l 度量 IS-IS三步曲之二提高篇 作者:小宝 - 12 - l 稳定性,收敛性和扩展性 l 结论:那个协议更好。封装集成isis 协议作为网络层协议直接运行与链路层上,isis 数据包在以太网中通过其协议类型0xFEFE 被链路层承认。IP类型是0x0800。在链路层上运行isis 协议的好处是可以避免受到ip 数据包欺骗与DoS 攻击,不利之处在于不能在ATM 上运行 ospf在ip上运行,协议号为89,在IP中封装意味着ospf报文会遭到IP包欺骗与拒绝服务攻击。报文类型和编码问题: 1.可变长字段 isis大量使用可变长报文来通告路由选择信息。所有的isis报文均使用了tlv字段,从而每类isis报文都可以扩展。并且isis路由器可以忽略自身不支持的tlv类型。 OSPF报文报文格式不可以扩展。OSPF使用各种不同类型的lsa来通告信息。Lsa 是可扩展的。和isis不同的是,那些没有得到接收认可的lsa 类型不会扩散到邻接路由器。 2.最大传输单元匹配为了建立邻接,ospf 和isis 都需要通知路由器获取匹配的最大传输单元的大小。isis 协议在hello 报文中填充mtu 大小,而ospf 则在数据库描述报文中通告接口mtu。isis 可以手工禁止mtu的填充报文。邻接路由器的发现与邻接关系的维持在isis和ospf中都是通过周期性地传送和接收hello报文来实现的,isis的hello报文被通告到第二层广播地址上,比如以太网广播地址是0180.c200.0014 和0180.c200.0015。ospf 被广播到224.0.0.5 和DR224.0.0.6 下表是isis和ospf中相应hello的定时器:接口类型 ISIS OSPF 点到点 Hello-10s Holdtimes-30s Hello-10s deadtimes-40s 等待-40s 广播 Hello-10s Holdtimes-30s Hello-10s Dead-40s 等待-40s NBMA N/A Hello-30s Dead-120s 等待-120s 邻接关系的建立 isis和ospf在邻接关系建立上存在重大的差异,isis 协议在通过交换hello报文建立双方通信后建立邻接关系,在建立邻接后就会同步双方的lsdb,由于邻接关系建立先于数据库同步从而可能引起的瞬时路由选择问题可以通过使用isis超载位来解决。 OSPF采用了一个复杂的进程,该进程要求路由器在建立邻接之前同步他们的lsdb,这 IS-IS三步曲之二提高篇 作者:小宝 - 13 - 样就可以避免那些当相邻的还不具备完全转发能力的路由器吸收了中转流量时可能会发生的瞬时路由选择问题。指定路由器 isis和ospf都有指定路由器的概念,用来限制在广播链路中,路由器之间交换的链路状态信息的数量。 ISIS 只要求选举一台DIS,不需要备份,而且允许抢占,DIS 通告hello 报文的速度比其他路由器要快,缺省时其他节点的3 倍。 OSPF选举一台DR和BDR,DR不能被抢占路由选择信息分发 1.扩散扩散是链路状态协议用来在网络中分发链路状态信息的一种手段,通过扩散来共享链路状态信息使得所有路由器都拥有一致的网络拓扑信息,从而可以计算通往网络中目标地址的无环路由。 ISIS只有在点到点链路才能保证可靠扩散,在广播链路中可以通过dis来实现路由信息的同步 OSPF在点到点链路和广播链路中都能实现可靠的扩散。 2.ISIS LSP和OSPF LSA的老化 isis报文中的剩余生存时间使一个从1200 秒开始倒数的定时器。 OSPF则使用了一种正向技术的计数器,用来表示lsa 被产生以来所经过的时间。 ISIS允许设置最大生存时间为18.7 小时 OSPF生存时间使一个固定值为1 小时为了将一个过期的lsp清除,isis路由器可以把该lsp的剩余时间设置为0并广播到网络中。 ISIS允许任何路由器都可以从网络中清除被破坏的lsp。 OSPF只允许路由器提早清除那些自己产生的未过期lsa,这样可以避免isis的lsp破坏风暴。 ISIS和OSPF都会周期刷新再生lsp来刷新现存的lsp,即使没有过期。 ISIS每15 分钟刷一次,ospf是每30 分钟刷新一次,具有禁止老化的lsa 在lsdb 中不会老化,所以不需要每30 分钟刷新一次,然而如果这样的lsa在保持了60分钟后而且在这段时间内其源路由器也不能连通,那么将被清除。度量 isis路由携带了度量信息,cisco只支持缺省度量。 ISIS 默认为窄度量,使用6bit,最大度量为63,并且路径度量最大不能超过1023。宽度量支持更大更灵活的度量值,在扩展ip tlv(135)宽度量占32bit。 ISIS接口默认度量为10,isis 度量可以通过设置I/E字段表示是内部度量还是外部度量,如果该字段被设置(即外部度量)那么度量的通告值要加64(有些IOS要加128) OSPF同样使用与带宽成反比的度量。OSPF接口cost取值范围为0-1024,一个网络的metric 达到65535 认为不可达。稳定性、收敛性与可扩展性网络的不稳定性会影响网络资源、比如带宽,处理器性能和内存。 1. 路由计算 IS-IS三步曲之二提高篇 作者:小宝 - 14 - isis和ospf都是用spf计算路由,所以他们的收敛时间大致相同,实际上每个方面都差不多,但是,由于isis采用prc计算,ip前缀作为最短路径树的叶子节点,这就为isis协议在网络事件只影响到ip前缀而没有涉及基本的拓扑结构的情况下运行只需消耗少量CPU资源的部分路由计算提供了更多的机会。 OSPF 是围绕链路而建立的,所以在某个区域内任何IP 前缀变化都会引发整个SPF 算法的运行。对于ospf来说只有type 3、4、5才能导致部分spf计算,因此isis中运行prc比在ospf中运行部分spf要普遍的多,使得isis可以容纳更多的网络区域而ospf则主要在相对较小的网络中实现分层设计,这个优点使得isp可以配置一个较大的单一isis域从而克服分层设计中次优路由选择的问题,当然划分区域和分层是很好的设计习惯。 2. ISIS LSP和OSPF LSA的大小限制在isis中,一条lsp id包含一个8bit的分段编号,因此一个lsp可以分为256 个片断,lsp 被最大限制为1492 字节,出去27字节长的包头,一条lsp还剩1456 字节用于各类tlv。这意味着一台路由器最多可以拥有256×1456字节的空间来封装ip可达性tlv。一个估算表明 isis能够支持的ip路由数目为30000 个前缀。Isis用8bit来表示点到点电路id,每台路由器的点到点邻居数目限制为256 个。一台路由器最多只能作为256 个局域网的DIS。 OSPF协议也具有一些由网络lsa与路由器lsa的最大总量为64k字节大小带来的类似限制。这个数字允许大约5000 个lsa 类型1 链路与5000 个lsa 类型2 链路。比如我们只考虑 type 1 lsa,在类型1 lsa中固定字段占用了24 字节,12个字节大约可以表示比5400稍多的表目,这个数字接近与在路由器lsa 中定义的16bit字段所能表示的链路的最大数目65535 ISIS区域和OSPF区域能为多大一个IGP能够支持多大的区域是许多人都感兴趣的问题一个区域的规模是涉及多个因素的一项性能,其中包括可用的网络资源(如内存,cpu,带宽等)与链路的稳定性。区域越大,要求的资源就越多。另外不稳定的区域会给路由器带来不必要的处理负担。 isis在1000台路由器的域中没有出过重大问题,目前世界顶级的isp 运行在isis的单个域中都超过500 台,ospf也可以配置到350 台,不过数据不是绝对的最主要的因素是网络的稳定性与可用资源,isis倾向于支持更大的区域,主要是因为ip 前缀是spf树的叶子,从而在多数链路故障没有冲击网络核心的情况下完整的spf不会运行。在ospf中,区域内所有链路故障都会出发lsa 更新,这就会导致spf的完全运行,所以,平均来说与isis相比,类似大小的一个ospf区域需要的系统资源要多。安全性 isis只支持明文密码,不过应该很快就支持md5 认证方案了 isis直接封装在链路层上,不容易被攻击 ospf在ip上封装,容易被攻击结论:那个协议更好? ISIS 和OSPF 已经成为配置大规模IP 网络时可选择的内部网关协议。这两种协议都已经被广泛的配置使用,从中等规模到大规模网络,OSPF 的应用更为广泛,isis 协议主要在一些顶级isp网络中运行并且采用一个单一区域配置,从而提供了极大的扩展性。大多数ISP之所以选择isis主要是因为在一段时间内它具有最稳定的实现。 OSPF具有大量的厂商的协议实现,而成熟稳定的isis则要少的多,虽然ospf可以通过使用不透明lsa 来扩展,但相比isis 的可扩展性更强。Ospf 更像一个完全的internet 标准, IS-IS三步曲之二提高篇 作者:小宝 - 15 - 同时也形成了更好的文档并且已经广泛的理解。这两种协议都在不断改进并且目前都已支持IPv6,isis 通过原始协议的扩展来支持 IPv6,而ospf通过一个新协议,即ospf版本3 来支持IPv6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值