ISIS基本原理

内部网关协议,基于spf算法的链路状态路由协议

在OSPF中域内天然无环路,域间从设计原则来说是确保无环的,另外OSPF的开销计算是采用带宽的方式计算开销,非常合理,并且从理论上ospf是可以无限扩大规模的,因为它采用区域化的设计。
那么,在ISIS中,采用相同的算法,也是无环的,也是一种理论上也是可以无限扩大规模的,因为它也采用区域化的设计。由于自身的特点,更适合于ISP网络。

在ISIS中基于路由器划分区域

OSPF中骨干区域和非骨干区域的划分依托于区域编号
而ISIS中是依托于L2级别的路由器所覆盖的范围
L1:类似于ospf非骨干区域路由器,性能一般,只维护区域内部的链路状态数据库,只能和本区域的L1设备或者L1/2设备建立L1的邻居关系,维护区域内的L1的LSDB。 
L2:为了实现区域和区域之间的通信,和L1最大的不同在L2可以与本区域内以及其他区域的L2或者L1/2路由器建立L2的邻居关系,维护L2的LSDB。
L1/2:L1/2路由器能够和区域内的L1路由器建立邻居关系,建立L1的LSDB,同时能够和同一区域以及不同区域的L2路由器,建立L2的邻居关系,维护L2的LSDB。
 
IS-IS 中可以有多个骨干区域,且骨干区域ID 不固定,即任意,但它与OSPF 一样要求所有的非骨干区域(通过L1/2 路由器)必须直接与骨干相连,普通区域之间不能直接连接。IS-IS 中的骨干区域全由L2 路由器构成,在骨干区域内部必须与其他L2 路由器直连,在与普通区域之间,必须与L1/2 路由器相连,不能与L1 路由器相连。在ISIS中,L2的邻居关系构成了骨干区域,所以,骨干区域也称为L2区域。
图13-2 所示为一个运行IS-IS 协议的典型网络结构。在这种拓扑结构中,Area 1 是骨干区域(可以是其他区域号),该区域中的所有路由器均是L2 路由器。另外4 个区域为非骨干区域,它们都通过L1/2 路由器与L2 路由器相连。
ISIS不存在虚连接,因为ISIS主要用于运营商网络,前期规划非常合理,所以不具备虚连接这项技术。

因为ISIS常见于ISIS网络,而由于运营商的特征是业务类型比较单一,网络结构比较平坦。 运营商网络存在的主要目的就是传输,因此网络结构不像企业网络那么复杂,因此ISIS不像OSPF有多种类型的网络,ISIS只有两种网络: 
1、在二层协议为PPP协议或者HDLC协议的时候,看做 点对点网络。
2、当二层协议为Ethernet(以太网络)时看做 广播型网络。

 DIS的选举:比较优先级,越大越优先,DIS优先级字段7bit,DIS选举优先级默认为64,优先级范围为0—1270为最小值且参与选举,优先级一致则比较MAC地址,越大越优先
L1的DIS和L2的DIS是分开选举的,在L1和L2网络中,都得选举DIS。ISIS中,DIS支持强占。OSPF中DR的作用是减少邻接关系数量,避免重复的LSA,而ISIS中所有设备都是邻接关系,DIS只能起到一个作用:确保网络内的设备LSDB都是同步的。    

ISIS扩展性好是因为:
1、ISIS工作在数据链路层, OSI整体体系是由下向上支持,所以isis向上支持可以支持多种类型的网络协议,支持CLNS环境也支持IP环境, 以扩展性比OSPF更 好,甚至完全有能力支持IPv6环境或者未来的其他类型的网络层协议。
2、报文结构是多个TLV(type,length,value)拼凑在一块,格式并不固定。比如需要认证的时候,加一个TLV,不需要的时候删去TLV。目前在ISIS中有200多种TLV。

ISIS和OSPF都有个通病,OSPF报文封装在IP之上,所以报文不具备可靠性, 而在ISIS中直接封装于数据链路层,也不具备可靠性,所以LSDB同步时可能并不完整, DIS的作用是能够确保网络内设备的LSDB的完整性。

