注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 华硕获奖方案 - 中小企业..
 帮助

IS-IS 知识点 (Updating)


2008-03-28 14:07:17
 标签:IS-IS 路由协议 IGP   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://steven24.blog.51cto.com/346765/68559
IS-IS地址
 
NET地址 = NSAP + 00(NSEL) 例:49.0000.0000.0001.00(16进制)
 
NESL类似于IP报文中的协议位,标志了不同的协议号,可以说是承载上层信息的字段(因为IS-IS本身不依赖于IP协议,也就不涉及IP相应的服务,只能自己来),目前所学这里就是00。
 
NSAP = Area ID + System ID   Area ID定义路由区域,System ID 定义区域内每一个节点,其中Area ID为1-8 bytes,System ID固定为6 bytes。
 
IS-IS是在链路层上直接封装的路由协议,基于CLNS构架,有节点概念无接口概念,所以NET地址标志的是一台路由器,也就是名称中提到的IS(Intermediate System-中间系统)。
 
IS-IS在链路层定义了SNAP(subnetwork point of attachment)和Circuit,SNAP是由OSI定义的Layer2地址,针对网路类型各有不同,比如在Ethernet中为Mac地址,在Frame-Relay中为DLCI值。
 
在Ethernet中,Circuit ID 与System ID连用,共6+1 Bytes,比如1921.6800.0001.01(均为16进制,最后两位至FF),01就是用来区别Router的各个接口,不过在Cisco路由器中,链路ID使用主机名而不是System ID,如Cisco.01。
 
保证System ID 区域内唯一的方法是使用接口Mac地址或者IP地址,建议使用IP地址,容易解读,形式为 192.168.0.1  -->  1921.6800.0001。
 
IS-IS是基于CLNS网络设计的,后来由于TCP/IP协议族的兴起发展为集成IS-IS,对IP协议给予支持,不过即使是这样,在IS-IS中给接口配IP地址仍旧像挂一片叶子一样无足轻重,有Circuit ID 和 System ID,网络已经可以组建起来,IP地址本身都不参与SPF运算。
 
IS-IS链路
 
IS-IS支持的网络类型只有两种:Broadcast and Point-to-Point ,没有NBMA的概念。
 
Broadcast链路中,Level-1和Level-2区域更有自己的DIS,需要注意的是,DIS在每个L1 Area中都选举一个,而L2 Area由于不受AreaID的限制,所以整个L2 Area选举一个DIS,Level-1 and 2的DIS不一定相同。事实上DIS是路由器的一个接口,同OSPF比较而言没有备份DIS,相应的解决备份问题的机制是DIS抢夺,代价是每抢夺一次会引起一组LSP的泛洪,同时IS-IS LSDB在LAN上不断同步,即CSNP的周期性发送,其实设计成周期性发送还有一个原因,那就是CSNP不要求有确认回应。
 
IS-IS通过接口优先级(0-127,缺省为64,比大) & 最高的Mac地址选出DIS,IS只与DIS形成邻接关系,之间的通信不会通过三层的IP组播地址,这里依然强调的是不基于IP协议,相应的解决方案是使用二层组播Mac地址,Level-1通告发送到0180.c200.0014,Level-2发送到0180.c200.0015,注意:这样的一个Mac组播地址是所有IS都监听的,不像OSPF中DR/DRother监听不同的组播地址,不过一个IS发出的PSNP请求只有DIS会用相应的LSP给予回应。
 
IS-IS的LSDB同步中,SNP(Sequence Number PDU,序列号报文)分为PSNP和CSNP,这个与OSPF的分组可以形成对应,PSNP对应的OSPF的LSR and LSAck,CSNP对应OSPF的DBD,但是有细节上的差异。

IS-IS的Point-to-Point链路LSDB同步,CSNP只在点到点链路激活时发送一次,PSNP担当LSR和LSAck的职责,既作为链路信息查询,又要用来确认每一个LSP数据包是否收到。
 
IS-IS的Broadcast链路LSDB同步,LSP不需要每一台接收它的路由器确认,DIS周期性的发送CSNP(间隔为10s),PSNP只相当于LSR。
 
在NBMA上部署IS-IS时,注意在广播模式下必须使用 CLNS Mapping,并包含Broadcast关键字,使其假定为Full-mesh,不过还是强烈建议使用点到点模式,并应用子接口,否则可能会有路由丢失。
 
