1.IS-IS基本概念
1.1 IS-IS历史
IS-IS概念
- IS-IS最初是国际标准化组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。
- IETF对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成IS-IS。
IS-IS常用术语
- CLNS:Connectionless network service,无连接网络服务
- 在OSI中,还有CONS(Connection network service),面向连接网络服务
- CLNS和CONS是OSI协议族中的两种数据通信服务模型
- CLNS由以下三个协议构成:
- CLNP:类似于TCP/IP中的IP协议
- IP协议为TCP/IP传输层服务,CLNP为OSI传输层服务
- IS-IS:中间系统间的路由协议,即路由器之间的协议,类型于IP中的OSPF
- ES-IS:终端系统与中间系统间的协议,相当于IP中的ARP,ICMP,DHCP等。
- CLNP:类似于TCP/IP中的IP协议
- NASP:OSI协议通过NSAP(Network Service Access Point)来寻址OSI网络中处于传输层的各种服务,即NSAP类似于IP地址。
集成IS-IS注意事项
- 集成IS-IS能够同时应用在TCP/IP和OSI环境中,我们后续讨论的IS-IS协议,如无特殊说明均为集成IS-IS。
1.2 IS-IS相关术语
- NSAP:在OSI中,每个节点配置了一个NSAP就可以了
1.3 IS-IS地址结构
- 对于49.0002.0000.0000.0001.00:
- 49.0002:Area ID
- 49:路由域
- 0002:区域
- 0000.0000.0001:System ID
- 00:SEL
- 确定System ID后,其它的就很容易区分,因为System ID固定为6B。
- 49.0002:Area ID
NSAP
- 由IDP和DSP组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
- IDP相当于IP地址中的主网络号。它是由ISO规定的,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
DSP相当于IP地址中的子网号和主机地址。它由High OrderDSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。
Area Address(Area ID)由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号。同一Level-1区域内的所有路由器必须具有相同的区域地址,Level-2层级的路由器可以具有不同的区域地址。
- Area ID是可变长度的,即1~13B,所以NET地址的长度可以为8~20B,习惯上配置为10B,比如49.0001.0000.0000.0001.00;
- System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。一般情况下,我们采用设备的router-id转换为System ID。
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
NET网络实体名称NET指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00),NET的长度与NSAP 的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS 时,只需要考虑NET即可,NSAP可不必去关注。
- 在一个IS-IS进程中,最多可以配3个NET地址。在配置多个NET时,必须保证它们的System ID都相同。
1.4 IS-IS整体拓扑
IS-IS整体拓扑
为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。
拓扑介绍拓扑中为一个运行IS-IS协议的网络,它与OSPF的多区域网络拓扑结构非常相似。整个骨干区域不仅包括Area 47.0001中的所有路由器,还包括其它区域的Level-1-2路由器。
另外,Level-2级别的路由器可以不在同一个区域,即可以属于不同的区域。(可以结合IS-IS路由器分类的图示来进行理解)
拓扑所体现的IS-IS与OSPF不同点在OSPF中,一条链路只属于一个区域;而在IS-IS中,一条链路可以跨接不同的区域;即OSPF以路由器来区分边界,而IS-IS在链路上区分边界。
- 在IS-IS中,骨干网(Backbone)指的不是一个特定的区域;而在OSPF中,Area0被定义为骨干区域;
在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。
IS-IS区域IS-IS允许将整个路由域分为多个区域
- 一个路由器目前最多有3个Area ID,配置不同的区域ID是为了平滑的进行区域合并,分割,转换用。
- 和OSPF不同的是,一个路由器必须整个属于某个区域,而不能是某些接口属于一个区域,其它的接口属于另外一个区域。
- 最多可以配置3个NET地址,但是,System ID必须要一致。
1.5 IS-IS路由器分类
对于Area 47.0001:
- 47:路由域
- 0001:区域
Level-1路由器:位于非骨干区域Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。
- Level-1路由器只有本区域内Level-1的链路状态数据库LSDB,该LSDB包含本区域的路由信息。
- 在ISIS中,非骨干区域只有本区域的路由信息,没有骨干区域和其他非骨干区域的路由信息(L1区域类似于OSPF的Totally Stub区域,可以结合IS-IS整体拓扑的图示来进行理解);
- 所以到达本区域外的报文需要转发给最近的Level-1-2路由器(该路由器连接了骨干区域和非骨干区域);
- 非骨干区域中的路由器通过与自己最近的L1/L2路由器的ATT BIT生成指向此台设备的默认路由作为出口路由(L1区域类似于OSPF的Totally Stub区域);
- 在转发时,如果目的地址在本区域内,就直接利用L1 LSDB生成的路由转发报文;如果目的地址不在本区域,则利用最近的L1/L2路由器作为区域外网络的出口,由此可能导致次优的路由。(解决的方法是路由渗透)
- 到本区域外的报文转发给最近的Level-1-2路由器。
Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
Level-2路由器:位于骨干区域Level-2路由器负责区域间的路由,它可以与位于同一区域或者不同区域的Level-2及Level-1-2路由器形成邻居关系。
- Level-2路由器维护一个Level-2的LSDB,该LSDB包含IS-IS所有区域的路由信息。
所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。
Level-1-2路由器:通常位于区域边界上同时属于Level-1和Level-2的路由器称为Level-1-2路由器,
- 它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系;
- 也可以与同一或者不同区域的Level-2路由器形成Level-2的邻居关系;
- 还可以与同一或不同区域的Level-1-2路由器形成Level-2的邻居关系。
- Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
- Level-1-2路由器维护两个LSDB,Level-1的LSDB 用于区域内路由,Level-2的LSDB用于区域间路由。
- L1/L2路由器完成它所在的区域和骨干之间的路由信息的交换,既承担L1的职责也承担L2的职责;
- 一个L1/L2路由器如果和其它区域的路由器形成邻接关系,那么它将通告本区域内的L1路由器它有区域的出口点;
- 具体方法是在生成本区域的L1 LSP时将报文中的ATT(Attachment)bit置为1,发给区域内的L1邻居。
[Huawei-isis-1]is-level ?
level-1 Level-1
level-1-2 Level-1-2
level-2 Level-2
1.6 IS-IS层次性
1.7 IS-IS网络类型
IS-IS支持的网络类型
对于NBMA网络,如帧中继,需对其配置子接口,并注意子接口类型应配置为P2P。IS-IS没有专门对应于点到多点(P2MP)链路的网络类型。
DIS在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS。
- Level-1和Level-2的DIS是分别选举的。
- DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会被选中。
- 同一台路由器在不同level的DIS选举中可以设置不同的优先级。
- 优先级为0的路由器也参与DIS的选举,且DIS选举支持抢占。
- 同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系,但LSDB的同步仍然依靠DIS来保证。
DIS用来创建和更新伪节点,并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备,在LAN中通过每10秒周期性地发送CSNP来泛洪LSP。
伪节点伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和一个字节的CircuitID(非0值)标识。
- 使用伪节点可以简化网络拓扑。
当网络发生变化时,需要产生的LSP数量较少,减少进行SPF运算时的资源消耗。
ISIS DIS与OSPF DR/BDR的不同点在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
- 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
- 在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间。
DIS和Pseudnode
伪节点:
没有伪节点时的LSPDB
有伪节点时的LSPDB
- 总结
- 每个路由器都会通告自己与伪结点的连接性的LSP,
- 同时一个LAN上的路由器也会收集其它路由器产生的该类LSP,
- 当然还有伪节点产生的关于此LAN上路由器列表的LSP,以保证LSDB的同步。
- (参考2.2.2 ISIS-报文类型—LSP和2.5 广播网络LSP交互过程)
2.IS-IS基本原理
2.1 形成邻居关系的条件
- 同一区域实际上是不严谨的,只是L1必须要同区域;
- 对于PPP和HDLC,网络类型就是点到点;对于以太网,网络类型就是广播类型;
- 不同层次类型的路由器不能形成邻居关系,即Level-2路由器不能和Level-1路由器形成邻居关系,但是Level-1-2路由器既能和同一区域的Level-1路由器形成Level-1邻居关系又能和相同或者不同区域Level-2路由器形成Level-2邻居关系。
- Level-1路由器只能与同一区域的Level-1路由器或者Level-1-2路由器形成Level-1邻居关系。
- 链路两端IS-IS接口的地址必须处于同一网段
- 根据原理,IS-IS 邻居关系的形成与IP 地址无关的,所以容易导致相互形成邻居关系的路由器间处于不同的IP网段。为了解决这一问题,华为设备进行同一网段检查,保证邻居关系的正确建立。
- 如果不需要检查对端地址,在P2P网络中,可以配置接口忽略IP地址检查;在广播网络中,需要先在接口下将网络类型修改成P2P网络,然后才可以配置接口忽略IP地址检查。
形成邻居关系的细节
2.2 IS-IS报文类型
2.2.1 IIH PDU
- 在广播链路上,如果想同时形成L1和L2邻居关系,则需要发送这两种Hello报文
- 但是在点到点链路上,只需要发送一种Hello报文就可以了
- 另外需要注意的是Hello报文使用的是组播MAC地址进行发送
2.2.2 LSP
- LSP
- LSP Header
- 可以查看下面的示例:
Database information for ISIS(1)
————————————————
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
———————————————————————————————————————-
0000.0000.3333.00-00 0x00000009 0x2591 663 131 0/0/0
0000.0000.3333.02-00 0x00000001 0xf71f 657 55 0/0/0
0000.0000.4444.00-00 0x00000005 0xe391 661 126 0/0/0
0000.0000.5555.00-00 0x00000009 0x6d99 661 140 0/0/0
0000.0000.5555.02-00 0x00000001 0x6f41 661 55 0/0/0
0000.0000.6666.00-00 0x00000009 0x69d6 658 114 0/0/0
0000.0000.6666.01-00 0x00000001 0x3219 656 55 0/0/0
带有*表示是自己产生的;
Sequence Number
- LSP Holdtime和刷新间隔
OSPF的这些时间是不可以修改的,而且是从0开始递增。
LSP的信息,DIS产生的伪节点,伪节点的标识,以及伪节点LSP
DIS产生的伪节点
伪节点ID与伪节点产生的LSP的ID是两个不同的概念
LSP信息(简要信息,或者头部信息)
当然,如果AR1在连接的多个LAN网段都是DIS,则产生的伪节点ID则会有多个,编号就为AR1.01,AR1.02,以此类推。
LSP信息(详细)
上面的NBR ID,表示邻居的系统ID,该系统ID其实就是伪节点ID,说明LAN中的所有路由器会通告自己与伪节点的连通性。
LSP信息(详细,伪节点产生的LSP)
2.2.3 CSNP
2.2.4 PSNP
2.3 广播邻接关系的建立
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。在不同类型的网络上,IS-IS 的邻居建立方式并不相同。
ISIS邻居建立的不同情况在广播网络上,使用LAN IIH报文来建立邻接关系。
- 有两种类型的LAN IIH:L1 LAN IIH(组播MAC:0180-C200-0014)和L2 LAN IIH(组播MAC:0180-C200-0015) 。
- Level-1路由器通过交互L1 LAN IIH报文来建立邻接关系;
- Level-2路由器通过交互L2 LAN IIH报文来建立邻接关系;
Level-1-2路由器会同时交互L1 LAN IIH报文和L2 LAN IIH报文来建立邻接关系。
以两台L2路由器在广播链路上建立邻居关系为例R1组播发送Level-2 LAN IIH(组播MAC:0180-C200-0015),此报文中无邻居标识。
- R2收到此报文后,将自己和R1的邻居状态标识为Initial。然后,R2再组播向R1回复Level-2 LAN IIH,此报文中标识R1为R2的邻居。
- R1收到此报文后,将自己与R2的邻居状态标识为Up。然后R1再组播向R2发送一个标识R2为R1邻居的Level-2 LAN IIH。
- R2收到此报文后,将自己与R1的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。
- 因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。
- Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。优先级默认为64。
IS-IS中DIS发送Hello时间间隔为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。(只是Hello时间间隔,不是CSNP的时间间隔)
IS-IS和OSPF关于邻接关系的区别IS-IS两个邻居路由器只要相互交换HELLO数据包就认为相互形成了邻接关系;而OSPF中,两台路由器进入2-Way状态则被认为形成了邻居关系,只有进入Full状态才被认为建立了邻接关系。
- IS-IS中,优先级为0的路由器也可以参与DIS选举;而OSPF端优先级为0表示不参与DR选举。
- IS-IS中,DIS是可以抢占的;OSPF中DR/BDR选举结束后不得被抢占。
2.4 P2P邻接关系的建立
在P2P网络上,邻居关系的建立不同于广播网络,分为两次握手机制和三次握手机制。
两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系。
容易存在单通风险。
三次握手此方式通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,类似广播网络中邻居关系的建立。
- 默认使用3次握手;
- 配置3次握手时的参数
- 在接口配置使用3次握手来建立邻居关系时,使用命令3-way的参数时,后面必须要再加only参数,否则既可以使用3次握手,也可以使用2次握手来建立邻居关系。
2.5 广播网络LSP交互过程
新加入的路由器与DIS LSDB同步交互过程
- 假设新加入的路由器R3已经与R2(DIS)和R1建立了邻居关系。
- 建立邻居关系之后,R3将自己的LSP发往组播地址(Level-1:0180-C200-0014;Level-2:0180-C200-0015)。这样网络上所有的邻居都将收到该LSP。
- 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP报文,进行该网络内的LSDB同步。
- R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
- DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。
- 广播网段不需要发送PSNP对收到的LSP进行确认,这是一种不可靠的传输机制,弥补的机制为,DIS会周期性泛洪CSNP;
上面图示中,R2.01-00为伪节点的LSP,即R2作为DIS,它除了自己本身会生成LSP,也会为伪节点生成LSP,因为伪节点的LSP会列举网段上所有已知路由器;
在上述过程中DIS 的LSDB 更新过程如下(了解就可以了)DIS接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并组播新数据库内容。(此时的数据库包含新的LSP,如R3的LSP,比原来的数据库要新)
- 若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并组播新数据库内容;若收到的LSP序列号小于本地LSP的序列号,就向入端接口发送本地LSP报文。
- 若两个序列号相等,则比较Remaining Lifetime(剩余生存时间)。若收到的LSP 的Remaining Lifetime 小于本地LSP 的Remaining Lifetime,就替换为新报文,并组播新数据库内容;若收到的LSP 的Remaining Lifetime 大于本地LSP的Remaining Lifetime,就向入端接口发送本地LSP报文。
- 若两个序列号和Remaining Lifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并组播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
若两个序列号、Remaining Lifetime和Checksum 都相等,则不转发该报文。
补充
- 广播网段中,LSP的传送是不可靠的,即没有确认机制的,弥补的方式为,DIS周期泛洪CSNP;
2.6 P2P网络LSP交互过程
P2P网络LSDB同步过程
- 建立邻居关系之后,R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
- 实验的效果为,R1与R2相互建立邻居关系后,会相互发送LSP,然后再发送CSNP,进行后续的LSDB同步过程;
- 假定R2向R1索取相应的LSP。则R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
- 如果在接口LSP重传定时器超时后,R1还没有收到R2发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。
在P2P链路中设备的LSDB 更新过程如下(了解就可以了)
- 若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP 存入自己的LSDB,再通过一个PSNP 报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。
- 若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到LSP的Remaining Lifetime 小于本地LSP的Remaining Lifetime,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LS,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Remaining Lifetime大于本地LSP 的Remaining Lifetime,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
- 若收到的LSP和本地LSP的序列号和Remaining Lifetime都相同,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该报文。
在P2P网络中,PSNP的作用作为Ack应答以确认收到的LSP。
- 用来请求所需的LSP。
3.IS-IS基本特点
3.1 IS-IS路由渗透
假设R1要访问R6,缺省情况下
- R1作为Level-1路由器并不知道本区域外部的路由,那么发往区域外的报文都会选择由最近的Level-1-2路由器(即R3)产生的缺省路由发送出去(是因为L1/L2路由器产生ATT bit置位的LSP),所以会出现R1选择次最优路由(R1->R3->R5->R6)转发报文的情况。
- 为解决上述问题,IS-IS提供了路由渗透功能。通过在Level-1-2路由器上定义ACL、路由策略、Tag标记等方式,将符合条件的路由筛选出来并导入本区域的level-1 LSDB,从而实现将其他Level-1区域和骨干区域的部分路由信息通报给自己所在的Level-1区域。
如果分别在Level-1-2路由器R3和R4上使能路由渗透功能,Aera47.0001中的Level-1路由器就会拥有经这两个Level-1-2路由器通向区域外的路由信息。经过路由计算,选择的转发路径为R1->R2->R4->R5->R6,即R1到R6的最优路由。
UP/DOWN bit防止环路
- 在AR3上配置路由渗透
- 可能产生环路
- AR3将该LSP传给到AR4的时候,如果AR4也使用带有10.1.7.7的链路状态信息进行计算,则有可能会传给AR5,从而导致环路。
- 如何防止环路
- 在AR3发送给AR1的LSP中,10.1.7.7的链路状态信息带有DOWN bit置位,而正常情况下该bit置位为UP,当AR4收到时,不仅不会将其传给AR5,而且也不会将其进行SPF计算,只是会保存到LSDB中;
- 该bit只能通过抓包才能看到;
3.2 IS-IS路由过载
原理描述
设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。
拓扑说明R1到R3的报文由R2转发,但如果R2发布的LSP中的OL位置1,则R1认为R2的LSDB不完整,于是将流量通过R4、R5转发给R3,但去往R2直连网段的流量不受影响。
进入过载状态的方法设备异常可导致自动进入过载状态。
手工设置使设备进入过载状态。
进入过载状态的说明如果因为设备进入异常状态导致系统进入过载状态,此时系统将删除全部引入或渗透的路由信息。
如果因为用户配置导致系统进入过载状态,此时会根据用户的配置决定是否删除全部引入或渗透路由。
路由过载实例演示
- AR5上配置路由过载
- AR3上的LSDB情况
- 可以看到AR3上有收到AR5发送过来的LSP,只是会发现OL位已经置为1了;
另外一个是P bit位,这是用于区域修复的,作用类似于OSPF中的虚链路,当初在设计ISIS的时候也考虑到了区域不规整的情况;
AR3上的路由表情况
- 可以看到AR5后面的路由信息就没有了。
4.IS-IS收敛特性
4.1 快速收敛
增量最短路径优先算法
增量最短路径优先算法I-SPF,是指当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算;而最后生成的最短路径树SPT与对所有节点进行计算所得的结果相同,同时大大降低了CPU的占用率,提高了网络收敛速度
部分路由计算PRC部分路由计算PRC,PRC的原理与I-SPF相同,都是只对发生变化的路由进行重新计算。不同的是,PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新路由。在路由计算中,叶子代表路由,节点则代表路由器。如果I-SPF计算后的SPT改变,PRC会只处理那个变化的节点上的所有叶子;如果经过I-SPF计算后的SPT并没有变化,则PRC只处理变化的叶子信息。比如一个节点使能一个IS-IS接口,则整个网络拓扑的SPT是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。
智能定时器LSP生成智能定时器:为了避免LSP频繁振荡对网络带来的冲击,LSP的生成存在一个最小间隔的限制,即同一个LSP在最小间隔内不允许重复生成,一般缺省最小时间间隔为5秒,作了这种限制后,路由收敛速度受到较大影响。IS-IS中,当本地路由信息发生变化时,路由器需要产生新的LSP来通告这些变化。当本地路由信息的变化比较频繁时,立即生成新的LSP会占用大量的系统资源。另一方面,如果产生LSP的延迟时间过长,则本地路由信息的变化无法及时通告给邻居,导致网络的收敛速度变慢。可以使用timer lsp-generation命令用来设置产生LSP(这些LSP具有相同的LSP ID)的延迟时间。
SPF计算智能定时器:IS-IS中,LSDB发生变化时需要进行路由计算,但频繁的路由计算会占用大量的系统资源,导致系统性能下降。延迟SPF计算可以在一定程度上提高路由计算的效率。另一方面,如果路由计算的延迟时间过长,则会减慢路由的收敛速度。可以使用timer spf命令用来设置SPF路由计算的延迟时间。
LSP快速扩散LSP快速扩散,由于LSP数量比较庞大,通常为了减轻大量LSP一起发送时对网络设备带来的冲击,一般IS-IS都是采用周期性分批扩散LSP的方法(缺省情况下,接口上发送LSP报文的最小间隔时间是50毫秒,每次发送LSP报文的最大数目是10)。使能flash-flood功能后,当LSP发生变化而导致SPF重新计算时,不再等待周期性分批扩散,而是把导致SPF重新计算的LSP立即扩散出去,从而有效缩短拓扑变化时全网设备上LSDB不一致的时间,提高全网的快速收敛性能。虽然LSP数量很多,但每次网络出现故障而需要发生变化的LSP却很少,所以将这部分发生变化的LSP进行单独的快速扩散对系统的资源占用影响很有限。
4.1.1 I-SPF(Incremental SPF)
- D通告新邻居G,A只需要从D开始计算SPT。
4.1.2 PRC:Partial Route Calulation
4.1.3 智能定时器
4.1.4 LSP快速扩散
4.2 按优先级收敛
- 可以通过IP前缀列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。
- IS-IS路由的收敛优先级分为critical、high、medium和low四种。收敛优先级的顺序由高到低为critical > high > medium> low。
- 本地有效。
5.IS-IS拓展特性
5.1 IS-IS认证
对于区域和路由域认证,可以设置为SNP和LSP分开认证(可以忽略)
- 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
- 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
- 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
- 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
- 接口认证、区域认证和路由域认证
- 接口认证
- 配置了接口认证后,在发送的IIH报文中,会携带认证字段,如果没有配置接口认证,就不会有该字段;
- 区域认证
- 区域认证要在ISIS进程中配置;
- 先在AR3上进行配置,[AR3-isis-1]area-authentication-mode md5 hcie(后续再配置AR1的);
- 之后,在AR3发送给AR1的SNP和LSP报文中,都带有认证字段,如果没有配置区域认证,则不会有该认证字段;
- 配置认证后,AR3会对接收的LSP和SNP报文进行认证,如果不包含认证字段,则会丢弃LSP和SNP报文,所以AR3学习不到AR1发送过来的路由信息;
- 但是AR1是会接收AR3发送过来的LSP和SNP的,虽然没有配置认证,理解的方式为,AR1不认识该字段,所以也会进行接收;
- 路由域认证
- 路由域认证要在ISIS进程中配置;
- 先在AR5上进行配置,domain-authentication-mode md5 hcie(后续再配置AR3的);
- 之后,在AR5发送给AR1的SNP和LSP报文中,都带有认证字段,如果没有配置区域认证,则不会有该认证字段;
- 配置认证后,AR5会对接收的LSP和SNP报文进行认证,如果不包含认证字段,则会丢弃LSP和SNP报文,所以AR5学习不到AR3发送过来的路由信息;
- 但是AR3是会接收AR5发送过来的LSP和SNP的,虽然没有配置认证,理解的方式为,AR3不认识该字段,所以也会进行接收;
5.2 IS-IS LSP分片扩展
5.2.1 基本概念
- 初始系统(Originating System):实际运行IS-IS协议的路由器。使能IS-IS LSP分片扩展功能后,可以为路由器配置附加的虚拟系统,“Originating System”指的是原来运行的、“真正”的IS-IS进程。
- 系统ID(System ID):初始系统的系统ID。
- 附加系统ID(Additional System ID):使能IS-IS LSP分片扩展功能后,为IS-IS路由器配置的附加的虚拟System ID。每个附加系统ID都可以生成256个额外扩展的LSP分片。附加系统ID和系统ID一样,在整个路由域中必须唯一。
- 虚拟系统:由附加系统ID标识的系统,用来生成扩展LSP分片。
- 系统ID ———-标识—> 初始系统
- 附加系统ID —标识—> 虚拟系统
5.2.2 原理描述
- IS-IS通过泛洪LSP来宣告链路状态信息,由于一个LSP能够承载的信息量有限,IS-IS将对LSP进行分片。每个LSP分片由产生该LSP的结点或伪结点的SystemID、PseudnodeID(普通LSP中该值为0,Pseudonode LSP中该值为非0)、LSPNumber(LSP分片号)组合起来唯一标识,由于LSPNumber字段的长度是1字节,因此,IS-IS路由器可产生的分片数最大为256,限制了IS-IS路由器可以发布的链路信息量。
- IS-IS LSP分片扩展特性可使IS-IS路由器生成更多的LSP分片,通过为路由器配置附加的虚拟系统、每个虚拟系统都可生成256个LSP分片(最多可配置50个虚拟系统),使得IS-IS路由器可最多生成13056个LSP分片
5.2.3 LSP分片分类
Mode-1
- 用于网络中的部分路由器不支持LSP分片扩展特性的情况。
- 虚拟系统参与路由SPF计算,初始系统发布的LSP中携带了到每个虚拟系统的链路信息。类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。
- 虚拟系统的LSP中包含和原LSP中相同的区域地址和overload bit。如果还有其它特性的TLV,也必须保持一致。
- 虚拟系统所携带的邻居信息指向初始系统,metric为最大值(窄度量情况下最大值为64)减1;初始系统所携带的邻居信息指向虚拟系统,metric必须为0。这样就保证了其它路由器在进行路由计算的时候,虚拟系统一定会成为初始系统的下游节点。
- 如拓扑所示:R2是不支持分片扩展的路由器,R1设置为mode-1的分片扩展,R1-1和R1-2是R1的虚拟系统,R1将一部分路由信息放入R1-1和R1-2的LSP报文中向外发送。R2收到R1,R1-1和R1-2的报文时,认为对端有三台独立的路由器,并进行正常的路由计算。同时R1到R1-1和R1-2的开销都是0,所以,R2到R1的路由开销值与R2到R1-1路由开销值都相等。
虚拟系统产生的LSP包含的邻居只有初始系统(邻居类型为点到点),且虚拟系统仅当做叶子考虑。
Mode-2用于网络中所有路由器都支持LSP分片扩展特性的情况。在该模式下,虚拟系统不参与路由SPF计算,网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。
- R2支持分片扩展,R1设置为Mode-2的分片扩展,R1将一部分路由信息放入到R1-1和R1-2的LSP报文中向外发送。当R2收到R1-1和R1-2的LSP时,通过IS Alias IDTLV知道他们的初始系统是R1,则把R1-1,R1-2所发布的信息都视为R1的信息。
5.2.4 注意事项
- 配置分片扩展后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去。
- 如果网络上还有其他厂商的设备,配置分片扩展必须配置成Mode-1,否则其他设备无法识别。
- 建议先配置分片扩展和虚拟系统,然后将IS-IS建立邻居或者引入路由。如果先让IS-IS携带大量信息,256个分片无法装下,再配置分片扩展和虚拟系统,需要重启IS-IS才可以让配置生效,所以要谨慎。
6.IS-IS管理特性
6.1 IS-IS管理标记(Tag)
管理标记
管理标记特性允许在IS-IS域中通过管理标记对IP地址前缀进行控制,可以达到简化管理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的IS-IS多实例。
拓扑描述假设R1只想收到R2/R3/R4的Level-1路由信息。首先给R2、R3、R4的IS-IS的接口配置相同的tag(管理标记)。然后在Area47.0003的Level-1-2 路由器做从Level-2到Level-1区域的路由渗透,渗透时使用tag进行过滤,可以简化过滤的策略。
注意事项使能管理标记时,必须使能IS-IS wide metric属性
配置实例:
- 所有路由器使能wide metric属性
- [AR7-isis-1]cost-style wide
- 在AR7和AR6上配置TAG属性
- 配置方式
- AR7上配置(新增了接口l1,IP地址为100.100.100.100/32)
- AR6上配置
- AR3上查看相应的路由信息
- 在AR3上做路由渗透时就可以根据TAG属性进行路由渗透
6.2 IS-IS Wide Metric
- 最大为63,指的是初始路由的发出点最大可以设置cost值为63;
- IS-IS在计算路由时,是不基于链路计算cost值的,每经过一跳,cost值都加上10;
- 为什么要改为wide类型才能使用标签?
- 对比前面的数据包,改为wide之后,数据包的格式变为这样:
- 可以看到多了sub-TLVs,字段,也就是用来存放TAG值的字段,原来的数据包类型是没有的,所以也就没有办法支持TAG;
- 这也是ISIS的优点之一,扩展很灵活。
7.IS-IS路由引入、过滤与汇聚
- 路由引入
- 默认情况下,在引入其它路由时,比如直连路由,是以level-2的方式引入的,所以如果在L1路由器上做引入,一定要加level-1参数;
- 路由过滤
- 在isis进程中使用filter-policy import进行路由的过滤时,需要注意的是,此时进行的过滤只是LSPDB在向路由表中加载路由时的过滤,这意味着,即使对相关路由做了过滤,在LSPDB上,相应的LSP还是存在的;
- 路由汇聚
- 可以在L1/L2路由器上进行过滤,有两种过滤方式:
- L1区域到L2区域的汇聚
- 默认情况下,L1区域的路由会自动引入到L2区域中;
- 如果需要进行汇聚,可以直接在isis进程下配置summary就可以,最后面的参数默认为level-2;
- 此时L2区域的路由器会同时拥有汇聚路由和明细路由(实验结果);
- L2区域到L1区域的汇聚
- 这种情况下,需要先进行路由渗透;
- 在isis进程下配置summary时,需要在最后面加上level-1参数,表示是从L2区域到L1区域的汇聚;
- 此时L1区域只有汇聚路由,没有明细路由(实验结果);
- L1区域到L2区域的汇聚
- 可以在L1/L2路由器上进行过滤,有两种过滤方式:
8.IS-IS与OSPF比较
8.1 DIS与DR的区别
- DR有BDR备份,而DIS无备份,DIS Hello时间为3s,普通为10S。
- DR不支持抢占,DIS支持抢占。
- 优先级为0不能成为DR,而ISIS中优先级为0可以成为DIS。
- DR默认优先级为1,DIS默认64。
- MA网络中DR-other只与DR/BDR建立邻接关系,而ISIS中DIS全互联。
- DR优先级一样比较Router-ID,而DIS优先级一样则比较MAC,(PPP中没有MAC的则比较system-id)。
- DR的Hello时间和普通路由器一样,而DIS是3S(普通是10S)。
- DR选举时间为4倍的Hello时间,而DIS则是2倍的Hello。
- OSPF中DR-other直接传递LSA是通过DR,而ISIS中所有的设备直接传递LSP,DIS充当间接确认(10s周期更新一次CSNP)