非骨干区域的L1路由器把自己的LSDB同步到L1/2,L1/2内的L1的LSDB自动引入到L2的LSDB,所以骨干区域的L2路由器将会掌握着ISIS当中所有区域的路由,也就意味着骨干区域的所以设备都具有到达任何区域的能力。而L1/2会向非骨干区域下发默认路由(下发特殊的LSP,这个LSP中有一个参数取值为1,当非骨干区域收到这个LSP将会自动生成一条缺省路由),所以非骨干区域设备将要向骨干区域或者其他非骨干区域发起访问时直接将路由发送个离他最近的L1/2路由器就可以了。

OSPF在开发时本身就是为了适应IP网络设计的,所以报文封装于ip之上。
RIP封装于UDP之上
OSI整体体系是由下向上支持,OSPF在三层,ISIS在二层,所以isis向上支持可以支持多种类型的网络协议
BGP封装于TCP之上,因为BGP一般用于大型网络,比较庞大,路由数目太多,设计成封装在TCP之上可以确保路由传递的可靠性

NET地址:专门为了适应IP环境,20个字节,13个字节( 1—13个字节,区域ID可调整)作为区域id,6个字节(48个比特,才用十进制的方式表示)作为System  ID(router-id),还有一个字节作为标识( 固定为00,代表的IP环境),可以看做AS和router-id的结合体。
在ISIS中,设备允许同时配置多个NET地址。

ISIS的报文类型:
HELLO PDU(IIH):用于发现,建立和维持邻居关系( 广播型网络中要分L1 LAN IIH和L2 LAN IIH两种hello,原因在于L1和L2要分别进行DIS的选举,L1和L2路由器他们所携带的参数不可能同时携带两个DIS优先级,双方设备发送hello的时候,hello报文中无法同时携带两个DIS优先级,所以有两种类型的hello,分别进行建立L1的邻居关系和L2的邻居关系。另外点到点网络只有P2P IIH一种hello,在广播型网络中,路由器所发送的hello报文中会很明显的指明自己的设备是什么设备,在它的报文头部中也指明了它当前pdu的类型,也就意味着双方设备可以通过hello报文里的类型判断双方设备是什么设备
L1 hello的组播MAC地址:01:80:c2:00:00:14
L2hello的组播MAC地址:01:80:c2:00:00:15
点到点网络中hello包组播MAC地址:09:00:2b:00:00:05

LSP PDU: 用于交换链路状态信息,类似于OSPF的LSU,
SNP PDU:用于维护LSDB的完整和同步,且为摘要信息。
 ISIS的报文向外发送的时候必须填充至和接口MTU值一致,原因在于这鞋填充字段可以用于将来补充TLV。


ISIS中设备可以存在于三个区域
ISIS中hello间隔每10秒一次
邻居死亡时间30秒

ISIS中邻居即为邻接

在广播型网络中ISIS一共2个状态:initialized和up


P2P网络中只有一种状态,一台设备只要收到hello报文并且认可里面的参数,则进入up状态,建议在点到点网络强行调整为三次握手才能建立邻居关系。



LSP的交互过程:
 广播型网络:

R3为新加入网络的设备,建立邻居关系后,R2作为DIS每隔10秒发送一次CSNP(类似ospf的DD报文),进而R3发现有自己没有的属于R1,R2的部分报文,进而发送PSNP(类似ospf的LSR),然后DIS将发送LSP(类似OSPF的LSU)将R3没有的部分发送给R3。 如果中途丢失报文也没关系,因为每隔十秒DIS就会再次发送CSNP。

 点到点网络:

路由器R1在邻居关系建立好之后立即将自己的链路状态数据库通过CSNP进行完整的描述,R2收到后会根据这个CSNP的内容判断哪些是自己没有的,然后根据自己没有的内容构建PSNP,R1收到PSNP之后会根据PSNP将对应的LSP报文发送给R2,然后R2收到R1发送的LSP之后,会再次发送PSNP报文(起到确认的作用,只有在收到LSP之后才触发),  若R1发送的LSP丢包,则R1过五秒再发送一个LSP到R2,所以不怕丢失。但是 在点到点网络中,CSNP报文只发送一次,若第一个CSNP或者第一个PSNP丢失,就很尴尬,那怎么解决呢,是不是配上一条命令让CSNP报文可以每隔几秒发送呢?我也不知道,知道的同学们评论里教教博主可好。

同步完成之后和ospf一样,基于本地LSDB的基础上,执行SPF算法,计算最短路径数。

猜你喜欢

转载自blog.csdn.net/geek_w/article/details/79639993