中文名称:中间系统到中间系统 ISIS是ISO定义的OSI协议栈中的CLNS(无连接网络服务),
不使用IP地址进行传输,仅封装在数据链路层。进行IP传输,采用TLV扩展内容传递。
ISIS是链路状态协议
ISIS的优点:
因为报文结构中存在TLV信息,可以更快的适应不同协议报文。
报文结构决定。
只有类似OSPF的1,2类。3457类都不存在。设备性能得到优化。
由CLNP定义的地址,是OSP协议栈中用于定位资源的地址,主要用于网络层和上层应用之间的接口。
NSAP由IDP+DSP组成
IDP:(Initial Domian Pat)相当于IP地址中的主网络号。它是由ISO规定,并由AFI (Authority and Formatldentifier)与IDI(initial Domain dentifier) 两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域
DSP:(Domian Specific Part) 相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机类似于OSPF中的Router ID,SEL (NSAP Selector) 用来指示服务类型(就是两个0)
缺点:nsap的安全性极低。通过IDP即可定位国家和机构(AFI表示国家,IDI表示一个机构)。
IDP长度可调,1-13个字节。
SystemID固定6字节
Sel固定两个0
NSAP 网络服务访问点 到OSI更名为 NET 网络实体名称
网络实体名称,主要用于路由协议由区域地址 Area ID和System ID组成,可以看作是特殊的NSAP (SEL为00的NSAP)
一台设备中System ID必须一致,因为SystemID类似于OSPF中的RouterID。用于标识路由器。
而AreaID可以不同区域。相当于OSPF中的区域1 2 3,一台设备最多可以属于三个区域。可以实现平滑变更区域。
NET把区域和routerID组合成一个信息了。所以一台设备多区域配置时,Area ID可以不同,但是System ID必须一致。
NET的长度与NSAP的相同,最长为20Byte,最短为8 Byte。
在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到Area ID以及System ID.
NET地址=Area ID+Router ID+00
最短NET地址:49.0000.0000.0001.00
最长NET地址:49.0000.0000.0001.0000.0000.0001.00
采用前置位+0扩充成3位后以四个数字隔开的方式。
举例:192.12.10.1为某一个设备的router ID,如何扩充成systemID?
答:192已经是3位了不扩充
12扩充为012
10扩充为010
1扩充为001
组合成192.012.010.001,再以4个数字为一组划分,最终得:1920.1201.0001,此数字为ISIS中的systemID。
1、L1的路由器,类似于OSPF的非骨干区域的IR 2、L2的路由器,类似于OSPF的骨干区域的IR 3、L12的路由器,类似于OSPF的ARB
ISIS的区域ID,只是表示物理区域的作用,并不代表区域是骨干和非骨干。 ISIS协议在逻辑上存在骨干区域和非骨干区域
由L1和L12建立的L1的邻居的链路组成非骨干区域 由L2和L12建立L2的邻居的链路组成骨干区域
L1的邻居要求区域ID要一致,L1的路由器只能建立L1的邻居 L2的邻居不要求区域ID一致,L2的路由器只能建立L2的邻居
L12和L1的路由器 建立L1的邻居,此时L12路由器需要和L1的路由器在同一个区域 L12和L2的路由器 建立L2的邻居,此时区域ID是否相同没有要求
L12和L12路由器 在区域ID相同的情况下 即建立L1邻居,又建立L2邻居 L12和L12路由器 在区域ID不相同的情况下,建立L2邻居
L2的区域 就是由L2的邻居之间组成,骨干区域 L1的区域 就是由L1的邻居之间组成,非骨干区域
广播 P2P
ISIS 两台路由器通过以太网连接 默认是广播型:可以改成P2P 通过PPP连接,默认是点到点
对于NBMA(非广播多路访问)网络,需对其配置子接口,并需要将子接口类型配置为P2P
ISIS在接口缺省情况下,并不与接口带宽相关。缺省情况下为10
IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是: 接口开销:为单个接口设置开销。(配置后最优为接口开销) 全局开销:为所有接口设置开销。(其次优为全局开销) 自动计算开销:根据接口带宽自动计算开销。(最次优) 项目使用wide宽的计算方式 开销值=参考带宽/实际带宽*10
除了wide或wide-compatible 以外其余开销模式开销值为下表确定
如果和一些其他协议配合使用 需要将模式改为宽!
ISIS报文直接封装在数据链路层帧中
ISIS的报文名称:协议数据单元(PDU)。PDU由“报文头(ISIS Header)”+“变长字段(TLV)”组成。
报文头部又可分为“通用头部”+“专用头部”
通用头部(PDU Common Header):每一个ISIS报文都会携带的信息字段。
专用头部(PDU specific Header):不同ISIS携带的专用头部信息不同。
Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。 Length Indicator:IS-IS头部的长度(包括通用头部和专用头部),以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的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。
1、IIH(IS-IS Hello) 2、LSP( Link State PDU,链路状态报文) 3、CSNP(Complete Sequence Number PDU,全序列号报文) 4、PSNP(Partial Sequence Number PDU,部分序列号报文)。
IIH:用于建立和维持邻接关系, 广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH; 广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH; 点到点网络中则使用P2P IIH。 LSP:用于交换链路状态信息。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。
IIH类似于OSPF Hello报文 LSP类似于OSPF LSA报文 (既是链路状态信息也是报文) OSPF中LSA(只是一条链路状态信息)是封装在LSU中 转发的并不是同一条 而ISIS中LSP就是一个报文 CSNP类似于OSPF DD报文 交互摘要 PSNP 类似于LSR LACK 把你请求的缺少的给你做确认
类似于OSPF中的HELLO报文。
L1的hello包建立和维护L1的邻居 L2的hello包建立和维护L2的邻居 P2P的hello包在P2P链路上建立和维护L1或L2的邻居 L12的路由器在广播型链路上和链路级别取交集,交集L1则发送L1的hello,交集L2则发送L2的hello,如果交集L12,即发L1也发L2
本地链路ID 只有点到点网络才有 设备对该接口的标识
P2P链路 默认每隔10s发送一次hello报文,失效时间是发送hello时间间隔3倍
广播型链路 DIS每隔3s发送一次hello报文,失效时间是10s 非DIS每隔10s发送一次hello报文,失效时间是发送hello时间间隔3倍
IIH的死亡时间是用于让对端邻居认为本端的失效时间
进入接口修改hello时间 isis timer hello 10 类型
默认改的全部L12 可单独修改 范围3-255
修改死亡时间 进入接口 isis timer holding-multiplier 倍数
Level-1报文的DMAC地址为:01-80-C2-00-00-14 Level-2报文的DMAC地址为:01-80-C2-00-00-15
所有ISIS报文都使用DMAC 09-00-2b-00-00-05
L1 LSP L1的邻居之间用于交换链路状态信息 L2 LSP L2的邻居之间用于交换链路状态信息
LSP报文传递内容不做修改,仅仅是修改发送主机的源ID。 LSP传递是逐跳进行。 LSP信息即是拓扑信息,也是路由信息。 LSP也采用组播形式发送。
Remaining Lifetime(holdtime):LSP的存活时间,倒计时,最大1200s,倒计时为0则该LSP老化删除,每隔15分钟周期更新自己产生的LSP。 LSP ID 用于唯一标识一条LSP:由三部分组成,System ID、伪节点ID和LSP分片后的编号。 ystem ID(产生LSP路由器的system ID)+伪节点ID (2字节,非0取值,如果伪节点ID为0则代表是实节点)+分片标识 Sequence Number:LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LSP Checksum : LSP的校验和 ATT(Attachment):骨干区域连接符,是L12路由器的专属功能,当L12路由器至少存在一个不同区域的L2的邻接时,将L1的LSP ATT位 置为1,让L1区域的生成默认路由到该L12路由器
seq num、checksum、holdtime 用于判断LSP的新旧,新的同步掉旧的LSP,+ LSP ID 这四个参数集合组成了LSP的摘要信息/头部信息 systerm id.Pseudonode ID-分片标识符 0000.0000.0001.00-00 system id 标识 LSP的产生路由器 pseudonode id 当伪节点ID为0时,则标识该LSP是实节点LSP,类似于ospf的一类LSA 当伪节点ID不为0时 ,则标识该LSP是伪节点LSP,类似于ospf的二类LSA
*分片标识符:当LSP携带信息过多,一条LSP无法加载完成,则需要多条LSP去携带,需要通过分片标识来进行区分
0000.0000.0001产生该LSP路由器的systemID 00代表伪节点标识符(实节点为00,一般用于P2P链路,非00代表了广播型链路中的伪节点) 尾部0X与(1)中星号共同代表分片,分片1分片2的区别。
seq num 越大越新,每隔15分钟周期更新自己产生的LSP或者链路状态发送变更时,触发更新seq+1,越大越新。从0x00000001开始,最大0xFFFFFFFF seq num 相同,比较剩余的存活时间,初始剩余存活时间1200S,倒计时方式,当倒计时为0,认为最新,删除这条LSP 如果剩余时间都不等于0,则比较checksum,越大越新,如果checksum相同,则认为是相同的LSP。
IS-IS路由区域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:
邻居Up或Down IS-IS相关接口Up或Down 区域间的路由发生变化 引入路由发生变化 接口开销值变化 周期性更新:每隔900s周期更新,剩余老化时间默认1200s
收到LSP后的处理过程
将新的LSP加入到自己的LSDB表中,并标记为flooding。
发送洗的LSP到除接收口外的其他接口。
邻居再以上述两种方式扩散给其他邻居。
类似于OSPF的DD+lsu和lsack报文。
广播链网络上:CSNP由DIS定期发送 默认为10秒 点到点网络上:CSNP只在第一次建立邻接关系时发送
Source ID:发出CSNP报文的路由器的system ID Start LSP:CSNP报文中第一个LSP的ID值 End LSP ID:CSNP报文中最后一个LSP的ID值
LSP ID 用于唯一标识一条LSP seq num、checksum、holdtime 用于判断LSP的新旧
只包含部分LSP的摘要信息(与CSNP不同):
当发现LSDB不同步时, 在广播网络中,PSNP来请求邻居发送新的LSP。不做确认 在点到的网络中,PSNP来请求邻居发送新的LSP,当收到LSP时,使用PSNP对收到的LSP进行确认
1、类似于OSPF中的LSR。 2、部分序列号PDU,传递自身部分LSP信息传递出去。是一条摘要信息。 3、CSNP互相传递,互相比对后,发现LSP信息不同步,此时缺少LSP信息的路由器会发送PSNP请求缺少的LSP信息。 4、P2P网络中,PSNP会做确认操作。 抓包中,CSNP同步LSP信息后,有一方设备发现缺少LSP,会发送PSNP进行请求。 LSP Sequence Number字段为全0时,代表PSNP包为请求包。 LSP Sequence Number字段为非全0,且从1开始排列。代表PSNP包为确认包。
5、广播型链路中,PSNP不做确认操作。 6、摘要信息依靠LSP-ID来标识一条唯一的LSP信息。 且描述LSP的一些简单信息
1、ISIS之所以在运营商网络中广泛使用,主要是因为存在TLV报文信息,也就是所谓的扩展信息。 2、ISIS本身不支持IP地址,但是现在广泛应用在TCP/IP协议中,正是因为TLV信息中扩展出了IP信息。 3、.ISIS的TLV信息在头部信息之下即可查询。 4、TLV在ISIS中定义了区域信息、邻居信息、IP信息、认证信息等所有信息。 5、TLV中TYPE字段代表的含义:
IS-IS按如下原则建立邻接关系:
只有同一层次的相邻路由器才有可能成为邻接。 对于Level-1路由器来说,Area ID必须一致。 链路两端IS-IS接口的网络类型必须一致。 链路两端IS-IS接口的地址必须处于同一网段(默认情况下)。
由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻接关系的形成与IP地址无关。但在实际的部署中,在IP网络上运行IS-IS时,需要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻接,不一定要主IP相同。
1、接口上的链路类型要一致。在ppp、HDLC链路类型只能是p2p,二层封装要一致。 2、在广播型链路上,链路类型也要一致 3、在链路上发送的hello级别也要一致 4、L1的邻居区域ID要一致,L2的邻居区域ID不同也可以建立 5、L12的路由器之间,区域ID相同的可同时建立L1和L2邻居,如果区域ID不同则只能建立L2的邻居 6、systemID每台设备要唯一
1、首先,两台路由器建立ISIS时,首先需要建立邻接关系,采用三次握手建立邻接关系。 2、ISIS建立邻接过程只有3个状态:down,init,up状态。 3、建立邻接过程: 初始状态下,一台R1设备向另一台设备发送IIH包,携带自己的systemID,区域ID,以及自己的邻居为null。 对端设备R2接收到此IIH包,状态修改为init状态。同时发送自己的IIH包,携带自己的systemID,区域ID,以及自己的邻居的MAC地址。 R1设备收到R2的IIH包后确认自己的IIH包已经完整发送给对方了。此时,R1再给R2发一个IIH包,再次发送携带自己systemID,区域ID,以及自己的邻居的MAC地址。 交互过后,双方同时进入up状态。
4、邻接关系建立完成后,选举DIS设备。路由器会等待两个HELLO报文时间,进行DIS 选举。
Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15 在以太网链路上,如果链路类型修改为P2P,则发送P2P的Hello包,无论是LSP/CSNP/PSNP还是L1/L2,都使用DMAC 09-00-2b-00-00-05
如果这台路由器连接着广播型链路 初始情况下就认为自己是DIS
1、首先P2P链路采用两次握手建立邻接关系。 2、两次握手,只要携带自己的信息,发送给对方,就可以建立邻居关系 3、两次握手建立邻接关系过程: R1发送IIH包给R2,R2收到状态转为UP。 R2发送IIH包给R1,R1收到状态转为UP。 4、由于两次握手存在巨大缺陷,双方可能因为种种原因导致协商不通过,所以会出现卡在init的情况,此现象叫做单向邻居。 6、华为设备在 P2P链路中依旧采用三次握手(向下兼容2次握手)。 注:不同的地方在于,华为的三次握手机制中,双方交互的其中一条信息。不是广播型链路中对方的MAC地址,而是对方的SystemID。 7、携带P2P Adjacency字段就证明采用3次握手机制(仅仅P2P链路中才有)。但是可以修改。建立邻居的握手情况分为3中情况。 2次握手:双方都是两次握手。配置仅2次握手模式,不会处理P2P Adjacency字段,也不会发送P2P Adjacency字段字段。 3次握手:双方都是3次握手,一定会发送P2P Adjacency字段。 3次握手向下兼容:一端配置3次握手,一端配置2次握手也可以建立邻居,会发送P2P Adjacency字段。如果接收HELLO包,有此字段,进行3次握手,没有次字段,进行2次握手。
IS-IS的LSP分为1类和2类LSP,与OSPF的1,2类LSA概念相同。 仅依靠伪节点标识符判断ISIS的1,2类LSP信息。 且,IS-IS只有1,2类LSP,没有其他LSP信息。 伪节点表示符00时,此LSP信息代表1类LSP。 伪节点标识符非00时,此LSP信息代表2类LSP。 只有广播型链路中才存在2类LSP信息。 P2P不存在2类LSP。
1类LSP信息中包含拓扑信息和路由信息。以便计算路由。 若1类LSP信息中的拓扑信息存在伪节点标识符非全0的信息时,此条LSP为2类LSP信息。
2类LSP只有拓扑信息,无路由信息 出现2类LSP必然存在伪节点,必然是广播型链路 2类LSP由DIS的SYSTEM-ID代替,且伪节点标识符不为全0
DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。
当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。
同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。
1、先比较DIS优先级,默认64,越大越优,取值范围0-127,0的优先级也能参与IDS选举 2、优先级相同则比较接口的MAC地址,最大的成为DIS 3、广播型链路上所有路由器,都建立邻接关系 4、DIS具有抢夺性 5、DIS在每条广播型链路上有且只有一个 7、L1和L2的DIS是分别选举的,可以为不同级别的IDS选举设置不同的优先级 8、DIS和非DIS,非DIS和非DIS都建立邻居关系
手动设置优先级
进入接口 isis dis-priority 127 级别
查询LSP信息时,LSP-ID中如图所示位置,代表了伪节点标识符。
伪节点依据DIS表示,一般广播型ISIS链路中,DIS的systemID+非0伪节点标识符组成伪节点LSP-ID。
前置条件:
已经正产工作的ISIS环境中,新加入了一台ISIS路由器XXX。 新设备已经完成三次握手。 DIS并没有变更。
开始LSDB同步过程: 新加入的ISIS路由器XXX,等待LSP定时器超时,开始向外发送自身LSP信息(采用组播mac地址发送,保证广播域内所有的ISIS路由器都可以接收我发送的LSP信息) 广播域中的DIS收到XXX设备的LSP信息后,并不会做确认机制,而是等待自身CSNP定时器时间老化(10S)后,对整个广播域泛洪CSNP。 XXX在收到DIS发送的PSNP信息后开始与自身LSDB比对,发现缺少某些LSP。开始对DIS发送PSNP,请求缺少LSP。 DIS收到XXX设备发送的PSNP请求后,给XXX路由器发送LSP信息。以便同步。 广播域内其他设备由于XXX设备的加入,也会缺少XXX的LSP信息,虽然会将LSP信息加入自己的路由表,但是不其他广播域传递,其他设备只会通过DIS的CSNP信息向DIS发送PSNP信息请求XXX的LSP信息。
广播型链路中,LSDB同步依靠DIS进行,DIS发送CSNP信息泛洪全网通告本广播域内ISIS的LSDB信息。(广播网络CSNP报文只由DIS组播发送)
两台设备建立邻接关系 互相发送CSNP信息,若发现LSDB不同步,直接发送PSNP请求 双方再发送LSP信息 完成同步
P2P仅仅只会在第一次建立邻接关系后发送一次CSNP。
由于P2P的PSNP存在确认机制,所以当LSP发送后对方没有回复PSNP确认报文,就会每隔5S发送一次LSP,直到收到确认PSNP信息位置。
邻居Up或Down IS-IS相关接口Up或Down 引入的IP路由发生变化 区域间的IP路由发生变化 接口被赋了新的metric值 周期性更新
1、新增路由器和DIS一旦建立邻居,会互相发送自身LSDB的LSP。 2、非DIS路由器会和新增路由器建立邻居关系,但不会向新增的路由器发送自身LSDB中的LSP,避免重复发送LSP。 3、非DIS路由器接收到新增路由器的LSP后,如果是新的LSP,添加到自身的LSDB中,不会发送PSNP确认此LSP,并向其他链路上邻居泛洪这些LSP。 4、新增路由器收到DIS的CSNP后,根据比较自身的LSDB,发送相应的PSNP,DIS接收此PSNP后,发送相应的LSP,新增路由器接收后,添加自身的LSDB,不会发送PSNP确认这些LSP,同步过程结束。 5、DIS每10s周期发送CSNP,维护此广播型网络上的路由器的LSDB同步。
若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。
若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到的LSP报文的Remaining Lifetime为0,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到的LSP报文的Remaining Lifetime不为0而本地LSP报文的Remaining Lifetime为0,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
若收到的LSP和本地LSP的序列号相同且Remaining Lifetime都不为0,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该报文。
随便找一台设备,查询ISIS的LSDB表,并以此为根开始计算。 由于1类LSP包含拓扑和路由信息,且伪节点标识符表明链路是P2P还是广播型链路。 以上图为例,我们已知该ISIS网络中,完成LSDB同步,共计7条LSP。 所以我们可以进行1类LSP详细信息查询。
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000007 0x683d 856 97 0/0/0
SOURCE 0000.0000.0001.00 产生该LSP路由器的system ID,实节点的LSP
NLPID IPV4 描述IPV4的网络链路状态
AREA ADDR 49.0001 路由器所属的区域ID
INTF ADDR 13.1.1.1 启用ISIS协议的接口IP地址
INTF ADDR 12.1.1.1 启用ISIS协议的接口IP地址
INTF ADDR 1.1.1.1 启用ISIS协议的接口IP地址
NBR ID 0000.0000.0002.00 COST: 10 描述点到点链路上的邻居以及去往该邻居的开销值(.00伪节点标识符)
NBR ID 0000.0000.0003.00 COST: 10 拓扑信息
IP-Internal 13.1.1.0 255.255.255.0 COST: 10 描述自身直连的网络/掩码
IP-Internal 12.1.1.0 255.255.255.0 COST: 10
IP-Internal 1.1.1.1 255.255.255.255 COST: 0 路由信息
由于简要LSP信息我们得知,登录的AR1设备的system ID为0001,以我自己为根查询到的LSP信息,我们可以分析出AR1连接着两台设备,AR2和AR3,且链路类型为P2P。同时,我们可以得知与其接口相连的路由信息。 接下来我们要通过查询NBR ID字段提供的信息,利用dis lsdb NBR ID verbose查询邻居的LSP信息。查询AR2和AR3的。
通过查询AR2我们得知,AR2除了连接刚才查询的AR1还有一个AR4,且AR4的伪节点标识符非0。证明AR2与AR4采用广播型链路连接。且与AR4的互联地址段在100.1.1.0,子网掩码24. 通过查询AR3我们得到与上图一样的LSP信息。证明AR2/AR3/AR4处于一个广播型链路。 接下来我们需要通过查询2类LSP信息完善此广播型链路中的拓扑和路由信息。
通过查询2类LPS信息我们得知,伪节点相连的的确是AR2/AR3/AR4设备,且由于2类LSP的SYSTEM ID是AR4的systemID,所以我们得知此广播型链路中,AR4为DIS。
ISIS中同区域路由计算,由1类LSP进行自我宣告,自己宣告自己的网段,无论是p2p还是广播型链路。都会在1类LSP的IP-Internal字段中进行宣告, 由于ISIS的特殊性,若互联接口不属于同一个网段,也可以建立邻居,但是在路由表中,会新增一条不同网段的路由信息。
多区域路由计算,首先明确两个概念
1、L1路由器中只有L1的LSP信息,L2路由器只有L2的LSP信息。区域不同,LSP信息不同步。
L1-L2设备,会把非骨干区域的LSP信息,变成骨干区域的路由信息,通过骨干区域的LSP信息传递进骨干区域内。
非骨干区域的设备无法得知骨干区域路由,仅仅通过默认路由传递给与之相连的L1-L2设备中,才可以进行路由传递。
L1-L2设备必须有L2设备作为邻居,且L2设备存在不同区域时,L1-L2设备会将L1的LSP中ATT位 置位为1,并且给非骨干区域生成一条默认路由。
若ATT置位不为1时,无法形成默认路由。
L1路由器 只通过L1的LSP对加入进程的接口进行描述自身的链路状态 L2路由器 只通过L2的LSP对加入进程的接口进行描述自身的链路状态 L12路由器,对于直连的L2链路 只通过L2 LSP来描述自身链路 L12路由器,对于直连的L1和L12的链路 既通过L1 LSP来描述自身链路状态,也通过L2 LSP来描述自身链路状态
L12路由器将L1的路由作为自身直连的叶子路由信息,在L2的LSP中进行描述,并且在L2的区域进行泛洪
L12路由器默认不会将L2的路由作为自身直连的叶子信息在L1的LSP中描述,所以L1的区域默认无法计算区域间的明细路由
通过L12路由器产生的L1的LSP的ATT位 置1时,会计算一条到达L12路由器的缺省路由用于访问外部网络。
非骨干区域通过缺省路由访问其他区域的网络,ISIS L1的区域天生就是一个类似OSPF的完全NSSA区域
ATTbit:骨干区域连接符,是L12路由器的专属功能,当L12路由器LSDB表中至少存在一个不同区域的L2 的LSP时(能收到不同区域的L2 LSP),才将L1的LSP ATT位 置为1
存在次优路径的问题
由于非骨干区域路由器是采用默认路由与L1-L2设备进行交互的,若一台非骨干ISIS设备连接两台L1-L2的ISIS设备时,需要访问骨干区域或者通过骨干区域访问其他非骨干区域路由时,对于非骨干区域的设备来说,两条默认路由都属于等价路由,就会出现次优路径的问题。 解决办法,将L2的路由渗透到L1中
解决办法,将L2的路由渗透到L1中。
L12路由器不会根据同区域的其他L12路由器的ATT位生成缺省路由
L1区域的路由默认渗透到L2的区域路由
进入isis进程 import-route isis level-2 into level-1
将L2区域的路由渗透到L1的区域
已经渗透了 就不需要默认路由了
L12路由器上:
对ATT bit总是置0 attached-bit advertise never
通知L1不生成缺省路由
对ATT bit总是置1 attached-bit advertise always
通知L1生成缺省路由
L1路由器上:
不根据ATT置1 进行计算缺省路由 attached-bit avoid-learning
(ATT 置1 也不计算缺省路由)
DU bit标识是否属于泄露路由
L1路由优于L2路由优于DUbit置1的路由 只要路由器能从L1中学到路由,就不会从L2中计算路由,防止重新渗透形成环路。无论是L1-L2路由器还是L1路由器,都需要服从此条规则。
L12级别路由器不会把渗透进L1的路由重新传入骨干区域。 当我们在L12路由器查询L1的LSP表中,我们可以查询到渗透到非骨干区域的路由,但是后方携带由“*”(DU位)标识符,此处的*标识符代表了此路由是被渗透进来的。是属于L2的LSDB,不会再被L12当做L1的路由传出去。
渗透的路由优先级最低 当同区域有多台L12路由器连接同一骨干区域,且配置了路由渗透,此时,L12路由器访问L2的路由时,不会采用渗透进来的路由器计算路由。 如果L12路由器与骨干区域断线,此时才会计算渗透路由,经过非骨干区域从另一台L12设备进入骨干区域
总结:
如果路由器的类型是L1的路由器,他只维护自身所在的非骨干区域的L1的LSP,并且会对L1和L12,加入进程的直连链路生成L1的LSP 如果路由器的类型是L2的路由器,他只维护自身所在的骨干区域的L2的LSP,并且会对L2和L12,加入进程的直连链路生成L2的LSP
如果路由器的类型是L12的路由器,既维护L1的LSP又维护L2的LSP,两个LSDB之间互不干扰。如果相连的接口链接L2的邻居,只会生成L2的LSP如果相连的设备属于L12/L1的路由器,他既会产生L1的LSP也会产生L2的LSP。
特殊场景:L12路由器,AR2和AR3如果在骨干区域形成了邻居关系,但是没有其他任何L2的邻居时,ATT位不置位为1,因为置位为1的话,没有指导报文访问骨干区域的意义。
L12的路由器在L2的LSDB中,至少存在一条其他区域的LSP。此时ATT位才会置位为1,如果L1、L12、L2的路由器都在同一个区域时,L12路由器不会产生ATT位置位为1的LSP
引入时默认是级别L2 开销默认是64
接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。 区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。 路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。
Hello报文使用的认证密码保存在接口下,发送带认证TLV的认证报文,互相连接的路由器接口必须配置相同的口令。
假设有俩台路由器R1、R2 如果R1配置了接口认证 那么他发送的Hello报文有TLV认证字段,R2没有配置接口认证,不会查看TLV,此时查看邻居表,和R1卡在intlit状态,R1接收到R2的hello报发现没有认证字段TLV,不会跟R2建立邻居。 如果R1配置了send-only 那么R1、R2可以建立邻居
区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的密钥。
假设有俩台路由器R1、R2 如果R1配置了区域认证 那么他发送的CSNP、PSNP和LSP报文有TLV认证字段,R2没有配置接口认证,不会查看TLV,此时查看邻居表,和R1在UP状态但是数据报文无法交互,R1接收到R2的CSNP、PSNP和LSP报文发现没有认证字段TLV,不会跟R2正常交互数据 如果R1配置了send-only 那么R1、R2可以正常交互数据
IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证,并使用共同的密钥。 对于区域和路由域认证,可以设置为SNP和LSP分开认证。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低。 MD5认证:通过将配置的密码进行MD5算法加密之后再加入报文中,提高密码的安全性。 Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。 HMAC-SHA256认证:通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中,提高密码的安全性。
ISIS区域认证只要在一台设备上做认证,必须在所有设备上做认证,原包泛洪 携带认证接收的也要认证。
OSPF 认证 收了解封 重新封
send-only可以修改认证而不会造成网络震荡
查看接口详细配置 dis isis int g0/0/0 v
查看错误日志 dis isis error interface g0/0/0
查看lsdb详细详细 dis isis lsdb 0000.0000.0001.00-01 verbose
进入进程 isis 1
缺省为1
设置区域及本机标识 network-entity 49.0001.0000.0000.0001.00
设置级别 is-level level-2
默认为L12
去接口启用isis
int g0/0/0
启动ISIS进程1 isis enable 1
当L12路由器接口链路中只有L2的路由器他任然会发L1的IIH可以关闭发送L1的IIH
进入接口 int g0/0/0
只发L2的IIH isis circuit-level level-2
在纯P2P的链路下,正常情况下也要双方检查是否处于同一个网段,输入peer ip-ig
不在同一个网段也可以建立邻居
修改网络类型 进入接口 isis circuit-type
恢复默认的网络类型undo即可
L1区域的路由默认渗透到L2的区域路由
进入isis进程 import-route isis level-2 into level-1
将L2区域的路由渗透到L1的区域
已经渗透了 就不需要默认路由了
L12路由器上:
对ATT bit总是置0 attached-bit advertise never
叫L1不生成缺省路由
对ATT bit总是置1 attached-bit advertise always
叫L1生成缺省路由
L1路由器上:
不根据ATT置1 进行计算缺省路由 attached-bit avoid-learning
(ATT 置1 也不计算缺省路由)
isis ppp-negotiation 2-way
仅采用2次握手建立邻居关系 自身发送的hello包中 不携带Point-to-point Adjacency State 也不处理该TLV
isis ppp-negotiation 3-way
采用3次握手建立邻居关系 向下兼容可和2次握手建立邻居关系 收到hello包中携带Point-to-point Adjacency State 则进行3次握手,没有携带进行2次握手
isis ppp-negotiation 3-way
仅采用3次握手建立邻居关系 收到和发送的hello报文中必须携带 Point-to-point Adjacency State
手动设置优先级
进入接口 isis dis-priority 127 级别
接口开销
int g0/0/0
isis cost 30
改的是L1和L2的开销
isis cost 50 level-1
修改级别1的开销值
全局开销
进入进程 isis 1
circuit-cost 40
改的是L1和L2的开销
circuit-cost 40 level-1
修改级别1的开销值
自动计算接口开销
进入进程 isis 1
bandwidth-reference 50000
默认是100Mbit/s
auto-cost enable
启动自动计算开销
cost-style 参数
修改开销模式 工作中项目使用wide宽的计算方式(只有宽模式才携带TAGTLV ) 开销值=参考带宽/实际带宽*10
除了wide或wide-compatible 以外其余开销模式的开销值为下表确定
修改hello时间 进入接口 isis timer hello 10 类型
默认改的全部 范围3-255
修改死亡时间 进入接口 isis timer holding-multiplier 倍数
修改P2P链路 建立邻接 是2次握手 还是3次握手 华为默认是3次
进入接口 isis ppp-negotiation 3-way
发送hello时携带p2p adj tlv 接收hello时,处理p2p adj tlv 如果没有则采用2次握手
isis ppp-negotiation 2-way
发送hello时不携带p2p adj tlv 接收hello时,不处理p2p adj tlv
isis ppp-negotiation 3-way only
发送hello时携带p2p adj tlv 接收hello时,处理p2p adj tlv 如果没有则不建立
[Huawei-GigabitEthernet0/0/0] isis authentication-mode [keychain | md5 | simple ] [ level-1 | level-2 ] [ ip | osi ] [ send-only ]
level-1 指定设置Level-1级别的认证;level-2 指定设置Level-2级别的认证; send-only 指定只对发送的Hello报文加载认证信息,不对接收的Hello报文进行认证。
[Huawei-isis-1] area-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only ]
authentication-avoid 指定不对产生的SNP封装认证信息,也不检查收到的SNP,只对产生的LSP封装认证信息,并检查收到的LSP; send-only 指定对产生的LSP和SNP封装认证信息,只检查收到的LSP,不检查收到的SNP; all-send-only 指定对产生的LSP和SNP封装认证信息,不检查收到的LSP和SNP。
[Huawei-isis-1] domain-authentication-mode { { simple | md5 } { plain plain-text | [ cipher ] plain-cipher-text } keychain keychain-name | hmac-sha256 key-id key-id } [ snp-packet { authentication-avoid | send-only } | all-send-only ]
authentication-avoid 指定不对产生的SNP封装认证信息,也不检查收到的SNP,只对产生的LSP封装认证信息,并检查收到的LSP; send-only 指定对产生的LSP和SNP封装认证信息,只检查收到的LSP,不检查收到的SNP; all-send-only 指定对产生的LSP和SNP封装认证信息,不检查收到的LSP和SNP。
area-authentication-mode md5 plain 123456 区域认证,接收的报文也要携带认证TLV area-authentication-mode md5 plain 123456 all-send-only 代表发送LSP、CSNP、PSNP携带TLV,接收的报文忽略认证TLV area-authentication-mode md5 123456 snp-packet send-only 代表发送LSP携带认证TLV,接收的CSNP、PSNP报文忽略认证TLV,对SNP报文要进行认证 area-authentication-mode md5 123456 snp-packet authentication-avoid 代表发送SNP携带认证TLV,接收的LSP报文忽略认证TLV,对接收到的SNP报文忽略认证TLV