IS-IS
Intermediate System to Intermediate System,基于SPF算法的链路状态路由协议,
也是一种内部网关,协议优先级为15,最初由ISO对其进行标准化工作。只能工作在点对点的链路和广播型的链路上,或者全互联的FR中,主流用于ISP中,可扩展性(TLV报文)相对于OSPF更加丰富,OSI模型以路由器节点为一个单位,而不是端口,使用数据链路层进行承载。
传统的IS-IS默认只能运行在OSI环境中,为了让IS-IS运行在TCP/IP环境中,所以
对原始的IS-IS(ISO10589)做了一些改进。称为Integrated IS-IS。现在所有的IS-IS
实际上都为Integrated IS-IS,即支持TCP/IP网络模型,同时也支持OSI网络模型,IETF
使用TLV(Type、Length、Value)对IS-IS进行扩展,在原来支持CLNP环境网络的基础上
由支持IP网络。
默认主流路由协议(OSPF、RIP等)运行的协议栈为TCP/IP的协议栈,所以路由器默认运行的为TCP/IP的协议栈,IS-IS基于OSI协议栈,所以在配置了IS-IS的路由器上默认会开启OSI协议栈,所以路由器为双栈模式,所以称为集成的路由。
分为两个版本:
① IS-ISV4:IPV4类型路由
② IS-ISV6:IPV6类型路由
一. CLNS:
Connectionless Network Service,无连接网络服务,一种网络架构,ISO开发的OSI七层模型中的协议簇服务,CLNS的服务报文为CLNP,原始的IS-IS服务于OSI的CLNP(类似于IP),而现在的集成IS-IS即服务于OSI的CLNP,也服务于TCP/IP的IP。
CLNS由以下三个协议构成:
① CLNP
② IS-IS
③ ES-IS
IP是TCP/IP协议中唯一的网络层协议,包含路由协议和用户数据都封装在IP包内,而CLNP、IS-IS协议都是网络层协议,分别被封装在数据链路层的帧内。
1. CLNP协议:
类似于TCP/IP的IP协议,IP协议为TCP/IP传输层服务,CLNP为OSI传输层服务,CLNP定义独立于数据链路层,直接封装在数据链路层之上。
2. IS-IS协议:
Intermediate System to Intermediate System,路由器到路由器,中间系统间的路由协议,类似于IP中的OSPF
3. ES-IS协议:
End System to Intermediate System to Intermediate System,末节系统到中间系统,PC到路由器协议, ES与IS之间的信息沟通协议被称为ES-IS协议。同一网段或链路的ISO终端系统和路由器之间自动交换信息便于邻接点发现。路由器发送IS报文hello(ISH),主机发送ES报文hello(ESH)。在直连节点间发送的hello报文包含通信节点的网络层地址和数据链路层地址。包含地址分配,网关选择等功能。等同于IP中的ICMP、ARP、DHCP协同工作。
二. 基本概念:
1. PDU:
Packet data Unit,报文数据单元,类似于TCP/IP中的IP数据包。
2. TLV:
IS-IS具有很好的扩展性最主要的原因在于使用它TLV编程,TVL表示为Type类型、Length长度、Value值,Type和Length的长度固定,一般那是2、4个字节,在IS-IS中都为1Byte,Value的长度不固定,由Length指定。
3. NSAP:
Network Service Access Point,网络服务接入点,用来标识接口,由CLNP地址和服务端口号组成,NSAP是OSI协议中用于定义资源的地址,相当于OSI的网络层协议CLNP的地址(类似于IP地址的概念)
4. NET:
Network Entity Title,网络实体标记,一种特殊的特殊NSAP,由于集成IS-IS需要在TCP/IP上运行,所以重新定义了特殊的NSAP接口标识,称为NET,NET标识时可变长的,最短8Byte,最长20Byte,并且最后一个字节为0。
NET组成部分:
LDP+DSP+SEL==AFI+可变长Area ID(总共1~13Byte)+固定6Byte的Sys-ID+固定NSEL的00
NET举例:
- 49.aaaa.bbbb.cccc.00
- 49.0001.aaaa.bbbb.cccc.00
- 49.0001.0002.aaaa.bbbb.cccc.00
配置命令:[Huawei-isis-1]network-entity 49.0001.0000.0000.1111.00
注:NSEL(资源定位符)用来表示高层协议类型,IS-IS没有高层协议,所以为00
(1)AREA-ID:
IS-IS允许将整个路由域分为多个区域,一个路由器目前最多有3个Area ID,配置不同的区域ID是为了平滑的进行区域合并、分割、转换用。和OSPF不同的时,一个路由器必须属于某个区域,而不能是某些接口属于一个区域,其他的接口属于另外一个区域,一个路由器最多只能配置三个Area-ID,表示做多连接三个区域,配置不同的区域ID时为了平滑的进行区域合并、分割、转换用。
① 平滑过渡原理:
a) 两台路由器分别属于不同的区域,运行IS-IS进行互联
b) R2想要进行区域的重新配置,为了防止数据流量的不中断,此时需要进行平滑过渡,在R2上配置多区域,此时R2上的两个区域都会和R1进行连接
c) 删除R2的老区域ID
(2)Sys-ID:
System ID,路由器身份标识,类似于OSPF的Router ID。
5. DIS:
Designated IS指定中间系统,相当于OSPF的DR,在一个域中的唯一节点标识。
(1)DIS功能:
① 在广播型网络中创建和更新伪节点。
② 在LAN中通过每10S周期性的发送CSNP来泛洪LSP。
(2)DIS选举:
默认在broadcast网络中选举DIS,P2P网络中无DIS,选举规则为:
① 查看DIS优先级,优先级值越高,越优先选举(默认优先级值为64)
② 根据SNPA(子网连接点)最大的(广播为MAC地址)进行选举
注1:DIS的选举是抢占模式,当优先级为0依旧有选举权。
注2:与OSPF不同,IS-IS的DIS不存在备份的DIS,当一个DIS不能工作时,直接选举新的DIS。
注3:由于没有备用的DIS,为了防止网络拓扑无法及时收敛,规定DIS发送Hello数据包的时间间隔是普通路由的1/3,这样可以保证DIS失效可以被快速检测到。
注4:在接口下使用命令修改优先级:isis dis-priority 100
(3)伪节点作用:
与OSPF的DR不同,存在DIS的Lan网段中,所有的路由器之间都会建立全互联,所以DIS不像OSPF那样减少网络设备邻居建立带来的负担和减少LSP的传递。
① DIS在伪节点LSP中通告LAN中的所有邻接路由器(类似于OSPF的LSA type 2)
② 在LAN中通过每10S周期地发送CSNP来泛洪LSP,可以使同Lan中的设备更快的得知当前LSDB中缺少的LSP,增加了可靠性
DIS设备每次发送Hello报文的时间比普通设备发送的Hello报文快,默认每3S发送一次,
9S失效,并且默认网络中的设备抢占。
DIS可以被抢占的原因:
- OSPF的DR会和所有的设备建立FULL邻接关系,如果DR可以被抢占,当网络中出现新的DR,但是DR的数据库没有得到收敛,本来已经收敛的路由器收到了DR的DD报文,发现DD报文中缺少自己数据库中的一些LSA,此时他认为这些LSA是失效的,于是删除LSA,如果DR收敛完成,在发送DD报文,设备又会重新请求这些LSA
- 在IS-IS中,DIS被边缘化,所有的设备都形成全互联的连接关系,而不会经过DIS中转LSP,所以即使出现了新的DIS,也不会造成其他路由器数据库的变化
(4)DIS/DR:
IS-IS的DIS和OSPF中的DR的区别:
选项/名称 |
DIS |
DR |
是否存在辅助 |
只有DIS |
DR、BDR都存在 |
选举规则 |
默认为64,越大越好 |
默认为1,越大越好 |
选举优先级0 |
依旧有选举资格 |
无选举资格 |
Hello包的标识 |
认为自己为DR |
不认为自己为DR,等待其他路由器告知自己DR的标识 |
选举过程 |
优先级、MAC |
优先级、Router ID |
能够抢占 |
抢占 |
不抢占 |
连接关系 |
全互联,所有的路由器之间都是Full状态 |
其他路由器只和DR、BDR有Full关系 |
稳定后行为 |
默认每10S发送一次CSNP |
和其他路由器一样,每30min发送一次自身产生的LSA |
三. 网络类型:
IS-IS区域的分界位于链路上,工作在数据链路层上,直接封装在二层帧上,IS-IS协议只支持点到点和Broadcast两种网络类型。
① 点到点链路,如PPP、HDLC等
② 广播链路,如Ethernet
注1:在FR中,由于没有二层MAC地址,无法选举DIS,所以ISIS在FR网络类型中为P2P模式,由于P2P模式只能和对端建立一个邻居,所以如果FR网络中有多个邻居时,需对其配置子接口。
注2:ISIS只支持广播链路到P2P的转换,使用命令[Huawei-Serial0/0/0]isis circuit-type p2p修改
四. 路由器分类:
每台路由器都必须属于一个Area,路由器分为三种类型:
① level-1 Routers
② level-2 Routers
③ level-1 Routers and level-2 Routers
注:路由器类型可以在接口上配置,但是全局配置优于接口配置,只有全局是L1/L2路由器时,接口的配置才会生效。
1. Level-1 Routers:
普通区域路由器,位于普通区域内部,Level 1区域只传递本区域路由,Level-1也是Stub区域,数据库中只有本区域的拓扑和路由信息,通过检测LSP报文中的ATT bit发现当前网络的L1/L2路由器,如果ATT bit置1,将生成一条默认路由指向此L1/L2路由器。
Level-1 Router在建立邻居时必须Area ID相同,否则无法建立邻居
具有以下特点:
- L1路由器只和本区域的L1路由器或具有L1功能的L1/L2路由器形成邻居关系。
- L1路由器只有本区域内L1的链路数据库(L1 LSPDB),包含本区域内所有的L1路由器的路由信息。
- 通过与自己最近的L1/L2路由器的ATT bit生成指向此台设备的默认路由作为出口路由(L1区域类似于OSPF的Totally stub区域)。
注:ATT bit置位有两个条件:① 必须有Level2的邻居;② 必须和Level2邻居处于不同区域
- 在转发时,如果目的地址在本区域内,就直接利用L1 LSPDB生成的路由转发报文,如果目的地不再本区域,则利用本区域最近的L1/L2路由器作为区域外网络的出口(可能导致次优路由)。
2. Level-2 Routers:
骨干区域内的路由器,骨干区域内部的路由器一定是Level-2 Routers(除区域边界L1/L2 Routers)。Level-2路由器数据库中有全网的LSP信息,所以也存在全网的路由信息。Level2区域在一个AS内必须是连续唯一的,用来传递Level 1区域的路由,Level2区域有所有区域的路由信息。
Level-2 Router建立邻居时不关心Area ID问题,所以不同区域的Level-2路由器可以建立邻居,所以骨干区域时可以跨域的。
具有以下特点:
- 可以和其他的L2路由器或具有L2功能的L1/L2路由器形成邻居关系。
- L2路由器有Level2的链路状态数据库(L2 LSDB),它包含所有的区域间(全网)路由信息。
- 接收来自本区域内其他L2路由器的报文,并按照目的地址将报文转交给其他区域的L2路由器(或是转发到统一区域的L2路由器)。接受来自其他区域的L2路由器的报文,并按照目的地址将报文转发。
3. L1/L2 Routers:
存在骨干区域,用于连接骨干区域和普通区域的路由器,以L1/L2 Routers为界限,L1/L2
Routers连接的普通区域路由器为L1 Routers,L1/L2 Routers连接的骨干区域路由器为L2
Routers,默认两台路由器都为L1/L2 Router时,在建立邻居时会形成两个类型路由的邻居。
所以存在两个LSDB。如果LSDB中不同的Level存在相同的路由,则Level1优于Level2。
L1/L2 Router将Level1区域的LSP转换为level2区域的LSP在骨干区域传递,并且在传递Level1 LSP时将ATT bit置位,表明自己为L1/L2 Router,收到ATT bit置位的路由器将生成一条默认路由指向此L1/L2 Router。
注:ATT bit置位有两个条件:① 必须有Level2的邻居;② 必须和Level2邻居处于不同区域
如果普通区域存在多个L1/L2 Router,普通区域的Level1路由器会根据自身到L1/L2 Router的开销选择最优路径作为默认路由的出口,如果开销相同,实行附载分担。
具有以下特点:
- 可以和本区域的任何级别路由器形成邻居关系;可以和其他区域相邻的L2或L1/L2路由器形成L2邻居关系。
- 可能有两个级别的链路状态数据库。
- L1用来作为区域内路由;L2用来作为区域间路由。
- 完成它所在的区域和骨干区域之间的路由信息的交换,即承担L1的职责也承担L2的职责,将L1区域的路由信息通告到L2区域。
五. IS-IS报文:
IS-IS直接工作在数据链路层,所以IS-IS报文依靠IEEE802.3承载。
IS-IS报文主要分为以下几种:
① IIH
② LSP
③ SNP-PDU
头部信息:
头部信息每行为1Byte
Intradomain Routing Protocol Discriminator |
|||
length indicator |
|||
Version/Protocol ID Extension |
|||
ID Length |
|||
R |
R |
R |
PDU Type |
Version |
|||
Reserved |
|||
Maximum Area Addresses |
① Intradomain Routing Protocol Discriminator:路由鉴别器,为ISIS
② Length Indicator:长度指示器(PDU报文头长度)
③ Version/Protocol ID Extension:版本为1;协议ID扩展
④ System ID Length:系统ID长度,为6
⑤ PDU Type:PDU报文类型
⑥ Version:版本
⑦ Reserved:保留位
⑧ Maximum Area address:最大支持配置的Area ID
1. IIH:
Intermediate System to Intermediate System Hello PDU,中间系统到中间系统的Hello PDU,用来建立邻居,维护网络拓扑,相当于OSPF中的Hello报文
分为三种类型:
① Level 1 IIH
② Level 2 IIH
③ P2P IIH
(1)Level-1/Level-2 IIH:
L1 Router和L1 Router/L1 L2 Router建立邻居关系发送的数据包,默认10S发送一次,Died时间为30S;DIS路由器默认3S发送一次,Holding为10S,如果Level类型为Level-1-2,则Level-1 IIH和Level-2 IIH都发送,并且Circuit Type类型变为Level-1 and Level-2。
① circuit type:IHH的Level类型
② Reserved:保留位
② System ID:系统ID(如果当前路由器为DIS,后面增加接口标识来证明)
③ Holding timer:死亡时间
④ PDU Length:PDU长度(不包含头部长度)
⑤ Priority:DIS优先级
⑥ System ID(Designated IS):自认为DIS系统ID
⑦ Area address:区域ID
⑧ IS Neighbor:对端标识,MA为Mac地址
⑨ IP interface address:接口IP地址(广播网络,当收到Hello报文后,检查此选项,如果和接口IP处于同网段接收,否则不建立邻居关系)
⑩ Protocols Supported:协议支持,为IP
注:Level1使用的二层组播地址为01:80:C2:00:00:14,Level2使用的二层组播地址与Level1不同,为01:80:C2:00:00:15
(3)P2P IIH:
点到点网络中,使用P2P IIH建立邻居,默认10S发送一次,Holding timer为30S。
① circuit type:IHH的Level类型
② Reserved:保留位
② System ID(Sender of PDU):系统ID
③ Holding timer:死亡时间
④ PDU Length: PDU长度(不包含头部长度)
⑤ Area address:区域ID
⑦ IP interface address :接口IP地址
⑧ Protocols Supported:协议支持,为IP
⑨ P2P Adjacency state:P2P邻居状态
- Adjacency Start:本端状态 down/Init/UP
- Extended Local Circuit ID:本端的标识
- Neighbor System ID :对端的标识
- Neighbor Extended Local circuit ID:本端的外部标识
注:由于P2P不选举DIS,所有没有Priority,并且邻居状态IS Neighbor由P2P Adjacency state标识
2. LSP:
Link state Protocol Data Unit,链路状态数据单元,类似于OSPF中的LSA,携带路由信息,LSP在每台路由器LSPDB中的最大生存时间为20分钟,默认每台路由器15分钟刷新一次。由于IS-IS没有类似于OSPF的LSU报文,所以直接发送LSP给对端邻居,一个接口链路为一条LSP,如果路由器将所有的接口信息全部告诉对端邻居,会发送对应数量的LSP给对端。
(1)LSP报文特性:
LSP报文使用LSP-ID用于标识一份唯一的LSP,当收到两份相同的LSP后,首先比较Sequence Number,如果Sequence Number一样,则比较LSP Hold time,如果收到LSP的老化时间大于本地的老化时间,则认为更优,如果时间一样,则比较校验和,校验和越大也优先。
① LSP-ID:
每一条LSP都有唯一的LSP-ID用于身份标识:
- Sys ID:(节点或伪节点的Sys ID)
- Pseudo node ID:伪代码ID,普通LSP为0;Pseudo node LSP非0
- LSP number:分片号,如果一条LSP超出MTU值,会被分片,使用分片号标识顺序,
外部路由也会被分片
② Sequence Number:
序列号,用来确定是否是最新的LSP版本,每次更新LSP,默认序列号增加1,一台ISIS路由器不会接收比原来序列号相同或更小的LSP。
序列号从0x00000000,0xFFFFFFFF最大,线性增长。
③ LSP Hold time:
- 用来周期性清除旧的LSP,最大Hold time生存时间为20分钟(1200S),从1200倒数为0(与OSPF从0~3600S相反),当到数为0后,此条LSP将被清除,使用命令[Huawei-isis-1]timer lsp-max-age 10000(最大65535)修改生存时间值。
- LSP的刷新时间为15分钟(900S,15%-25%的随机抖动),使用命令[Huawei-isis-1]timer lsp-refresh 100(最大65535)修改该刷新时间
注:如果LSP到生存时间都没有刷新包到来,name这个包的生存时间到0以后,name将清除LSP的内容,只保留LSP Header(LSP-ID)将Lifetime置0泛洪出去,所有收到为0的LSP路由器在60S后将从库中清楚,这种行为叫做“零寿命生存时间”
④ ATT bit/Overload bit/P bit:
分别为为1bit,如果置位,表明其作用生效:
- ATT:如果ATT位置1,表明此条LSP的发布者为L1区域去往骨干区域的L1/L2路由器,
将自动生成默认路由指向此L1/L2路由器
- Overload:过载bit位
- P:为了解决不连续的骨干区域,华为不支持,无作用
注1:ATT bit置位有两个条件:① 必须有Level2的邻居;② 必须和Level2邻居处于不同区域
注2:在L1/L2路由器上敲[Huawei-isis-1]attached-bit advertise never命令之后不会在将ATT bit置1
注3:在L1路由器上敲[Huawei-isis-1]attached-bit avoid-learning命令之后不会在生成默认路由
(2)报文类型:
① Router-LSP:
每台路由器都会产生,用来描述字节接口的拓扑信息和网络信息,拓扑信息和网络信息使用TLV进行了分离,使用TLV分别描述,当网络信息变化时,发现拓扑TLV无变化,不会执行SPF算法,而是直接使用PRC重新计算路由即可
a) Source:发送者LSP-ID
b) NLPID:地址类型(IPV4或IPv6)
c) Area Address:所描述的本地接口IP地址
d) NBR ID:拓扑信息
e) IP-Internal:网络信息,链路网段信息
② DIS-LSP:
由DIS产生,只描述当前连接节点信息
① Source:发送者LSP-ID
② NLPID:地址类型(IPv4或IPv6)
③ NBR ID:连接IS-IS邻居信息
3. SNP-PDU:
用于维护LSDB的完整与同步,确认与维护,且为摘要信息。
分为两种类型:
(1)CSNP:
Complete Sequence Numbers Protocol Data Unit,全部序列号数据单元,用于数据库的同步,描述数据库LSDB中的所有LSP,包含地址范围,各LSP的简要信息,类似于OSPF的DD报文。
CSNP发布规则:
- 在MA网络中CSNP由DIS默认10S发送一次
- 在点到点串行链路上,只有第一次邻接时发送CSNP,如果路由器的LSDB非常大,将分成多个CSNP发送
CSNP发布类型:
- Level 1 CSNP: L1 Router/连接L1 Router的L1/L2 Router发送此类CSNP
- Level 2 CSNP: L2 Router/连接L2 Router的L1/L2 Router发送此类CSNP
CSNP报文:
CSNP使用头部的LSP id、Sequence Number、Remainning lifetime、LSP checksum来描述LSPS
① SYS id:发送者系统ID
② Sequece Number:序列号
③ checksum:校验和
④ remainning lifetime:剩余寿命
(2)PSNP:
Partial Sequence Number Protocol Data Unit,部分序列号协议数据单元,路由器用来请求自己LSPDB中所缺少的LSP报文和确认所收到的LSP报文的回复,类似于OSPF的Request请求报文和ACK报文。
CSNP使用头部的LSP id、Sequence Number、Remainning lifetime、LSP checksum来描述LSPs
PSNP发布类型:
- Level 1 PSNP: L1 Router/连接L1 Router的L1/L2 Router发送此类PSNP
- Level 2 PSNP: L2 Router/连接L2 Router的L1/L2 Router发送此类PSNP
PSNP作用:
- 在点到点链路上路由器用来相互交换作为ACK应答已确认收到某个LSP
- 用来请求发送最新的LSP,当路由器从近邻接收到CSNP时,注意到CSNP丢失了部分数据库(或自己的比较老),路由器发送PSNP请求新的LSP
六. IS-IS收敛过程:
1. 收敛要求:
IS-IS形成邻接关系需要以下条件:
① 同一层次(同为Level1或同为Level2)
② Lvel1必须同一区域ID
③ 同一网段(可以不为同一掩码),P2P除外[Huawei-Serial0/0/0]isis peer-ip-ignore)
④ 相同网络类型(都为点到点或都为MA)
⑤ Sys ID不一样
⑥ MTU大小一致
⑦ 认证相同
注:Cost-Style不一致不影响ISIS邻居关系的建立,但执行SPF计算时存在问题;Hold Time不影响邻居关系的建立,双方取最小值作为Hold Time,Hold Time÷3=Hello Interval,与本地Hello interval对比取最小值作为实际的Hello Interval。
详细内容:
- 两台L1路由器只有和他们的AID匹配时才能形成一个L1邻接关系
- 两台L2路由器及时他们的AID不同也能形成一个L2的邻接关系
- 一台L1路由器和一台L1/L2路由器只有在他们的AID匹配时才能形成一个L1邻接关系
- 一台L2路由器和一台L1/L2路由器及即使在他们不同的AID时也能形成L2邻接关系
- 如果两台L1/L2路由器的AID匹配,他们就可以同时形成L1和L2类型的邻接关系
- 如果两台L1/L2路由器的AID不匹配,他们就只能形成L2类型的邻接关系
注:接口发送的IIH的Level类型以全局Level为前提,如果全局Level为1或Level2,接口将发送全局的Level类型IIH报文,如果全局Level类型为Level-1-2,则根据接口类型的Level类型发送IIH报文
2. 收敛过程:
(1)邻居建立:
两端路由器在配置IS-IS路由协议后,会开始互相发送Hello数据包,经过三次Hello包建立邻居关系,这种模式为3Way模式,P2P网络可以使用命令改为2Way模式。
① 3Way过程:
3Way状态可靠邻居建立:
- P2P网络中如果在P2P Adjacency state的TLV中Neighbor System ID能看到自己的Sys ID,则进入UP状态
- MA网络中如果在IS Neighbor的TLV中看到自己的MAC地址,则进入UP状态
注:使用命令[Huawei-GigabitEthernet0/0/1]isis ppp-negotiation 3-way only强制接口类型为3-Way模式,如果检测到对方的IIH报文中没有Neighbor的TLV,则认为对方支持2-Way模式,将拒绝和对方建立邻居
a) 初始状态,两端都为Down
b) R1发送Hello包给R2,Hello包中包含自己Sys ID,并在P2P Adjacency state中标识与邻居的状态:
- Adjacency Start:Init
- Extended Local Circuit ID:本端的标识
- Neighbor System ID :为空(MA网络为 IS Neighbor)
- Neighbor Extended Local circuit ID:本端的标识
c) R2在收到R1发送的Hello包后,也发送Hello包给R1,包含自己的Sys ID,邻居列表(R1),状态为Init并在P2P Adjacency state中标识与邻居的状态:
- Adjacency Start:Init
- Extended Local Circuit ID:本端的标识
- Neighbor System ID :对端的标识
- Neighbor Extended Local circuit ID:本端的标识
d) R1在收到R2的Hello包后,发现邻居状态中存在自己的标识,将自己变为UP状态,并回复Hello报文
- Adjacency Start:UP
- Extended Local Circuit ID:本端的标识
- Neighbor System ID:对端的标识
- Neighbor Extended Local circuit ID:本端的标识
e) R2在收到R1的Hello包后,发现邻居状态中存在自己的标识,也将自己变为UP状态
② 2Way过程:
a) 两端状态为Down
b) R1发送Hello包给R2,包含自己的Sys ID,直接进入UP状态
c) R2发送Hello包给R1,包含自己的Sys ID,直接进入UP状态
注:P2P默认为3-way模式,并且可以兼容2-way模式,使用命令[Huawei-Serial0/0/0]isis ppp-negotiation 2-way only只能使用2-way模式
③ MTU隐式描述:
IS-IS建立邻居关系需要两端接口的MTU大小一致,但是IIH报文中并没有携带描述MTU大小的TLV
隐式描述行为:
a) 在Broadcast网络中,每次发送IIH报文的时候,IIH报文如果没有超出接口MTU,使用Padding填充到接口MTU大小,当对端收到数据包时,如果数据包的大小超出接口MTU,默认丢弃,此时IS-IS邻居建立不成功
b) 在P2P网络中,只有发送IIH报文建立邻居时,会将IIH填充到接口MTU的大小,邻居建立成功后,不会在填充padding
注:
使用命令[Huawei-GigabitEthernet0/0/0]isis small-hello不会填充Hello报文(初次也不会填充)
使用命令[Huawei-GigabitEthernet0/0/0] isis padding-hello发送的Hello报文每次都填充到接口
MTU
MTU值要求:
a) Broadcast环境两端MTU值必须大于等于1500,而且MTU值一致,才能建立邻居关系
b) P2P环境两端MTU值必须大于等于1497,而且两端MTU值一致,能建立邻居关系
(2)交互CSNP:
① 广播网络:
a) 在与所有的邻居UP之后,所有的路由器开始泛洪LSP
b) 其余路由器在收到LSP后,更新自己的 LSPDB
c) DIS会存在所有的LSP,并每隔10S周期Flooding CSNP
d) 当网络中的路由器收到CSNP后,查看自己的LSPDB,如果缺少LSP,会使用PSNP进行请求所缺少的LSP
e) DIS收到PSNP请求后,会将对应的LSP发送给邻居(广播类型无确认机制,DIS周期发送)
f) 如果路由器收到DIS发来的CSNP中缺少本地数据库中的LSP,直接Flooding DIS缺少的LSP
g) 当网络中出现新的路由器,与DIS交互LSP后,DIS会等待CSNP发送时间倒计时后进行发送,所有路由器收到CSNP,发送PSNP进行请求所缺少的LSP
② P2P网络:
a) 在两端关系UP之后,本端发送CSNP,使用LSP ID描述当前数据库中的LSP
b) 对端邻居收到CSNP后,查看自己的LSPDB,如果缺少LSP,会使用PSNP进行请求所缺少的LSP
c) 本端收到PSNP请求后,会将对应的LSP发送给邻居
d) 当对端邻居收到来自对端的CSNP确认消息后,进入Full状态
e) 此后的交互不会再有CSNP报文,而是两端邻居每隔15min交互一次LSP并使用PSNP进行确认
注1:由于P2P链路路由器不会周期的发送CSNP,所以如果一次请求失败,在15分钟内无法更新自己的LSP,所以为了确保对端已收到LSP,如果在5S内没有收到来自对端的PSNP确认,会再次发送LSP报文给对端
注2:实际过程中,两端设备直接将自己所有的LSP发送给对端,对端收到后使用PSNP进行确认,之后收敛后在发送一次CSNP再次进行确认,因为CSNP没有确认机制,所以直接发送LSP,使用CSNP进行两端的确认
(3)进行SPF计算:
① SPF计算:
ISIS的SPF计算接口开销默认都为10,不 考虑链路类型
② IS-IS收敛特性:
主要通过以下几种机制实现:
- SPF
- PEC
- 智能定时器
- SPF快速扩散
a) I-SPF:
Incremental SPF,增量最短路径优先算法,是指网络中节点发生变化时,针对网络拓扑改变所做出的行为。当网络初次收敛时,路由器会以自己为根,对全网信息使用SPF算法算出最优路径,当网络拓扑改变时,路由器会使用I-SPF算法只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快路由的计算。在ISIS中,由于IP与拓扑实现了分离,只有链路发生变化才会触发I-SPF的计算。
原理:
A会以自己为根使用SPF算法进行收敛,当网络稳定后,Root A使用I-SPF算法,此时网段中的4网段出现故障时,不会触发Root A的重新计算。
当网络中出现新的设备G,路由器D在网络中通告路由器G的路由信息,此时Root A使用I-SPF算法只对路由器G的路由网段进行计算,而不会全网重新计算。
b) PRC:
Partial Route Calculation,部分路由计算,是指当网络中路由发生变化的时候,只对发生变化的路由进行重新计算。在IS-IS中,由于每条路由前缀都是当前节点的叶子,所以路由前缀的变化值触发RPC的计算,相对于OSPF在Area内,路由前缀变化会使用ISPF而言,ISIS会更快收敛。
当网络中增加了一条路由条目,节点改变时,此时不会触发I-SPF算法重新进行SPT的计算,而是直接将此路由条目放到路由表中。
c) 智能定时器:
在进行SPF计算和产生LSP的时候用到的一种定时器,该定时器首次超时时间是一个固定的时间。如果在定时器超时前,又有触发定时器的时间发生,则该定时器下一次的超时时间会增加,智能定时器默认LSP间隔为2S,SPF计算默认为5S。
- 当R6发送了一条新的LSP给R7,如果网路出现变化,此时R6必须等待2S之后才能将新的LSP发送给R7,如果网络中不停的出现状态,此时R6会发送大量的LSP,造成网络瘫痪,此时使用智能定时器后,每次智能定时器时间内产生新的LSP,定时器数值都逐渐增大,减少LSP,防止网络瘫痪。
- 当R6发送了一条新的LSP给R7,R7会进行SPF计算,如果网路出现变化,R6重新发送LSP给R7,此时R7必须等待5S之后才弄能重新进行SPF计算,如果网络中不停的出现状态,此时R6会发送大量的LSP给R7,R7不停的进行SPF计算,为了防止R7频繁进行SPF计算出现宕机,此时可以使用智能计时器增大SPF计算时间,防止宕机发生。
智能定时器配置:
[Huawei-isis-1]timer lsp-generation 3 5 10---设置产生同一LSP间隔为3S,设
置初次产生LSP的延迟时间为5
毫秒,两次产生相同的LSP iD的LDP之间的递增时间为10毫秒
[Huawei-isis-1]timer lsp-max-age 3---设置产生LSP的最大老化时间500S,默认为20min
[Huawei-isis-1]timer lsp-refresh 400--设置LSP的刷新时间为400S,默认为15min
[Huawei]timer spf 10---修改SPF重新计算的时间间隔为10毫秒(默认为5S)
d) SPF快速扩散:
传统模式下,当IS-IS收到其他路由器发来的LSP时,如果此LSP比本地LSDB中相应的LSP更新,则更新LSDB中的LSP,并启用一个定时器定期将LSDB内已更新的LSP扩散出去。
LSP快速扩散模式中,使能了此特性的设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。
原理:
一般IS-IS都是采用周期性分批扩算LSP的方法(缺省情况下,接口上发送LSP报文的最小间隔为50毫秒,每次发送LSP报文的最大数目是10)。
使能flash-flood功能后,当LSP发生变化而导致SPF重新计算时,不在等待周期性分批扩散,而是导致SPF重新计算的LSP立即扩散出去,从而有效缩短拓扑变化时全网设备上LSDB不一致的时间,提高全网的快速收敛性能。虽然LSP数量很多,但每次网络出现故障而需要发生变化的LSP却很少,所以将这部分发生变化的LSP进行单独的快速扩散对系统的资源占用影响很有限。
使能LSP快速收敛命令:
[Huawei-isis-1]flash-flood
e) 按照优先级进行收敛:
IS-IS按优先级收敛是指在大量路由情况下,能够让某些特定的路由(例如指定IP前缀的路由)有限收敛的一种技术,因此用户可以把和关键业务相关的路由配置成相对较高的优先级,使这些路由更快的收敛,从而使关键的业务受到的影响减小。通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。
配置命令:
可以通过配置IP前缀列表或tag路由将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。IS-IS路由收敛优先级为critical>high>medium>low,只有本地有效。
[Huawei]ip ip-prefix 1 index 5 permit 192.168.1.0 24
[Huawei-isis-1]prefix-priority critical ip-prefix 1
七. IS-IS路由渗透:
IS-IS路由渗透是将Level-1-2路由器手动将Level2层次路由器渗透到Level1层次,可以避免Level-1路由器路由次优路由(ATTbit产生缺省;UP/DOWN bit预防环路)
1. L1区域次优路径:
如图在网络中R3和R4都为L1区域连接骨干区域的L1L2 Router,R1会根据cost值选择一条路径去往骨干区域,分别从R3,R4中选举出一条默认路由:
- R1去往R3的Cost为10
- R1去往R4的Cost为10+10=20
此时,R1会就近原则选择R3去往骨干区域。但此时R3连接骨干区域的Cost为50,而R4连接骨干区域的Cost为10。
- R1选择R3去往骨干区域的实际Cost为10+50=60
- R1选择R4去往骨干区域的实际Cost为10+10+10=30
此时,会存在次优路径的问题。
2. 路由渗透原理:
- 默认路由表查找规则为同协议中根据子网掩码长度比较,由于普通路由条目的子网掩码长于默认路由,所以优先选择普通条目匹配,被渗透进来的路由称为Leak路由并且IS-IS选路规则为L1>L2>Leak,并且L1/L2收到了down bit置位的LSP永远不会传递会L2区域。
- 在L1/L2 Router上将指定的L2目标地址引入到L1中,所以优先子网掩码大于默认路由的传统路由条目。
- 上图中在R4中将10.0.1.0/24路由条目引入到L1中,此路由条目会在L1区域中泛洪,
- 当R1收到10.0.1.0的路由条目后,放入路由表,访问10.0.1.0/24目标时,不在根据默认路由转发,解决了次优路径的问题。
注:和Level1区域路由转换为Level2区域路由一样,路由渗透是在配置了渗透命令的L1/L2路由器上将Level2路由引入到Level1区域,只有路由信息,没有拓扑信息,所以是矢量行为,当在L1/L2路由器上做了路由侧率,L1/L2路由器上有什么路由,区域1渗透就有哪些路由
3. 路由渗透配置:
在R4中将5.5.5.5/32的路由条目引入L1区域:
[Huawei]ip ip-prefix 1 index 5 permit 5.5.5.5 32
[Huawei-isis-1]import-route isis level-2 into level-1 filter-policy ip-prefix 1
R1查看路由表:
下一跳地址为192.168.2.2
R1 Tracert5.5.5.5:
4. 路由渗透环路:
IS-IS路由渗透会带来环路问题:
当L2的路由条目从一台L1/L2 Router进入L1区域,可能会从另一台与自己相连接的L1/L2 Router再次泛洪给自己,当链路出现故障时,由于收敛不及时,可能造成网络环路。
(1)解决方法:
在IS-IS路由渗透时,会将L2区域渗透到L1区域中的路由条目UP/DOWN bit置位,当一台L1/L2收到一条路由条目后,如果发现UP/DOWN bit被置位,不会将这条路由条目发送回L2区域。
八. IS-IS路由过载:
1. 路由过载原理:
IS-IS按照Cost选择路径,当去往R3所处网段的路由条目时,会选择R2进行转发,当R2由于设备性能不足无法转发R1的路由条目时,可以使用路由过载技术将Overload bit置位
R1不在将R2看作一个Tranter网络,而是看作一个Stub网络:
- R1在进行SPF计算时,不会在将R2作为一个网络节点,也就不会对R2进行SPF计算
- 将R2看作一个Stub节点,所有访问R2直连网段依旧走R2,防止了次优路径
2.路由过载配置:
路由过载有两种情况出现:
① 自动切换
② 手动配置
(1)自动切换:
当路由器设备异常可导致自动进入过载状态,例如内存不足
(2)手动配置:
默认R1去往R5的5.5.5.5/32走R4
在R4上配置路由过载:
[Huawei-isis-1]set-overload
九. IS-IS扩展特性:
1. IS-IS认证:
IS-IS支持邻居认证,支持明文认证和MD5认证,主要包括以下几种:
① 接口认证
② 区域认证
③ 路由认证
(1)接口认证:
只对Level-1和Level-2的Hello报文进行认证
接口下使用命令进行接口认证:
[Huawei-GigabitEthernet0/0/0]isis authentication-mode simple huawei
(2)区域认证:
对Level-1的SNP和LSP报文进行认证
接口下使用命令进行区域认证:
[Huawei-isis-1]area-authentication-mode simple huawei
(3)路由域认证:
对Level-2的SNP和LSP报文进行认证
接口下使用命令进行区域间认证:
[Huawei-isis-1]domain-authentication-mode simple Huawei
2. LSP分片:
LSP分片扩展,使IS-IS路由器生成更多的LSP分片,用来携带更多的IS-IS信息
IS-IS使用SYS ID+ Pseudonode ID+分片号用来标识唯一一条LDP,当存在大量的LSP,当LSP超出接口的MTU,会对LSP进行分片,分片分为两种模式,mode 1和mode 2
配置命令:
[Huawei-isis-1]lsp-fragments-extend level-1-2 mode-1
(1)mode 1:
Mode 1模式主要用于两台路由器,一台支持LSP分片,而另外一台不支持LSP分片
- 支持LSP分片的路由器将分片的LSP中唯一标识字段中的SYS ID设置为虚拟ID,传递给对端不支持分片的路由器
- 对端路由器收到多个不同SYS ID的LSP时,并不知道这是一个分片的LSP,而是在进行SPF计算时分别计算
(2)mode 2:
用于当前两台路由器都支持分片的情况下
- 当LSP的大小超出了接口的MTU,会将LSP进行分片传递给对方,并使用分片号标识此分片的LSP数据包
- 对端路由器收到分片的LSP,根据SYS ID和分片号重组LSP,进行LSP的计算
十. Metric类型:
在早期的ISO10589中,Type128TLV字段中使用4Byte表示Metric,共表示4种类型Metric值,但是只使用了default Metric,占用1Byte,所以共8个bit,其中第7bit用来区别度量时内部还是外部,第8bit保留,可用最大只有6bit,最大cost值为63。此时认为IS-IS开销值类型为narrow(默认类型)
在大型网络设计中,较小的度量范围不能满足实际需求。所以在RFC3784中规定,使用Type135TLV中所有4Byte表示Metric,所以IS-IS路由开销值可以的达到4261412864,此时的开销值类型为wide
注:在ISIS中,无论物理接口累型,所有的接口Cost都为10
1. Narrow:
早期开发,IS-IS支持内部开销和外部开销,所以定义了三种TLV来描述网络信息和开销值:
- 128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息
- 130号TLV(IP External Reachability TLV):用来描述域外的IS-IS路由信息
- 2号TLV(IS Neighbors TLV):用来携带邻居信息
开销值为1Byte,可用表示开销值为后6bit
- 第7bit表示为E/I,表示外部路由引入还是内部路由,如果置1表示为外部路由
- 第8bit表示U/D,默认为0(UP),表示才路由可以从L1区域传递到L2区域,如果位Down则无法在传回L2区域,用于防止路由渗透产生的路由环路
2. Wide:
如果接口类型为Wide,由于计算开销值方式不一样,如果自制系统内一台路由器配置cost方式为Wide,需要将其与所有的路由器的cost改为Wide,否则会造成路由无法传递的现象,Wide中的Metric有4bit的prefix用来标识引入rip路由的tag,所以在引入rip的时候如果需要保留标签需要使用wide模式。
定义了两种TLV用来描述网络信息和开销:
- 135号TLV(Extended IP Reachability TLV):用来替换来由的IP reachability TLV,携带路由信息,他扩展了路由开销值的范围,使用4Byte表示开销值,并可以携带sub TLV
- 22号TLV(IS Extended Neighbor TLV):用 来携带邻居信息
注:使用命令修改开销模式:[Huawei-isis-1]cost-style wide
十一. IS-IS标签管理:
ISIS路由条目支持Tag标记,支持两种Tag标记方式:
① 进程下标记Tag
② 接口下标记Tag
③ Import压入Tag
注:如果想让携带Tag的路由条目传递给其他路由器,需要将路由器的Cost方式改为Wid
1. 进程下标记Tag:
在路由器进程下标记Tag值,默认路由器会将所有开启IS-IS的接口网段全部压入Tag值宣告出去
配置命令:
[Huawei-isis-1]circuit default-tag 100
[Huawei-isis-1]cost-style wide
2. 接口下标记Tag:
对特定的接口网段压入Tag宣告出去,默认高于进程下标记Tag
配置命令:
[Huawei-GigabitEthernet0/0/0]isis tag-value 100----针对G0/0/0的IP路由压入tag100
[Huawei-isis-1]cost-style wide
3. Import压入Tag:
在引入路由时标记Tag
配置命令:
[Huawei-isis-1]import-route direct tag 100 level-1---默认引入为Level2,如果为Level1域,需要改为引入类别
[Huawei-isis-1]cost-style wide
十二. IS-IS/OSPF:
1.不同点:
需求 |
IS-IS |
OSPF |
支持的不同的协议类型 |
IS-IS协议直接在链路层上使用,报文直接封装在链路层报文中,支持IP、OSI CLNP多种协议 |
OSPF封装在IP中,只支持IP协议 |
LSP周期时间不同: |
IS-IS的LSP生存时间是从20min(可配置)往下计算到0来清除旧的LSP |
OSPF是从0往最大值涨到60min中(周 期不可配置)来清除更新就的LSA |
区域划分方式的不同: |
IS-IS协议中整个路由器只能全部属于一个区域,路由器的LSDB按Level来维护 |
OSPF协议中,一个路由器可以属于多个区域,每个接口可以属于一个区域,路由器为每个区域维护一个LSDB数据库 |
Broadcast网络Full关系 |
所有的路由器都形成UP关系 |
只有DR、BDR才和DR-other形成Full 关系 |
定义骨干区域的不同: |
对骨干区域而言,IS-IS时通过链路的L2路由器来组成骨干区域 |
OSPF通过特殊的Area0来定义骨干区 域 |
选举DR的不同: |
IS-IS协议中DR(DIS)选举比较简单,根据优先级和MAC地址进行选举,并默认抢占,不可更改,无BDR的概念 |
OSPF协议中DR选举比较复杂,根据优先级和Root ID进行选举,并且优先级高 一定成为DR,有BDR的概念 |
网络类型的不同: |
IS-IS只支持P2P和broadcast网络类型 |
OSPF可以很好的支持各种网络模型 |
MTU检测 |
将Hello报文使用垫片填充最大MTU |
在DD报文中显示MTU大小 |
验证 |
如果一端配置验证,一端没有配置验证,没有配置验证的设备收到带有验证TLV的Hello报文,由于无法识别认证TVL,所以会跳过,由于收到对端的Hello报文,所以将对端邻居设置为Init,对端收到没有配置认证的Hello报文,认为邻居不合法,不将其放入邻居表中 |
如果一端配置验证,一端没有配置验证, 两端都无法建立邻居 |
DIS、DR/BDR区别 |
默认抢占 |
默认不抢占 |
为0可以选举 |
为0不能选举 |
|
DIS默认为3S发送一次Hello报文,比其余路由器快 |
DR和DR-other发送Hello报文的时间一致 |
|
不需要备份 |
有备份DR |
|
数据库同步DIS只起到确认作用 |
数据库同步DR会中心节点,负责所 有LSA的接收与Flooding |
2. 相同点:
(1)都是基于链路状态数据库的协议,采用SPF算法,收敛快,无环路
(2)都是内部网关协议
(3)都利用Hello协议来形成和维护邻居关系
(4)都是利用区域形成两层的层次性拓扑,都有Area的概念
(5)都能在区域间聚合路由,都支持VLSN和CIDR,适合大型网络
(6)在广播网络上选举DR(DIS),且都产生LSA(LSP)来描述整个网段
(7)都有协议报文验证的能力
十三. 常见命令配置:
1. IS-name:
由于SysID比较难记,可以配置IS-name用于标识身份:
[Huawei-isis-1]is-name R1
2. 协议优先级:
IS-IS默认优先级为15,使用一下命令修改优先级:
[Huawei-isis-1]preference 100
3. Cost修改:
使用命令可以将接口cost进行修改,并制定修改类型为Level或Level2
[Huawei-GigabitEthernet0/0/0]isis cost 50 level-1
[Huawei-GigabitEthernet0/0/0]isis cost 50 level-2
4. 路由聚合:
路由聚合在区域间进行聚合,所以在L1/L2进行聚合,可以分为L1路由进入L2区域进行聚合;也可以在L2路由渗透到L1区域进行聚合。
注:由于IS-IS路由聚合后,自身不会产生Null口路由防止环路,所以需要使用命令增加
① L1路由进入L2区域进行聚合:
[Huawei-isis-1]summary 10.0.1.0 255.255.0.0 level-2(默认Level2)
[Huawei-isis-1]summary 10.0.1.0 255.255.0.0 generate_null0_route
注:后续参数加入avoid-feedback表示当再次接收到此条聚合LSP不在接收,防环聚合
路,由再次传递过来接收结算形成环路
② L2路由渗透到L1区域进行聚合:
[Huawei-isis-1]summary 10.0.1.0 255.255.0.0 level-1
[Huawei-isis-1]summary 10.0.1.0 255.255.0.0 generate_null0_route
③ 本地Level1 LSP路由进行聚合:
由于LSP拓扑与网络信息分离,所以可以在LSP生成的路由器对网络信息进行汇聚:
[Huawei-isis-1]summary 10.1.1.0 255.255.255.0 level-1 avoid-feedback generate_null0_route
5. 缺省路由:
[Huawei-isis-1]default-route-advertise always level-1
6. 外部路由引入:
ISIS中所有的任何的路由器都可以引入外部路由充当ABR,默认引入外部路由类型为Level2
[Huawei-isis-1]import-route static level-1
7. 路径权重修改:
当出现多条路径时,使用路由权重修改权重值,默认为255,数值越小路径越优先
[Huawei-isis-1]nexthop 192.168.1.1 weight 1
8. 打开ISIS实时log信息:
[Huawei-isis-1]log-peer-change