全称:Intermediate System to Intermidiate System,中间系统到中间系统协议。
设计者:ISO,Internatioral Organization for Standardization,国际化标准组织。
背景:本来是IOS组织为他们的CLNP(ConnectionLess Network Protocol,无连接网络协议)设计的一种动态协议。但后来随着TCP/IP的流行,为了对IP路由提供支持,IETF在RFC1195中对ISIS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开方式互联)环境中,我们将扩展后的ISIS称为集成ISIS。
因此ISIS支持CLNP网络和IP网络。
为什么需要ISIS
在ISIS出现前,网络上广泛使用RIP作为内部网关协议。由于RIP是距离矢量协议,存在收敛、路由环路、可扩展性差等问题,所以逐渐被ISIS取代。ISIS的优势有:
- ISIS采用LTV格式,扩展性更高;
- 一个路由器最多可配置多个区域地址,可以实现多区域的平滑合并;
- 报文结构简单,邻居交互效率高;
- 由于ISIS工作在数据链路层,因此不依赖IP;
- 最短路径SPF算法,收领速度快;
- 可应用于较大规模网络中,如大型ISP中。
目标:
- 描述ISIS的基本概念
- 描述ISIS的工作原理
- 描述ISIS与OSPF的差异
- 实现ISIS的常用配置
ISIS概述
- ISIS支持CLNP和IP网络,工作在数据链路层。
- OSPF支持IP网络,工作在网络层。
- ISIS→IGP,链路状态协议,优先级15,度量值带宽。
- OSPF→IGP,链路状态协议,优先级10,度量值带宽。
- ISIS在广播网络中使用组播地址(MAC地址)发送hello报文和链路状态信息。
- 0180-c200-0014
- 0180-c200-0015
- ISIS在P2P网络中使用单播MAC地址。特定配置下可能涉及 0900-2b00-0005
- OSPF组播地址,是IP地址→224.0.0.5和224.0.0.6
NSAP
- 全称,Network Service Access Point,网络服务访问点。
- NSAP是OSl协议栈中用于定位资源的地址,用于提供OSI模型网络层和上应用之间的窗口。而IP是TCP/IP模型的核心协议,支撑了互联网的全球互联。
- NSAP包括IDP和DSP。
IDP
- Initial Domain Part,相当于IP地址中的网络号。
- IDP由AFI和IDI组成:
- AFl (Authority and Format Identifier)表示地址分配机构和地址格式。
- IDI(Initial Domain Identifier)用来标识域。
DSP
- Domain Specific Part,相当于IP地址中的子网号和主机地址。由High Order DSP,System ID和SEL三个部分组成。
- High Order DSP用来分割区域。
- System ID用来唯一标识主机或路由器,占6字节
- SEL(NSAP Selector),占1字节,用来指示服务类型,SEL为00表示服务类型为IP协议。
- Area ID区域号:由IDP和High Order DSP 组成,占1~13字节,可变长格式,如49.0001,作用类似于OSPF的AREA ID。
NET-网络实体名
- Network Entity Title,网络实体名。
- 是OSI协议栈中设备的网络层信息,主要用于路由计算,由区域地址(Area ID)和System ID组成,可以看作是特殊的NSAP(SEL为00的NSAP)。
- Area ID由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。
- Area id + System id +SEL,十六进制,8~20Byte。
- NET的长度与NSAP的相同,最长为20Byte,最短为8Byte。
- 在IP网络运行ISIS时,只需配置NET,根据NET地址,设备可以获取到Area ID以及System ID。
- 为了支持区域的平滑合并和分割,一台设备NET实体名可以支持3个,但要求System ID要完全一样,。
NET的配置举例
- 每台运行ISIS的网络设备至少拥有一个NET,当然,一台设备也可以同时配置多个NET(最多3个),但是System ID必须相同,每个设备的system ID必须唯一。
- 在华为设备上,System ID的长度固定是6Byte。在一个ISIS路由域中,设备的System ID必须唯一,为了便于管理,一般根据RouterID配置SystemlD。
验证
- 可以创建的实体最多数量是3个;
- 同一设备system-id是唯一的;
- 创建实体的缺省进程号是1。
创建进程
- [AR1]isis //创建进程1,不加进程号创建的就是isis 1
- [AR1]network-entity 10.0000.0000.0001.00 //其中,00表示IP协议,占1字节;0000.0000.0001表示system-id,占6字节,10表示Areaid,占1~13字节,因为是可变长度,在这里只占1字节。
- [AR1]network-entity
验证最多可以创建3个NET实体
- [AR1]network-entity 20.0000.0000.0001.00 //创建第二个实体,创建成功。
- [AR1]network-entity 30.0000.0000.0001.00 //创建第三个实体,创建成功。
- [AR1]network-entity 40.0000.0000.0001.00 //创建失败,系统提示:Warning:The Maximum allowed area address already configured→警告:已达最大可配置上限。
验证system-id在同一设备是否唯一
- [AR1]undo network-entity 30.0000.0000.0001.00 //删除一个体
- [AR1]network-entity 10.0000.0000.0002.00 //创建一个不同System-id的实体,创建失败。Error:NET Set – System is running. SystemId conflicts.网络实已经运行,systemld冲突。
结果:
- 默认进程号为1,创建别的进程需加进程号,如isis 2。
- network-entity 10.0000.0000.0001.00 //其中,00表示IP协议,占1字节;0000.0000.0001表示system-id,占6字节,10表示Areaid,占1~13字节,因为是可变长度,在这里只占1字节。
- 同一个设备最多可创建3个进程,且system-id必须相同。
ISIS报文的MTU
IS1S的MTU值是1497,由于IS1S数据报文多了3个字段,多了3个字节。由于以太网传输数据的MTU值是1500,那么如果不修改得话ISIS的报文为1503字段,这时候,数据传输就需要分片了,会影响传输速率,因此,ISIS的数报报文的MTU值改为了1497,加上那3个字节为1500,这样就可以不分片了。
ISIS和OSPF区域划分的区别
ISIS在自治系统中采用骨干区域与非骨干区域两级的分层结构:
- Leved-1路由器部署在非骨干区域。
- Level-2路由器和Level1-2路由器部署在骨干区域。
- 每一个非骨干区域都过Level1-2路由器与骨区域相连。
- ISIS的骨干区域不仅包含本身的L2设备,还可以包含其它区域的L2、L1-2设备。
而OSPF的非骨干区域必须和骨区域直接相连,如果要跨区域则需要使用别的技术,如虚链路,GRE隧道和多进程导入。
ISIS路由器分类
Level-1路由器
Level-1路由器,是ISIS区域内部路由器,它只与同一区域内的Level-1或level-1-2路由器形成邻接关系,这种邻接关系称为Level-1邻接。
Level-1路由器无法与Level-2路由器建立邻接关系。
Level-1路由器只负责维护Level-1的链路状态信息库,该LSDB只包含本区域内的路由信息。
值得一提的是,Level-1路由器必须通过Level-1-2路由器接入ISIS骨干区域从而访问其它区域。也就是说,L1路由器无法与L2路由器直接建立联系。
Level-2路由器
L2路由器是ISIS骨干路由器,它可以与同一或不同区域的L2路由器或L1-2路由器形成邻接关系。
L2路由器维护一个L2的LSDB。该LSDB包含整个ISIS域的所有路由信息。
所有L2级别(即形成Level-2邻接关系)的路由器组成路由域的骨网,负责不同区域间通信。路由域中L2级别的路由器必须是物理连续的,以保证骨干网的连续性。
Level1-2路由器
默认类型
Level1-2路由器与OSPF中的ABR非常相似,它也是ISIS骨干网络的组成部分。
L1-2路由路维护2个LSDB,L1的LSDB用于区域内路由,L2的LSDB用于区域间路由。
同时属于L1和L2的路由器称为Level1-2路由器,它可以与同一区域的L1和L1-2路由器形成L1邻接关系,也可以其它区域的L2和L1-2路由器形成L2邻接关系。
ISIS支持的网络类型
ISIS会自动根据接口的数据链路层封装来决定该接口的缺省网络类型,ISIS支持两种类型的网络。
- 广播(MA):如Ethernet,Token-ring。
- 点到点(P2P):如PPP、HDLC(帧中继)等。
- 不支持NBMA网络,(如帧中继、ATM)网络,需将其子接口配置为点到点类型才能运行。
在配置时,以太网接口可通过命令isis circuit-type p2p
强制改为P2P类型,但点到点接口无法改为广播类型。
isis circuit-type p2p
//设置数据链路层封装类型为p2p
查看邻居表:display isis peer
查看数据库:display isis lsdb
查看路由表:display isis route
ISIS开销值
ISIS使用cost作为路由度量值,cost越小路经越优。ISIS链路的cost与设备的接口有关,与OSPF类似,每一个激活了ISIS的接口都会维护接口的cost。然而,与OSPF不同的是,ISIS接口的cost在缺省情况下并不与接口的带宽相关。(在实际部署时,ISIS也支持根据接口带宽调整cost值。
无论接口带宽多大,缺省cost值为10。
一条ISIS路径的cost等于本路由器到达目标网络沿途的所有链路的cost总和。
ISIS有三种方式来确定接口的开销,按优先级从高到低分别是:
- 接口开销:为单个接口设置开销。
- 全局开销:为所有接口设置开销。
- 自动计算开销:根据接口带宽自动计算开销。开销类型默认为narrow,取值范围1~63;由于narrow取值范围大小,配置时可以把开销类型修改为wide,取值范围1~16777215
ISIS报文格式
ISIS报文是封装在数据链路层的帧结构中的。
PDU(Protocol Data Unit,协议数据单元),可以分为两个部分,报文头(ISIS Header)和变长字段部分(variable Length Fields)。
其中ISIS Header又分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。
通用头部
- Intradomain Routing Proticol Discriminator:域内路由选择协议鉴别符,固定为0x83。
- Length Indicator:ISIS头部的长度(包括通用头部和专用头部),以Byte为单位。
- Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。
- System ID Length :NSAP地址或NET中System ID区域的长度。值为0时表示System ID区域的长度为6Byte。
- R(Reserved):保留,固定为0。
- Version:固定为0x01。
- Max.Areas:支持的最个区域个数。设置1~254的整数,表示该ISIS进程实际所允许的最大区域地址数;设置为0,表示该ISIS进程最大只支持3个区域地址数。
ISIS报文类型
4大类,共有9种报文。
IS-IS的PDU有4种类型:
- IIH(IS-IS Hello),3种报文
- LSP (Link State PDU,链路状态报文),2种报文
- CSNP (Complete Sequence Number PDU,全序列号报文),2种报文
- PSNP(Partial Sequence Number PDU,部分序列号报文),2种报文
IIH:用于建立和维持邻接关系,ISIS分为了3种报文。
- 广播网络中的Level-1路由器使用Level-1 LAN IIH;
- 广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH;
- 点到点网络中则使用P2P IIH。
LSP:用于交换链路状态信息,报文中包含了详细的状态信息提供给邻居更新LSDB,类似于OSPF的LSU。LSP分为两种,Level-1 LSP和Level-2 LSP。
SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。
SNP包括CSNP和PSNP,进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP
- CSNP完全序列报文,类似于DD报文
- PSNP部分序列报文,类似于LSR、LSAck
ISIS常见的TLV
TLV的合义是:Type、Length、Value。实际上是一个数据结构,这个结构包含这三个字段。
使用TLV结构构建报文的好处是:灵活性和扩展性好,增加新特性只需增加新的TLV,不需要改变整个报文的整体结构。
TLV也称为CLV(Code-Length-Value)。
ISIS工作原理
建立邻接关系→LSDB同步→路由计算
邻接关系建立
- IS-IS建立邻接关系的条件:
- 同一层次,只有同一层次的相邻路由器才有可能成为邻接。
- 同一区域,对于Level-1路由器来说,AreaID必须一致。
- 同网络类型,链路两端IS-IS接口的网络类型必须一致(P2P,广播网络)。
- 同一网段,链路两端IS-IS接口的地址必须处于同一网段(默认情况下)。
- 相同MTU
- 认证相同
- 接口未被设置为silent
- 在P2P网络中,system-id长度要一致,最大区域地址数要相同。
- 影响ISIS邻居建立的因素:
- 路由器类型:L1和L2 类型的路由不能建立邻居关系
- 区域ID:两台L1路由器只有它们的Area ID一致才能建立邻居;
- 互连接口在同一子网:(hello包不携带掩码,携带ip,路由器用收到的IP与本地接口的掩码进行与运算;P2P可以配置忽略网段检查。)
- 一台L1路由器和一台L1/L2路由器,只有它们的Area ID一致才能建立邻居;
- 建立ISIS邻居的network-entity地址是否有冲突
- 建立ISIS邻居的认证参数不一致。
- 建立ISIS邻居接口的MTU值不一致。(广播链路上会把hello填充到接口MTU,P2P刚开始建立邻居时会把helIo填充到接口MTU),hello报文1497十LLC3字节,因此MTU低于1500无法发送Hello包,假如接口MTU1600,isis的hello包会填充到1600。手动修改MTU使邻居建立。
- System-id不一致
- 接口网络类型不一致
- 接口被设置为silent
- 2-way和3-way不能建立邻接关系。(但是3-way和2-way可以建立邻居关系)
- 最大区域地址数要一致,默认为3。
由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻接关系的形成与IP地址无关。但在实际的部署中,在IP网络上运行IS-IS时,需要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻接,不一定要主IP相同。
IIH
IIH报文用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH;点到点网络中则使用P2P IIH。
- Reserved/Circuit Type:表示路由器的类型(01表示L1,10表示L2,11表示L1/L2)。
- Source ID :发出Hello报文的路由器的system ID。
- Holding Time:保持时间。在此时间内如果没有收到邻接发来的Hello报文,则中止已建立的邻接关系。
- Priority:选举DIS的优先级,取值范围为0~127,默认64,数值越大,优先级越高。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段,也没有此字段之前的R保留位。
- LAN ID:包括DIS的System ID和伪节点ID。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段。
- Local Circuit ID:本地链路ID。该字段只在点到点网络的Hello消息(P2P IIH消息)携带;广播网中的Hello消息(LAN IIH消息)没有此字段。
广播网络中的邻接关系建立过程
两台运行Is-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。在广播网络中,使用三次握手建立邻接关系。
R1及R2通过千兆以太接口互联,这两台直连的Level-1路由器建立邻接关系的过程如下:
- 在Down状态下,R1组播发送Level-1 LAN IIH,此报文中邻接列表为Down空。
- R2收到此报文后,将邻接状态标识为Initial。然后,R2再向R1回复Level-1 LAN IIH,此报文中标识R1为R2的邻接。
- R1收到此报文后,将自己与R2的邻接状态标识为Up。然后R1再向R2发送一个标识R2为R1邻接的Level-1 LAN IIH。
- R2收到此报文后,将自己与R1的邻接状态标识为Up。这样,两个路由器成功建立了邻接关系。
- 广播网络中需要选举DIS,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。
DIS与伪节点
- 使用命令:display isis interface 可以查看当前设备是不是DIS。
- DIS作用:用来周期性发送CSNP(Common Sequence Number PDU),同步LSDB。
- 在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System)。
- DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。
- 伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识。
- 点到点网络不用选举DIS
ISIS中的DIS与OSPF中的DR
- Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。
DIS的选举规则如下:
- DIS优先级数值最大的被选为DIS。
- 如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DIS。
- DIS发送Hello PDU的时间间隔是普通路由器的1/3,这样可以确保DIS出现故障时能够被更快速地被发现。
IS-IS中DIS与OSPF协议中DR(Designated Router)的区别:
- 在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
- 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
- 在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,DRother只与DR和BDR建立邻接关系。
DR与DIS选举的区别
- DR选举先看优先级,再比较router-id,DIS先看优先级,再比较mac地址
- DR默认为1,取值范围为0-255,DIS默认为64,取值范围为0-127
- DR的值为0,代表放弃DR选举,DIS的值为0,只是值小,并不放弃DIS选举
- DR主要为了减少LSA泛洪,DIS是为周期发送CSNP,同步LSDB
- DR有备份的设备 BDR,DIS没有备份
- DR的选举是在链路上选举的,DIS 的选举分为Level-1和Level-2,在路由器上选举
- DR默认不开启抢占,DIS默认抢占
- OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷
- 选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系,DRothers之间只有2-way的关系。
P2P网络的邻接建立过程
两次握手或三次握手,华为设备默认P2P网络使用三次握手。
P2P网络不选举DIS
链路状态数据库同步
LSP
- IS-IS链路状态报文LSP用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。
- Level-1 LSP由Level-1路由器传送;
- Level-2 LSP由Level-2路由器传送;
- Level-1-2路由器则可传送以上两种LSP。
- Remaining Lifetime:LSP的生存时间,以秒为单位,默认是1200s,倒计时形式,当倒计时到0时,设备会认为该LSP过期并将其清除。LSP的刷新间隔通常为15分钟,即900秒;路由器会在此时间内更新自己产生的LSP,并将序列号加1,以防止LSP因老化而被删除。当LSP的剩余生存时间减为0时,它并不会立即被删除,而是会进入零老化状态,再等待60秒后才会被真正删除。这是为了确保所有路由器都有足够的时间收到最新的LSP更新。如果路由器需要删除某个LSP,它会生成一条剩余生存时间为0的新LSP,并将其泛洪出去,以通知其他路由器该LSP已被删除。
- 而OSPF的LSA的刷新时间是1800s(30分钟),从0开始计时,即每隔1800s就会对其产生额每条LSA进行更新,确保链路状态数据库的准确性。LSA的老化时间(MaxAge)是3600,从0开计时,如果时间到后会认为该LSA过期然后从链路状态数据库中清除。为确保数据库的准确性,OSPF每隔1800秒(30分钟)对每条LSA记录刷新一次,每刷新一次序列号加1。收到新的LSA后,LSA将重置计时器,又重新计算时间。当网络中的链路状态发生变化时,如路由器的接口状态改变或网络拓扑发生变化,路由器会立即发送更新消息,而不必等待下一个周期性的更新时间到来。这种触发更新机制有助于加快网络的收敛速度。当路由器检测到某条链路或路由不再可用时,它会将该LSA的年龄设置为3600秒,并从自己的LSDB中删除。同时,路由器还会向邻居发送年龄为3600秒的LSA,通知它们该链路或路由已经失效,以便邻居路由器也能及时更新自己的LSDB。
- LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
- Sequence Number:LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更加新LSP。
- Checksum:LSP的校验和
- ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关。
- OL(LSDB Overload,1bit):过载标志位。设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位。
- IS Tvpe(2bit):生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)。
ISIS的LSDB
- 使用命令:display isis lsdb 可以查看isis的链路状态数据库
- LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
- 伪节点ID:当该参数不为零时,表示该LSP为伪节点生成。
- 分片号:当IS-IS要发布的链路状态协议数据报文PDU (Protocol Data Unit)中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片。
查看非伪节点的LSP
- display isis lsdb 0100.0000.1001.00-00 verbose 可以查看详细的lsdb
- AREA ADDR:该LSP来源的区域号。
- INTF ADDR:该LSP中描述的接口地址。
- NBR ID:该LSP中描述的邻接路由器的信息。
- IP-Internal:该LSP中描述的网段信息。
查看伪节点LSP
- 在伪节点LSP中,只包含邻接信息而不包含路由信息。
CSNP
CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互CSNP来判断是否需要同步LSDB。
- 在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)。
- 在点到点网络上,CSNP只在第一次建立邻接关系时发送。
- Source ID:发出CSNP报文的路由器的System ID。
- Start LSP:CSNP报文中第一个LSP的ID值。
- End LSP ID:CSNP报文中最后一个LSP的ID值。
PSNP
PSNP只包含部分LSP的摘要信息(与CSNP不同):
- 当发现LSDB不同步时,PSNP用来请求邻居发送新的LSP。(类似OSPF的LSU)
- 在点到点的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认。(类似OSPF的LSAck)
Source ID:发出PSNP报文的路由器的System ID。
广播网络中LSP的同步过程
广播网络中新加入路由器与DIS同步LSDB数据库的过程
- 新加入的路由器R3首先发送IIH报文,与该广播域中的路由器建立邻接关系。建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14; Level-2: 01-80-C2-00-00-15,L1-2:两个组播地址都发)。这样网络上所有的邻接路由器都将收到该LSP。
- 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文。
- R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
- DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。
点到点网络中LSP的同步过程
点到点网络上LSDB数据库的同步过程:
- R1先与R2建立邻接关系。
- 建立邻接关系之后,R1与R2会先发送CSNP给对端设备。
- 如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
- 假设R2向R1索取相应的LSP:
- R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
- 如果在LSP重传定时器超时后,R1没有收到R2发送的PSNP报文作为应答。
- 则R1重新发送该LSP。
- R2收到LSP后,发送PSNP进行确认。
LSP的处理机制
IS-IS通过交互LSP实现链路状态数据库同步,路由器收到LSP后,按照以下原则处理:
- 若收到的LSP比本地LSP的更优,或者本地没有收到的LSP,则:
- 在广播网络中,将其加入数据库,并组播发送新的LSP。
- 在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居。
- 若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP
LSP产生的原因,ISIS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:
- 邻接up或down
- ISIS相关接口up或down
- 引入的IP路由发生产化
- 区域间的IP路由发生变化
- 接口被赋了新的metric值
- 周期性更新(刷新间隔15min)
路由计算
Level-1路由器的路由计算
- R1是Level-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Level-1 LSP。
- R1根据LSDB中的Level-1 LSP计算出Area 49.0001内的拓扑,以及到达区域内各个网段的路由信息。
- R2及R3作为Area 49.0001内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。
- R1作为Level-1路由器,会根据该ATT标志位,计算出指向R2或R3的默认路由。
Level-1路由器的次优路径的问题
- 缺省时,R1只能通过指向R2或R3的默认路由到达区域外部;
- 但是R1距离R2和R3路由器的Cost值相等,那么当R1发送数据包到192.168.20.0/24时,就有可能选择路径2,导致出现次优路径。
路由渗透
- 缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。
- 通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。
- 概括:
Level-1-2路由器的路由计算
- R2及R3都维护Level-1 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0001的路由。
- R2及R3都维护Level-2 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0002的路由。
- R2及R3将到达Area 49.0001的路由以Level-2 LSP的形式发送到Area 49.0002。
Level-2路由器的路由计算
- R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据L1-2发送的L2 LSDB计算出到达全网各个网段的路由。
ISIS配置
- 创建ISIS进程并进入
- [Huawei]isis 进程号
- 如不指定进程号,则为缺省值。
- 配置网络实体名(NET)
- [Huawei-isis-1]network-entity 区域号.systemid.00
- 通常情况下,一个ISIS进程下配置一个NET即可。当区域需要重新划时,例如将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以在重新配置时仍然能够保证路由的正确性。由于一个ISIS进程中区域地址最多可配置3个,所以NET最多也只能配置3个。
- 在配置NET时,必须保证它们的SystemID都相同。
- 配置isis设备名
- is-name name
- 配置全局Level级别
- [Huawei-isis-1]is-Ievel {level-1|level-1-2|level-2}
- 缺省情况下,设备的Level级别为level-1-2。
- 在网络运行过程中,改变IS-IS设备的级别可能会导致IS-IS进程重启并可能会造成IS-IS邻居断连,建议用户在配置IS-IS时即完成设备级别的配置。
- 在接口上使能ISIS协议
- [Huawei]interface g0/0/1
- [Huawei-GigabitEthernet0/0/1]isis enable 进程号
- 配置该命令后,ISIS将通过该端口建立邻居、扩散LSP报文。
- 配置接口Level级别
- [Huawei-GigabitEthernet0/0/1]isis ciruit-level {level-1|leveI-1-2|level-2}
- 缺省情况下,接口的Level级别为level-1-2。
- 两台Level-1-2设备建立邻居关系时,缺省情况下,会分别建立Level-1和Level-2邻居关系。
- 如果只希望建立Level-1或者Level-2的邻居关系,可以通过修改接口的Level级别实现。
- 设置接口的网络类型为P2P
- [Huawei-GigabitEthernet0/0/1]isis circuit-type p2p
- 缺省情况下,接口网络类型根据物理接口决定。
- 使用该命令将广播网络接口模拟成p2p接口时,接口发送Hello报文的间隔、宣告邻居失效前ISIS没有收到的邻居Hello报文数目、点到点链路上LSP报文的重传间隔以及ISIS各种认证均恢复为缺省配置。
- 而DIS优先级、DIS名称、广播网络上发送CSNP报文的间隔时间等配置全部失效。
- 恢复接口的缺省网络类型
- [Huawei-GigabitEthernet0/0/1]undo isis circuit-type
- 使用该命令恢复接口的缺省网络类型时,接口发送报文的间隔、宣告邻居失效前ISIS没有收到的邻居Hello报文数目、点到点链路上LSP报文的重传间隔时间、ISIS各种认证、DIS优先级和广播网络上发送CSNP报文的间隔时间均恢复为缺省配置。
- 修改接口的DIS优先级
- [Huawei-GigabitEthernet0/0/1]isis dis-priority priority [level-1|level-2]
- 缺省情况下,ISIS接口DIS优先级为什。
- 该命令用来指定挑选对应层次DIS时接口的优先级。
- 查看isis 邻居表
- 查看isis 路由表
- 查看
案例:ISIS配置
组网需求
- 如图所示,现网中有5台路由器。用户希望在这5台路由器实现网络互联,并且因为R1性能相对较低,所以还要使这台路由器处理相对较少的数据信息。同时用户希望R1可以选择最优路径访问192.168.10.0/24和192.168.20.0/24网段。
- 配置思路:
- 在各路由器上配置IS-IS基本功能,实现网络互联。其中,配置R1为Level-1路由器,可以使这台路由器维护相对少量的数据信息。同时,配置R2和R3为Level-1/2路由器与R4和R5这两台Level-2路由器互联。
cool