ISIS

一、基本概念

  • IS-IS链路状态路由协议,使用最短路径优先算法

  • IS-IS针对OSI 七层模型设计的;工作在链路层之上的网络协议;

  • 网络类型:广播网络、P2P网络

  • 报文类型:Hello PDU、LSP、SNP

  • DIS伪节点选举(只在广播型网络)

  • 网络划分:骨干区域和非骨干区域

  • 路由器分类:Level-1路由器、Level-2路由器、Level-1-2路由器

  • 由连续的L2和L1/2路由器组成的网络就是骨干网络;L1路由器组成的网络为非骨干网络

二、地址结构

  • NSAP:网络服务访问点,由IDP和DSP组成。结构如下:

  •  IDP:相当于IP地址中的主网络号,由ISO规定,并由AFI和IDI组成。AFI表示地址分配机构和地址格式;IDI用来标识域

  • DSP:相当于IP地址中的子网号和主机地址,由High Order DSP(分割域)、System ID(区分主机)和SEL(服务类型)组成。

  • NEL:网络实体名称;指的是设备本身的网络层信息,可以看作是一类特殊的NSAP

    • NEL的长度与NSAP相同;最多20字节,最小8字节;
    • ISIS配置的时候只考虑NEL地址即可,NSAP不必关注;SEL=00
    • NET地址最多配置三个,注意:必须保证system ID相同

 

三、路由器级别

  • Level-1:L1路由器普通区域;建立邻居时有区域概念,不同区域不能建立邻居关系

  • Level-2:L2路由器是骨干区域;与连续的L1/2路由器组成骨干区域;没有区域概念,只能与L2和L1/2建立邻居关系

  • Level-1/2:连接L1和L2之间的路由器,类似OSPF中的ABR路由器;即可以与L1建立邻居关系,也可以与L2建立邻居关系

    • 注意:L1/2路由器维护两张lsdb库,L1和L2是分开的;
    • 两台L1/2路由直连,同区域可以建立L1和L2邻居关系,不同区域只能建立L2的邻居关系

 

四、报文格式

1、hello IIH:用于建立和维持邻居关系

  • L1 LAN IIH:广播网络中L1邻居关系建立和维护

  • L2 LAN IIH:广播网络中L2邻居关系建立和维护

  • P2P IIH:非广播网络中使用

  • hello时间默认是10s,超时时间为3倍的hello时间

2、LSP PDU:链路状态报文

  • L1 LSP:由L1或者L1/2路由器产生;

  • L2 LSP:由L2或者L1/2路由器产生;

  • 非广播链路上统一使用组播MAC地址:0900-2B00-0005

3、SNP PDU:序列号PDU

  • CSNP:完全序列号PDU,用于发布完整链路状态数据库

    • L1 CSNP

    • L2 CSNP

    • 在广播网络里,由DIS没10s发送一次

    • 在P2P网络里,只发送一次

  • PSNP:部分序列号PDU,用于请求和确认链路状态信息

    • L1 PSNP
    • L2 PSNP

注意:

  • 广播链路上:

    • L1 采用目的组播地址:0180-C200-0014
    • L2 采用目的组播地址:0180-C200-0015
  • P2P链路上:新建邻居Hello报、发送LSP等都向组播地址发送

    • 统一采用目的组播地址:0900-2B00-0005

 

五、邻居建立

  • 邻居建立必要条件:路由器级别一致、L1的邻居区域号一致、互联地址必须在同一个网段、网络类型必须一致

  • 邻居状态:

    • down:没有收到邻居的hello包
    • init:收到邻居的hello包,但是没有发现自身的mac地址,称为one-way
    • up:收到含有自己接口mac地址的hello包
  • P2P网络:

    • P2P网络不选举DIS虚节点
    • 默认是三次握手机制,兼容两次握手机制
    • isis ppp-negotiation 3-way   P2P链路上默认是3次握手机制,兼容两次握手机制
    • isis ppp-negotiation 3-way only  只采用3次握手建立邻居,不兼容两次我周
    • isis ppp-negotiation 2-way 只采用两次握手建立邻居,忽略不处理p2p adj state tlv
  • 广播网络:

    • 选举DIS,每10s由DIS发送CSNP
    • 默认情况下L1和L2都发送hello报文
    • 采用三次握手机制,邻居建立完成后,两个hello time间隔选举DIS
    • 注意:邻居列表是用接口MAC地址来标识的
  • DIS选举

    • 只在广播链路上选举DIS,具有抢占性,DIS:发送hello时间为10/3的时间
    • 默认优先级为64,优先级越大越优,0代表优先级最小相同则比较接口MAC地址,越大越优
    • 优先级取值为1-127;大小为1字节,只用到7个bit,2个7次方就是127
    • DIS分级别:在L1/2路由器之间,L1邻居选举L1的DIS,L2邻居选举L2的DIS
    • DIS作用:保证全互联,每10s发送一次csnp(邻居之间是全互联状态)
    • DIS标识:systemID.00-0000:代表实节点,显示非0代表DIS     00:代表分片】

 

六、LSP

从报文角度分两种:L1 LSP和L2 LSP

从LSP的用途去看LSP分两种,实节点LSP和伪LSP

  • 实节点LSP相当于1类LSA,每台ISIS路由器都会产生用于描述自身直连的链路状态

  • ISIS通知实节点LSP描述P2P直连路由也描述广播型链路的直连路由伪节点相当于OSPF 2类LSA,广播型链路上有DIS产生,用于描述广播链路

  • ISIS的伪LSP携带的是纯拓扑信息,没有携带路由信息

  • LSP ID=system id+伪节点标识符-分片标识符

    • system id:标识产生该LSP路由器的system id
    • 伪节点标识符:如果等于0则表示LSP是实节点的LSP,如果非0则表示LSP是伪节点的LSP
    • 分片表示符:用于描述同一路由器产生不同的LSP

判断LSP新旧

  • 序列号越大越新

  • 如果序列号相同,则判断剩余时间是否等于0,等于0的认为是最新,同时等于0代表删除一条LSP

  • 如果都不等于0,则比较校验和越大越新,检验和相等则认为LSP一样

  • LSP:初始时间1200s,每隔15分钟即900s更新一次,seq+1

  • 重传时间:5s          老化时间:20分钟,还有60s的零老化时间

产生新的LSP的原因:

  • 邻居UP或者DOWN

  • ISIS相关接口UP或down

  • 引入的IP路由发生变化

  • 区域间的IP路由发生变化

  • 接口被赋予了新的metric值

  • 周期性更新

收到LSP处理过程:

  • 将接收的新LSP合入到自己的LSDB数据库中,并标记为flooding(泛洪)

  • 向加入isis进程的接口发送新的LSP(收到该LSP接口不发)

  • 邻居再扩散到邻居

P2P链路同步:

  • 采用目的组播地址为:0900-2B00-0005

  • P2P链路上PSNP两种作用:作为ack应答报文确认收到LSP   和   用来请求所需的LSP

  • 同步过程:
    • 两台路由器直连情况:A和B路由器先建立邻居关系
    • 建立邻居关系后A和B会先发送CSNP给对端设备,如果LSDB和CSNP没有同步,则发送PSNP请求索取缺少的LSP

    • 假设B向A发送PSNP请求缺少的LSP,A发送B请求的LSP同时启动LSP重传定时器,等待B回复PSNP应答

    • 如果重传定时器超时后还没有收到,则重新发送该LSP知道收到PSNP报文(重传时间为5s)

    • p2p链路PSNP两种作用:作为ACK的应答报文和用来请求所需的LSP

  • 更新过程:

    • 若收到一个LSP比自己本地序列号更小,则直接给对方发送自己的LSP,然后等待对方回复PSNP报文确认

    • 若收到一个LSP比自己本地序列号更大,则将更新到自己LSDB,回复一个PSNP报文确认
    • 若收到一个LSP和本地相同,通过新旧LSP判断,此处考查的如何判断一条新旧LSP

广播链路上同步:

  • L1 采用目的组播地址:0180-C200-0014

  • L2 采用目的组播地址:0180-C200-0015

  • 同步过程:

    • 新加入的路由器首先发送hello报文,与该广播域中的路由器建立邻居关系

    • 建立邻居关系后将自己的LSP发送组播地址(L1:0180-C200-0014     L2:0180-C200-0015)这样网络上所以邻居都收到该LSP

    • DIS会把收到的LSP加入到LSDB中,等到CSNP周期性泛洪时发送出去

    • 新加入的路由器收到DIS发来的CSNP报文时,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP
    • DIS收到PSNP报文请求后回复对应的LSP进行LSDB同步

    • 更新过程与P2P一致,只不过更新的时候由DIS接收并发送;

 

七、路由泄露

  • 连续的L2或者L1/2路由器组成的区域为骨干区域

  • L1和L1/2路由器组成的区域为非骨干区域

  • 默认L1/2路由器将L1区域的路由泄露到骨干区域

1、骨干区域如何访问非骨干区域?

  • L1/2路由器将L1的路由作为自身直连的叶子进行描述,并通过L2的LSP携带在骨干区域泛洪

2、非骨干区域如何访问骨干区域?

  • 默认情况下L1/2路由器不会将L2的路由转化成L1的LSP在非骨干区域泛洪

  • ISIS非骨干区域类似OSPF的完全stub区域,通过缺省路由访问骨干区域

3、非骨干区域缺省路由怎么计算?

  • 由L1/2路由器产生的L1的LSP中通过ATT bit来进行缺省路由的计算

  • @ATT(骨干区域连接符)用表明L1/2的路由器和骨干区域连接,ATT置1

  • @当L1/2的路由器至少有一个不在相同区域的L2的邻居时,ATT才会置1

  • ATT比特位只会在L1的LSP的置1

4、缺省路由计算

  • 该路由的下一跳为L1/2的路由器SPF树的下一跳

  • 该路由的开销为到L1/2的路由器的SPF树的开销

5、ATT bit控制

  • attached-bit advertise always 设置ATT bit总是置1;只能在L1/2设置

  • attached-bit advertise never  设置ATT bit总是置0;针对非骨干区域不产生默认路由;

  • attached-bit avoid-learning  设置L1路由器是否不进行缺省路由的计算;同一个区域如果存在多个L1/2路由器,彼此不进行缺省路由计算,防止路由环路。

6、通过缺省路由访问骨干区域存在什么问题?

  • 次优路由

  • 无法感知明细路由状态,存在或者失效都通过缺省路由访问业务,导致带宽浪费

  • 在MPLS网络中,明细路由缺失导致MPLS网络中LSP无法正常建立

7、如何优化?

  • 手动调整缺省路由的开销,通过修改链路开销实现

  • 通过路由泄露将骨干区域的路由泄露到非骨干区域,泄露到非骨干区域的L2路由DU(Distributionbit)置1,表明该路由来自非骨干区域

8、为什么泄露到非骨干区域DU置1?

  • 由于L1的路由会默认转化成L2的路由在骨干区域泛洪,为了防止L2的路由泄露到L1区域后再次传回到骨干区域,有环路风险,所以将路由DU置1

  • L1/2路由器不会将DU=1的L1路由再次传回到骨干区域

9、非骨干区域传到骨干区域的路由为什么不会置1?

  • L2的路由默认不会传到L1的路由区域,所所以不存在环路风险

如果管理员将L2的路由器泄露到L1的区域,那么默认传到L2区域的L1路由会再次传回L1区域吗?

  • 不会,L1的路由优于L2的路由

ISIS路由优先顺序:L1>L2>DU置1的L1路由

OL:过载比特位,通过set-overload命令设置,其他路由器不会再进行SPF算法不在沿着OL=1的路由器继续往下计算SPF树,OL的路由器作为树上的末端节点;

L1/2设置ol bit后将不在执行路由泄露功能,无论是否配置路由泄露

 

八、开销值

  • Narrow:窄度量值

    • 默认开销都是10;默认模式
    • 取值范围1~63
    • 只计算narrow的LSP路由,发送narrow的LSP;可以接收wide但是不会计算,会继续向邻居泛洪
  • wide:宽度量值如果两端模式不一样,不影响邻居关系建立,但是会影响部分路由计算不完整为什么要使用宽度量值风格,因为wide支持路由打TAG

    • 取值范围1~16777215
    • 可以接收narrow但是不计算,会继续泛洪
  • 注意使用时有参数,其中有兼容模式

 

九、LSP分片

  • 当IS-IS要发布链路状态数据报文PDU中的信息量太大时,会生成很多LSP分片用来携带ISIS的信息;

  • 在IS-IS中每个系统ID都标识一个系统,每个系统最多生成256个LSP分片,当256个分片不都使用时通过增加附加系统ID,最多配置50个虚拟系统,从而使IS-IS进程最多生成13056个LSP分片

  • 工作模式:

    • mode-1:用于网络中部分路由器不支持LSP分片扩展特性
    • mode-2:用于网络中所有路由器支持LSP分片扩展特性

 

十、主机映射

  • 主机映射就是把ISIS比较长的system id变成较短的内容

 

十一、路由汇总

  1. L1/2路由器执行汇总,但是只能对自身直连的路由汇总,无法对非直连路由做汇总

  2. L1/2路由上执行区域间路由汇总,类似OSPF的ABR(泄露同时可以针对泄露路由做汇总)

  3. 在ASBR上对引入的外部路由执行汇总

  4. 汇总路由继承明细路由cost值最小的

  5. 华为ISIS汇总路由的外部路由不用分片LSP描述,而是当成自身直连的路由进行描述

  6. 当所有明细路由失效汇总路由才会失效

  7. L1/2路由器引入外部路由由指定引入路由的级别,不受泄露机制的影响

  8. 在L1/2上以L1的路由引入外部路由时,DU bit置0

  9. summary 1.0.0.0 255.0.0.0 avoid-feedback generate_null0_route

    1. avoid-feedback:用于防环,不对聚合路由进行路由计算
    2. generate_null0_route:表示防止路由环路,从而生成null 0的路由

 

十二、认证

  • 接口认证:针对L1和L2 hello报文进行认证

  • 区域认证:针对L1的SNP和LSP报文进行认证(ISIS进程下:area-authentication-mode

  • 路由域认证:针对L2的SNP和LSP报文进行认证(ISIS进程下:domain-authentication-mode)

  • 对于区域和路由域认证可以设置为SNP和LSP分开认证
    • 本地发送LSP报文和SNP报文都携带TLV,收到LSP报文和SNP报文进行认证检查

    • 本地发送LSP报文和SNP报文携带TLV认证,对收到LSP报文认证检查,但不对收到SNP报文进行检查

    • 本地发送LSP报文和SNP报文携带TLV认证,对收到LSP报文和SNP报文都不进行认证检查

 

十三、优化

  • 链路故障,通过BFD实现毫秒级快速检测

  • I-SPF和PRC

  • LSP 生成智能定时器

    • 拓扑发生改变时会产生新的LSP通知全网,由于LSP机制可能无法及时通告给邻居。从而使网络收敛较慢
    • 根据路由信息变化的频率自动调整生成LSP的时间
    • 命令:time lsp-generation 参数
  • LSP 快速泛洪

    • 正常:收到LSP后加入到LSDB库里,等待周期性泛洪
    • 优化:收到LSP后,在路由计算之前先将小于指定数目的LSP扩散出去
    • 命令:timer spf 参数
  • SPF 算法智能定时器

    • 如果网络震荡频繁会不断产生新的LSP,从而引发路由器不算计算路由,导致消耗资源
    • 优化:根据网络震荡频繁次数,计算路由的次数会减少;
    • 命令:timer spf 参数
  • 按优先级收敛
  • 广播链路改成p2p

 

十四、TLV

  • IS-IS协议基于TLV机制来协议各项属性的

  • TLV机制运行路由协议只携带需要的TLV属性即可

  • 扩展性强,如果协议需要支持新的特性,则需要开发新的TLV属性即可

  • T:属性类型(固定类型)        L:长度        V:取值

  • BGP和思科eigrp也是基于TLV属性

  • 参考值:

 

十五、IPv6中的ISIS

  • 新增两个TLVIPv6 Reachability TLV和IPv6 interface Address TLV

  • IPv6 Reachability(IPv6可达性)TLV:


  • IPv6 interface Address(IPv6接口地址)TLV


  • 报文:

MT多拓扑协议

  • 开启多拓扑协议,IPv4和IPv6各自计算路由的根,不共有一棵树

  • ipv6 enable topology standard  默认模式

  • ipv6 enable topology ipv6  开启多拓扑

  • 新增四种TLV:

    • Multi-Topology Identifier:多拓扑标识符(229)
    • Multi-Topology Intermediate System:多拓扑中间系统(222)
    • Multi-Topology Reachable IPv4 Prefixes:多拓扑IPv4可达信息(235)
    • Multi-Topology Reachable IPv6 Prefixes:多拓扑IPv6可达信息(237)
posted @ 2021-09-09 17:49  大韩小白  阅读(1727)  评论(0)    收藏  举报