IS-IS路由协议通过IIH报文建立邻居关系时需要遵循的基本原则:
(1) 只有同一层次的相邻路由器才有可能成为邻接体
(2) 对于Level-1路由器来说要求区域号一致
(3) 同一网段检查,此项为华为特性。由于IS-IS直接承载在数据链路层之上,理论上是不需要进行同一网段的检查,VRP提供了这一新功能,保证邻居关系的正确建立。Cisco IOS无此功能。
(4) 与OSPF协议的不同之处。OSPF协议使用接口来划分区域,一台路由器可能同时属于多个区域,和多个区域的路由器形成邻居关系;而IS-IS协议规定路由器整体属于某个特定的区域,L1路由器只能建立Level-1的邻居关系,L2路由器只能建立Level-2的邻居关系。
(5) IS-IS路由协议中在点到点链路上,没有两次握手机制,即一方收到对方的hello,经过合法性检查后,邻居就直接up了。OSPF协议中需要两次握手才能建立邻居关系,可靠性更好。
(6) 在点到点链路上,缺省将进行ip地址在同一网段上的检查,ip地址不在同一网段将导致链路两端邻居建立失败。最近,VRP新做了一条命令,ignore-ppp-ip-check, 通过配置该命令可以取消ppp链路上的同一网段检查。该命令只对链路层为ppp协议的链路生效,缺省情况下该命令不生效。
(7) IS-IS路由协议中广播链路上需要进行两次握手验证,邻居才可以UP。因此可靠性更好一些。在这一点上和OSPF协议的广播类型一致。
IS-IS路由协议中的DIS和OSPF路由协议中的DR的区别:
在OSPF路由协议中,我们需要选举DR和BDR。DR一旦当选,具有终生制,如果DR发生故障,BDR接替原有的DR,同时重新选举BDR。而在IS-IS路由协议中,我们只需要选举DIS路由器,没有备份的DIS路由器的概念,DIS路由器不具有终生制,一旦网络中新增加的路由器DIS的优先级高于当前的DIS的优先级,网络中将重新选举新的DIS,网络的稳定性较差。
在OSPF路由协议中普通路由器DR Other只需和DR、BDR建立邻接关系,DR Other路由器间只需建立邻居关系,相互间握手即可。而IS-IS路由协议中由DIS生成一个伪节点(pseudonode),由伪节点周期性的发送CSNP报文和其他节点进行数据库的同步。
LSP 生存时间
IS-IS路由协议的LSP生存时间从1200秒(20分钟)倒计时到 0,我们也可以设置最大为65535秒的生存时间;而OSPF路由协议的生存时间从0秒正计时到3600(60分钟)。
收到较新版本的LSP时,将重置生存时间;
IS-IS路由协议产生LSP的路由器会在15分钟时主动发起泛洪,进行LSP的更新,OSPF路由协议产生LSA的路由器会在30分钟时主动发起泛洪,更新LSA。
IS-IS路由域内的所有路由器都会产生LSP,由以下事件触发一个新的LSP:
(1) 相邻路由器发生状态变化(up/down)
(2) 本路由器的接口发生状态变化(up/down)
(3) 接口被分配一个新的度量(metric)
(4) 足以引起路由信息变化的配置改变
(5) 老的LSP的超时时间到(定期刷新)
LSP ID
每个LSP报文中都包含后一个LSP Sequence Number参数,来标识该LSP报文的序列号。当第一次产生该LSP报文时,序列号值为1,当发生变化重新生成LSP时,序列号会逐次增加,LSP序列号的范围:0-65535。
当路由器接受到邻居发送过来的LSP时,会比较该LSP报文的序列号,如果序列号比本地数据库中的序列号更大,则表明该LSP报文更新,需要接收到本地的链路状态数据库中。
生存时间
IS-IS路由协议的LSP生存时间从1200秒(20分钟)倒计时到 0,我们也可以设置最大为65535秒的生存时间;而OSPF路由协议的生存时间从0秒正计时到3600(60分钟)。
收到较新版本的LSP时,将重置生存时间;
IS-IS路由协议产生LSP的路由器会在15分钟时主动发起泛洪,进行LSP的更新,OSPF路由协议产生LSA的路由器会在30分钟时主动发起泛洪,更新LSA。
ISIS与OSPF异同
相同点:
IS-IS和OSPF是链路状态路由协议的两个最典型的代表,都采用SPF算法来计算路由;
由于具有快速收敛、无环路等特点,IS-IS和OSPF都能很好地支持大型网络,但从全球的部署来看,采用OSPF的还是占了多数,而IS-IS在近几年开始得到比较多的应用;
IS-IS和OSPF一样采用Hello协议来维护邻居关系,但IS-IS的Hello协议与OSPF具体实现上有所不同;
IS-IS和OSPF都采用分层路由的概念,都有骨干区域,为网络规划提供了比较灵活而且实际的设计方案;
为了控制链路状态数据库的规模和复杂度,IS-IS和OSPF在广播网络上都选举DR来担任数据库同步的主要角色,但在细节处理上还是有较大的差别的;
对协议报文的验证能力是所有高级路由协议所必须具备的功能,IS-IS对于协议报文的验证处理是有些特别的,它按照Level和PDU类型来处理;
IS-IS和OSPF对路由开销的度量(metric)都采用了接口可配置的cost,能够比较正确地反映网络的实际情况;
在支持大型网络的时候,触发更新的Update方式比周期性广播方式要节约大量的协议报文所产生带宽消耗;
对于每个LSP(LSA)都有一个记时器相关联,正常情况下在一定时间内(较长时间)会更新重新计时,如果在规定时间内没有收到新的更新,将从数据库中清除该LSP(LSA),不再用做路由计算用;
对于边缘区域中的路由器,一是通过区域划分,二是通过设置区域类型来减少对路由器资源的需求。IS-IS可以将区域中的路由器设置为level-1 only类型,OSPF可以将整个区域设置为stub来减少数据库的大小,同时保证正确路由。
不同点:
IS-IS最初是为ISO的标准协议,为CLNS(connectless network service 无连接网络服务)设计的,后来增加了对IP的支持;而OSPF一开始就是IETF为IP网络设计的;由于IS-IS历史上是为CLNS路由而制定的,发展比较缓慢,对于IP的支持很多地方需要改进,虽然已经提出了draft,但大部分还没有形成RFC,CNLP(connectless network protocol 无连接网络协议)和IP双环境使用的优势并不明显,是一个不是很成熟的协议; OSPF是专门为IP设计的,更适合IP的路由,发展成熟,标准化程度高,支持厂商多,使用多缺点暴露多,改进也多。
IS-IS协议直接在链路层上运行,报文直接封装在链路层报文中,支持CLNS、IP等多种协议;OSPF报文封装在IP中,只支持IP协议;
IS-IS协议中整个路由器只能全部属于一个区域,区域边界位于两个路由器之间,路由器的LSDB按Level来维护;而OSPF按接口来,一个路由器可以属于多个区域,为每个区域维护一个LSDB数据库;
OSPF通过特殊的区域ID Area0区来定义骨干区,而IS-IS是通过连续的L2路由器来组成骨干区;
IS-IS的采用的Hello协议比较简单,OSPF比较复杂;而且IS-IS检查比较宽松,邻居之间的Hello和Dead等间隔不一定必须一样,不象OSPF要求必须一致才能形成邻居关系;
IS-IS的LSP生存时间是从15分钟(可配置)往下计算到0来清除旧的LSP,而OSPF是从0往最大值涨到60分钟(周期不可配置)来清除更新旧的LSA的;
IS-IS协议的DR选举比较简单,而且是抢占式可预见的,优先级最高的是DR,优先级别为0的也可能成为DR;为了保证变动比较小,OSPF协议DR选举机制比较复杂并不可预见,优先级最高的不一定是DR,优先级为0的不可能成为DR,并且有BDR的概念,DR失败,BDR立即承担DR的职责,而IS-IS没有BDR,DR失败,重新选举DR;
IS-IS不支持P-2-MP类型的网络,并且NBMA网络都只能设置为子接口模拟成P2P来运行;OSPF可以很好地支持以下各种网络类型:Broadcast,NBMA,P-2-P,P-2-MP;
标准的IS-IS 接口cost取值为:0-63,对链路层区分不够,并且一个网络的metric达到1024就认为不可达;而OSPF接口cost取值范围为:0-1024,一个网络的metric达到65535才认为不可达。