思科对于IS-IS的度量值处理十分简单,默认接口度量(单链路开销)Cost=10,可设置为0~63之间的数值(2^6),路径度量(路由总开销)为0~1023(2^10),不过这是以前的窄带度量值,新版本的IOS已经扩展到24位的接口度量和32位的路径度量。
 
IS-IS通过Hello来形成邻接关系,针对链路类型的不同,IIH可以分为3种,点到点IIH(周期为10s),Level-1 LAN的IIH,Level-2 LAN的IIH(DIS发送Hello周期为3.3s)。而就Hello的大类而言可以分为ESH(ES之间的Hello),ISH(IS与ES之间的Hello)以及IIH(IS间的Hello)。
 
IS-IS路由
 
OSI定义的IS-IS路由等级:Level-0 (ES与IS之间) Level-1 and Level-2 (IS与IS之间,Level-1为Area内,Level-2为Area间)  Level 3 (Domain之间)一般IS-IS划分为Level-1 and Level-2两层路由区域,这样可以实现LSP在有限区域内的泛洪,同时可以通过Level-1-2路由器进行了路由汇总,最终实现CPU,内存和带宽的有效利用。
 
只要存在Level-2的路由器,该区域即为骨干区域,没有Area ID的限制,即两个Level-2的Router及时不在同一Area也能形成邻居关系,这一点与OSPF严格的Transmit Area & Regular Area 划分很是不同。
 
Level-1路由器和Level-1或者Level-1-2路由器形成Area内拓扑,Level-2路由器和Level-2或Level-1-2路由器形成Area间拓扑。同一区域内路由器的Area ID必须相同,ES与所连路由器用相同的Area ID。Area ID用于Level-2路由(区域间路由),System ID用于Level-1路由(区域内路由)且Area内必须唯一,具体来讲,Area间路由的时候,只考虑Area ID,不考虑System ID,Area内路由的时候,只考虑System ID,不考虑Area ID。
 
IS-IS在设计时应先定义好区域,骨干区域全为Level-2 Router,边界为Level-1-2 Router(最好规划到Level-1区域),末节区域为Level-1 Router。需要注意的是,当一个Level-2 或者Level-1-2路由器与其他Area的路由器相连时,它所发的LSP的ATT位为会设为1; Level-1区域作为网络的末节会有默认路由注入,并且选择最近的L1/2路由器作为该区域的出口。
 
IS-IS特性
 
强扩展性:第一点,以路由器等级(Level)来划分骨干区域,没有实际上地理位置的制约,但设计时应该考虑。
 
第二点,IS-IS的边界在链路上,不像OSPF那样以ABR作为边界,这样每个Router只属于一个Area,而且可以通过设置使一个IS属于多个Area(默认最多为3个),这样在区域过度的时候不必中断,像ISP中的IS-IS往往就是一个单一的L2区域,仅提供区域的外部出口,这样新的Area可以作为L1类型直接连接到已经存在的L2区域。
 
第三点,IS-IS应用TLV来进行通告,TLV可以扩展出很多信息,格式无穷无尽(TLV是Type,Length,Value的缩写,更厂商自行设计,在编程时被翻译为“元组”,指的是大小固定的异构对象的集合)。
 
OL位设置:IS-IS有一个有趣的特性,如果它的设备由于内存不足无法记录完整的链路状态数据库时,它具有通知其他路由器的能力,其动作是在所发送的LSP数据包中设置OL位(Overload),表明自己可能不能进行正确的路由选择,所以在该路由器没有清除OL位之前,其他路由器不会通过这台路由器来转发,不过需要注意的是,由于LSDB可以针对L1或者L2,所以路由器可能只是在其中一层过载,而其他层内存还正常。
 
OL位目前最常用的地方是在BGP网络中,当一台新的路由器添加进网络,IGP会比BGP先收敛,如果另一台路由器根据收敛的IGP路由确认这台新添加进来的路由器是BGP路径的下一跳,而这时新路由器的BGP还没有完成收敛,就会造成路由黑洞。
 
在BGP收敛之前通过设置IS-IS的OL位,可以避免这个问题,其他路由器会绕过这台新的路由器进行选路,一旦BGP收敛,OL位将被清除。建议使用 set-overload on-startup 指定一个秒数说明IS-IS启动后需要设置OL位的时间(可设为300~500s),也可以加关键字 wait-for-bgp 使其在BGP完成收敛的时候清除OL位(不过一旦BGP由于某些原因没有起来,OL位就永远不会清除,所以还是设置时间为好)。
 

 

本文出自 “Steven.Q的学习笔记” 博客,请务必保留此出处http://steven24.blog.51cto.com/346765/68559





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: