ISIS
OSI参考模型中的网络服务规范定义了网络设备之间使用无连接通信的功能CLNS(Connectionless Network Service,无连接网络服务)。使用CLNS,无需在发送数据之间建立端到端的路径。CLNS包括协议组件有:
·CLNP(Connectionless Network Protocol,无连接网络协议):定义了CLNS所使用的协议。
·IS-IS:定义了在使用CLNP的网络中,中间系统与中间系统间进行路由信息的交换方式。
·ES-IS(End System—Intermediate System,终端系统—中间系统):定义在使用CLNP的网络中,终端系统与中间系统间进行路由信息交换的方式。
CLNP是一个OSI网络层协议。它相当于我们所熟悉的IP协议,而IP定义为用来为TCP/IP协议栈提供网络层服务。与IP一样,CLNP也是一个无连接的协议,不提供可靠的数据连接,而且也独立于下层(数据链路层)协议。我们都知道,IP是TCP/IP协议栈中唯一的网络层协议,高层的协议和数据全都封装在IP数据包中进行传输。这不同于CLNS网络环境,在CLNS中,CLNP、IS-IS、ES-IS都 是独立的网络层协议,它们都直接被封装到数据链路层的帧中进行传输。
基本术语
缩略语 | OSI中的概念 | IP中对应的概念 |
IS | Intermediate System 中间系统 | Router 路由器 |
ES | End System 端系统 | Host主机 |
DIS | Designated Intermediate System 指派中间系统 | Designated Router(DR) OSPF中的选举路由器 |
SysID | System ID 系统ID | OSPF中的Router ID |
PDU | Packet Data Unit 报文数据单元 | IP报文 |
LSP | Link state Protocol Data Unit 链路状态协议数据单元 | OSPF中的LSA 用来描述链路状态 |
NSAP | Network Service Access Point 网络服务访问点(网络层地址) | IP地址 |
NET | Network Entity Title 网络实体标记(一种特殊的NSAP) | -------- |
IIH | IS to IS Hello PDU IS到IS间Hello | OSPF中的Hello报文 |
PSNP | 部分序列号数据包 | OSPF的ACK报文或LSR报文 |
CSNP | 完全序列号数据包 | OSPF的DD报文 |
网络分层
一、两个ISIS级别:L1普通区域(Areas)、L2骨干区(Backbone)
·L1负责ES与IS之间的通信;
·L2负责IS与IS之间的通信;
·骨干区Backbone是连续的Level2路由器的集合,由所有的L2(含L1/L2)路由器组成,注意必须是连续(连通)的。
*************************************************************
区域(Areas)
l IS-IS允许将整个路由域分为多个区域;
l 区域之间通过L2(L1/L2)路由器相连接;
l 一个路由器目前最多有3个Area Id属于3个区域 (IOS和VRP的实现)
l 一个路由器必须整个属于某个区域,而不能象OSPF那样是同一台路由器上不同的接口可以属于不同的区域
l 对于Level-1路由器来说,只有属于同一区域才可以建立邻居,对于Level-2路由器则没有此同一区域限制
*************************************************************
二、三种类型的ISIS路由器:L1、L2、L1/L2
l L1路由器通过LSP获悉其所属区域的区域内路径,L1只能与L1、L1/L2建立邻居关系,只参与本区域内的路由,只保留本区域的数据库信息,利用本区域最近的L1/2路由器作为区域外网络出口(缺省路由)。
lL2路由器通过LSP获悉区域间的路径,L2只能与L2、L1/L2建立邻居关系,保存L2的链路状态数据库,含所有域间路由信息;保存整个骨干区的路由信息。
lL1/L2路由器获悉区域内与区域间的路径,L1/L2有点像OSPF的ABR。可以和本区域的任何级别路由器形成邻居关系;可以和其它区域相邻的L2或L1/L2路由器形成L2邻居关系;有两个级别的链路状态数据库;L1用来作为区域内路由;L2用来作为区域间路由;完成它所在的区域和骨干之间的路由信息的交换,将L1 LSDB中的路由信息转换到L2 LSDB中,以在骨干中传播,既承担L1的职责也承担L2的职责;通常位于区域边界上。
Level-1和Level-2分别运行SPF算法,生成各自的LSDB。
ISIS寻址(NSAP)
CLNP地址与我们熟悉的IP地址有着很大的区别。首先,CLNP地址是一种基于节点的编址方案,也就是说一个节点(路由器)只需要一个CLNP地址,而IP地址是一种基于链路或者说是基于接口的编址方案。
IS-IS将CLNP地址称作网络服务访问点(NSAP,Network Service Access Point),也就是常用的CLNP地址。类似于IP地址。
在ISO术语中,数据链路层地址(例如LAN MAC地址、Frame-Relay DLCI等)常被称为子网连接点(SNPA,Subnetwork Point of Attachments)。由于一个网络设备可能连接多个链路,所以需要有多个SNPA地址,但是只需要一个CLNP地址。ES-IS的主要功能之一就是为节点提供NSAP地址到SNPA地址的映射,相当于IP协议中的ARP。
一个NSAP由三个部分组成:可变长度的区域地址(1-13字节),System ID(1-8字节,目前使用定长9字节)和n-selector(1字节)。一个NSAP地址长度为8-20字节。
NET地址
在 IS-IS路由选择过程中,没有使用NSAP地址中的NSEL,所以NSEL始终保持为00。当NSEL为00时,我们就称这个NSAP地址为 NET(Network Entity Titile,网络实体名)地址,NET地址用来唯一地表示IS-IS路由选择域中的OSI主机。路由器使用NET地址来标识自己。
路由器在发送的链路状态数据包(LSP)中用NET来标识自己,这类似于OSPF发送的LSA中的路由器ID(Router ID)。
在NET地址中,还有三个与其相关的术语:SNPA、电路ID(Circuit ID)和链路。SNPA相当于MAC地址、Circuit ID相当于接口(由于NET用来标识整台设备,所以Circuit ID用来表示不同的接口)、链路相当于路径。
SysID
目前实现的IS-IS中,都遵循GOSIP2.0标准采用了定长的6字节表示SysID。6 字节的长度也与LAN MAC地址的长度一致。所以在配置路由器的NET地址时,可以使用路由器上某个LAN接口的MAC地址作为SysID,也就是在三层的NSAP地址中嵌入一个二层的MAC地址。但SysID也可以不为MAC地址,也可以取其他的任意值,但要满足6个字节的长度。
·IS-IS路由域中的每个节点的SysID必须唯一。
·IS-IS路由域的所有节点的SysID长度必须一致,通常都为6个字节。
*************************************************************
确定system id(推荐对应方法):
[ 如何在支持IP的IS上确定SystemID(便于管理的推荐):
[ 使用Loopback接口IP地址: 192.168.3.25
[ 建立IP地址到System ID的对应关系:
192.168.3.25—>192.168.003.025—>1921.6800.3025:System ID
1921.6800.3025就作为NET地址中的SysID字段,再加上区域地址和NSEL(00)后便形成了NET地址。
假设区域地址为49.0001,那么使用IP地址转换为SysID的完整NET地址就为:
49.0001.1921.6800.3025.00
由于同一区域内的所有路由器的区域地址是相同的,NSEL为00也是相同的,所以SysID成为区别路由器间不同NET地址的关键,也就是必须要保证SysID唯一。
*************************************************************
NSEL
NSEL 定义了网络层服务的用户,路由层是特殊的网络层服务用户,它的NSEL值为0。之前多次提到,在IS-IS路由器上配置的NSAP地址采用00作为 NSEL,这时NSAP地址被称为NET。NSEL的值与IP报头中的协议类型或TCP/UDP报头中的TCP、UDP端口号类似,NSEL帮助网络层把数据发送到适当的应用程序或服务。在OSI分层模型中,网络层服务的是传输层。目标不是路由进程的CLNP数据包具有非0的NSEL值的NSAP地址,表示节点需要将数据发送到传输层。我们在使用IS-IS进行IP路由选择中,只要记住始终保持NSEL为00即可。
集成ISIS
IS-IS,它仅支持CLNS网络环境,而不支持IP网络环境中的路由信息交换。后来,IETF在RFC 1195中对IS-IS进行了修改和扩展,称之为集成IS-IS(Integrated IS-IS)或双重IS-IS(Dual IS-IS)。集成IS-IS的制定是为了使其能够同时应用在TCP/IP网络和OSI网络中,使其能够为IP网络提供动态的路由信息交换。
集成IS-IS是一个能够同时处理多个网络层协议(例如IP和CLNP)的路由选择协议。相反,OSPF只支持IP一种网络层协议,即OSPF仅支持IP路由。而集成IS-IS可以支持纯CLNP网络或纯IP网络,或者同时支持CLNP和IP两种网络环境,并为其提供路由功能。集成IS-IS协议经过多年的发展,已经成为一个可扩展的、功能强大的、易用的IGP路由选择协议,并且在运营商网络中得到了更多的应用和部署,主要用来实现域内的IP路由选择。
路由选择
OSI路由选择级别:
1、同一子网中,ES与IS之间的路由选择叫L0路由选择;
2、区域内IS间IS的路由选择叫做L1路由选择;
3、区域间IS与IS的路由选择叫做L2路由选择;
4、不同域之间的路由选择叫做L3路由选择。
ISIS试用的网络类型
IS-IS路由协议支持点到点的网络类型和广播的网络类型两种。理论上不支持NBMA和点到多点网络类型,如果需要在NBMA和点到多点的网络上部署IS-IS路由协议,通过划分子接口的方式,把NBMA和点到多点转化为多个点到点的网络类型。
OSPF路由协议支持点到点、广播、NBMA、点到多点和虚连接网络类型。所以IS-IS和OSPF相比支持的网络类型较少。
*************************************************************
NBMA (non-broadcast multiple access,非广播多路访问网络)是OSPF(通信协议中四种网络的一种。NBMA用于精确模型X.25和帧中继环境,这些模型不具备内部广播和多点传送能力。网络类型就这么几种,有点对点,点对多点,广播多点等等。所谓NBMA就是一个多路访问链路,上面又不能发广播。最典型的多路访问链路就是常见的以太网,多个访问节点都可以访问同一个网段。在以太网上是可以发广播的。所以叫BMA。而帧中继就是典型的(也许是唯一现存的)NBMA了。因为它是多路访问链路,但是又由于有带宽的限制不能发广播包。
*************************************************************
ISIS协议报文
在IS-IS路由协议中,协议报文总共有9种,所有的协议报文都是根据层次划分为Level-1和Level-2的报文。
IS-IS的Hello报文可以具体细分为:L1 IIH、L2 IIH和P-2-P IIH。L1 IIH的组播地址为:0180-C200-0014;L2 IIH的组播地址为:0180-C200-0015;P-2-P IIH采用单播地址进行通信。Hello报文的作用为发现、建立和维系邻居关系,功能上类似于OSPF协议中的Hello报文。
LSP 分为两种:Level 1 Link State PDU和Level 2 Link State PDU。Level 2 Link State PDU包含IS-IS路由区域中所有可到达前缀的信息;Level 1 Link State PDU只用于本地区域。LSP报文描述了本路由器中所有的链路状态信息。功能上类似于OSPF协议中的LSA。
CSNP分为两种:Level 1 CSNP和Level 2 CSNP。用于数据库同步,以范围来描述数据库LSDB中的所有的LSPs。包含地址范围,各LSP的简要信息:LSPid,SequeceNumber, checksum, remainning lifetime等重要信息。在广播网络上,CSNP报文由DIS定期发送(缺省10秒的周期),在点到点串行线路上,只在第一次形成邻接时发送CSNP。如果路由器的LSDB非常大,将分成多个CSNP发出。功能上类似于OSPF协议中的DD报文。
PSNP分为两种:Level 1 PSNP和Level 2 PSNP。PSNP报文用于数据库同步,主要有以下功能:在点到点(p2p)链路上路由器用来相互交换作为Ack应答以确认收到某个LSP;在广播网络中用来请求发送最新的LSP,当路由器从近邻接收到CSNP时,注意到某些LSP本地数据库中没有的(或自己的比较旧),路由器发送PSNP请求新的LSP。PSNP在头中利用LSPid,SequenceNumber,Remainning lifetime, LSP checksum来描述LSPs,仅仅包含有LSP报文的头部。在点到点(p2p)网络类型中功能上类似于OSPF协议中的LS Ack报文;在广播网络中功能上类似于OSPF协议中的LS Request报文。
*************************************************************
比较:OSPF报文类型
HELLO报文(Hello Packet):最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值,DR,BDR,以及自己已知的邻居。
DD报文(Database Description Packet):两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的HEAD,通过该HEAD可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。
LSR报文(Link State Request Packet):两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。
LSU报文(Link State Update Packet):用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。
LSAck 报文(Link State Acknowledgment Packet):用来对接收到的LSU报文进行确认。内容是需要确认的LSA的HEAD(一个报文可对多个LSA进行确认)。
*************************************************************
ISIS协议工作机制
ISIS邻接关系
IS-IS路由协议中只有同一层次的相邻路由器才可能成为邻接体。IS-IS路由协议通过IIH报文建立邻居关系时需要遵循的基本原则:
(1) 只有同一层次的相邻路由器才有可能成为邻接体
(2) 对于Level-1路由器来说要求区域号一致
(3) 同一网段检查,此项为华为特性。由于IS-IS直接承载在数据链路层之上,理论上是不需要进行同一网段的检查。华为 VRP提供了这一新功能,进行同一网段检查,保证邻居关系的正确建立。(最近,VRP新做了一条命令,ignore-ppp-ip-check, 通过配置该命令可以取消ppp链路上的同一网段检查。该命令只对链路层为ppp协议的链路生效,缺省情况下该命令不生效。)
(4) 与OSPF协议的不同之处。OSPF协议使用接口来划分区域,一台路由器可能同时属于多个区域,和多个区域的路由器形成邻居关系;而IS-IS协议规定路由器整体属于某个特定的区域,L1路由器只能建立Level-1的邻居关系,L2路由器只能建立Level-2的邻居关系。
IS-IS路由协议中在点到点链路上,没有三次握手机制。OSPF协议中需要三次握手才能建立邻居关系,可靠性更好。而在广播链路上均需要进行三次握手验证。
广播链路上的DIS(Designated IS,指定中间系统)
DIS相当于OSPF的DR。其功能是创建和更新伪节点(pseudonode)。
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报文和其他节点进行数据库的同步。伪节点和本网络中的所有路由器建立联系,并且不允许它们之间直接联系。
IS-IS 协议中,广播子网和NBMA网络在外部被看成一个伪节点。同一网络中的IS 之间会根据各自优先权选出一个DIS(Designated IS)。网络中的非DIS 会向DIS 报告自己的链路状态信息,而DIS 则代表整个网络中所有的IS 报告链路状态信息。选举DIS 的原因与OSPF 中选举DR 的原因一样,其目的是为了减少不必要的邻接关系和路由信息的交换。
伪节点不是一个真实的路由器,但它要占用一个额外的LSP 项。伪节点LSP是由DIS 创建的。
DIS的选举过程:
IS-IS 协议中,DIS 的选举是自动进行的。选举的依据是同一网络中各接口的优先权,如果最高的优先权的接口不止一个则从这些优先权相同的接口中找MAC 地址最大的。DIS 的选举是在IS 自身进行的,网络中的各个IS 根据所在网络的接口上的邻居信息来进行选举。由于整个网络中的邻居信息是一致的,所以各自进行的选举结果是相同的。
注意:
1)只有在广播和NBMA类型的网络接口上才会选举DIS,在Point-to-Point类型的接口上不需要DIS 的选举;
2)DIS 是针对IS 的接口而言的。某台IS 在这个接口上可能是DIS ,而在另一个接口却可能不是;
3)不同层次有不同层次的DIS,即L1级的广播网选举L1级的DIS,L2级的广播网选举L2级的DIS;
4)IS-IS中不存在备份DIS,当一个DIS不能工作时,直接选举另一个;DIS发送的Hello报文的时间间隔为普通路由器的1/3,这样便于其他路由器快速检测到DIS的失效,同时快速选举新的DIS接替。
5)DIS由整个广播网络上优先级最高的IS担当,优先级相同时由MAC最大的担当。如果MAC一样,则由SysID大的担当。
6)与OSPF不同,它的选举是抢占式,可预见的。
如果没有伪节点,在LSPDB中必须包括LAN中的所有路由器的链路状态信息。伪节点LSP由DIS创建。DIS在伪节点LSP中通告所有的LAN邻居(包括DIS),metric是0。所有的LAN路由器,包括DIS,在它们的LSP中通告到伪节点的连接性,这一点类似于OSPF中的network LSA。
伪节点的作用
·减小路由器LSP的大小
·使路由器LSP更稳定
·使SPF计算更快
(以上均来自互联网,欢迎转载交流。20120309FZ)