IGP协议-ISIS

ISIS邻接关系的建立

ISIS的邻居状态机:只有down、init、up三种状态

广播网

  • 在广播网络上,使用LAN IIH报文来建立邻接关系。有两种类型的LAN IIH:L1 LAN IIH(组播MAC:01-80-C2-00-00-14)和L2 LAN IIH (组播MAC:01-80-C2-00-00-15) 。
  • Level-1路由器通过交互L1 LAN IIH报文来建立邻接关系;Level-2路由器通过交互L2 LAN IIH报文来建立邻接关系;Level-1-2路由器会同时交互L1 LAN IIH报文和L2 LAN IIH报文来建立邻接关系。
    广播邻接关系建立
    以两台L2路由器在广播链路上建立邻居关系为例:
  1. R1组播发送Level-2 LAN IIH(组播MAC:01-80-C2-00-00-15),此报文中无邻居标识。
  2. R2收到此报文后,将自己和R1的邻居状态标识为Initial。然后,R2再组播向R1回复Level-2 LAN IIH,此报文中标识R1为R2的邻居(6号TLV,通过R1的接口MAC地址进行标识)。
  3. R1收到此报文后,将自己与R2的邻居状态标识为Up。然后R1再组播向R2发送一个标识R2为R1邻居的Level-2 LAN IIH。
  4. R2收到此报文后,将自己与R1的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。
    因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS,若优先级相同,接口MAC地址较大的被选举为DIS

报文细节

报文细节

P2P

在P2P连路上,邻接关系建立不同于广播链路,分为两次握手机制和三次握手机制(默认)
P2P邻接关系建立

  1. 两次握手2-way(容易存在单通的风险,即链路两端分别为Up和Down)
    只要路由器收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系
  2. 三次握手3-way(默认方式)
    通过三次发送P2P的Hello PDU最终建立邻居关系,类似广播邻居关系建立
    240号TLV包含:邻居状态、接口ID、system-id和自己的接口ID

3-way报文

增加P2P邻接TLV,类型为240,长度为15B,其中电路ID用于标识接口(广播网络使用MAC地址来标识接口),而system-id用于标识节点
3-way报文

ISIS的LSP交互过程

广播网络

LSP交互不需要确认,CSNP和PSNP中是LSP的摘要信息
CSNP报文在广播网络中的作用:确认机制,相当于ACK
PSNP报文在广播网络中的作用:请求(LSR)
广播网络LSP交互过程

  1. 新加入的路由器R3已经与R2(DIS)、R1建立邻居关系
  2. R3使用组播地址发送自己的LSP
  3. R2收到R3的LSP之后,会将R3的LSP内容加入LSDB中,并等待CSNP报文定时器超时(10s)并发送CSNP报文,进行该网络的LSDB同步
  4. R3收到DIS发来的CSNP后,对比自己的LSDB,然后向R2发送PSNP用来请求自己没有的LSP如果R3发现CSNP中缺少自己的LSP的内容,即DIS没有收到自己的LSP,R3会再次组播发送自己的LSP(通过该机制保证广播网中LSP的可靠性)
  5. R2收到R3发来的PSNP之后,将R3请求的LSP用组播方式发送给R3R3发送PSNP之后如果没有收到LSP,R3会在5秒后重新发送该PSNP

P2P网络

LSP交互需要确认
PSNP报文在P2P网络中的作用:作为ACK应答以确认收到的LSP,用来请求所需的LSP
在P2P链路上,CSNP只会发送一次
P2P网络LSP交互过程
理论步骤:

  1. 建立邻接关系之后首先都发送一个CSNP,通告本地的LSDP摘要信息
  2. 两端设备接收到CSNP之后和本地LSDB做比较,发送PSNP请求自己缺少的LSP
  3. 收到对方的PSNP之后回复具体的LSP
  4. 收到对方发来的LSP之后,需要再回复一个PSNP进行确认
    实际抓包过程:第一阶段R1和R2各发一个LSP;第二阶段R1和R2各发送一个PSNP;第三阶段R1发送LSP,R2发送CSNP进行确认

ISIS的SSN和SRM标志

SSN/SRM标志在发送、接收LSP的接口下配置,只具有本地意义,用于LSP完整性、可靠性保证,虽然两种网络中都存在,但是只有在P2P网络中才有意义

P2P

SSN标志:用于P2P链路接收方,在收到一个LSP时设置,在完成PSNP确认时清除(即发送了用于确认该LSP的PSNP后删除
SRM标志:用于P2P链路发送方,在发送一个LSP时设置,在收到其PSNP确认时清除

广播

SSN标志:用于broadcast链路数据库同步过程中,请求完整的LSP。
SRM标志:用于broadcast链路发送方,在发送一个LSP时设置,但在LSP传送出去后被立即清除,因为broadcast链路不需要PSNP确认。

路由渗透(路由泄漏)

简而言之,路由渗透解决非骨干区域访问骨干区域时,因为不知道明细路由而导致的次优路径问题
Level-1的路由通过Level-1-2传递进Level-2,但是Level-2的路由并不会传递进Level-1。因此,Level-1-2和Level-2路由器知道整个IS-IS路由域的路由信息。但是,为了有效减小路由表的规模,在缺省情况下,Level-1-2路由器并不将自己知道的其他Level-1区域以及骨干区域的路由信息通报给它所在的Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,可能导致与本区域之外的目的地址通信时无法选择最佳的路由。
关联ISIS选路原则
路由渗透
未配置ISIS的路由渗透之前
R1不知道本区域外部的任何路由,那么发往区域外的报文会选择最近的Level-1-2路由器(即R3)产生的默认路由发送出去,所以R1会选择次优路径(R1--R3--R5--R6),但是流量返回的路径是R6--R5--R4--R2--R1,同时还造成往返路径不一致,如果存在防火墙,会导致流量不通的问题

产生ATT置位的LSP(Level-1的默认路由)的条件

ISIS中的ABR(Level-1-2)生成默认路由(ATT=1)的条件:一边为Level-1,另外一边为Level-2

  1. 设备运行级别为Level-1-2
  2. 在Level-2的区域中有一个活动的邻接关系
  3. Level-2的区域ID不能和Level-1的区域ID相同即Level-1-2设备的区域ID和Level-1相同,和Level-2不同

关于第3点的理解:
区域的“不同”的准确含义是“包含”,即level-1-2设备的area如果包含了level-2邻居的area那么不置位,不包含则置位(默认可以配置3个NET地址,即3个area)
通俗的理解:level-1-2设备认为level-1可以通过level-2到达更多区域才会将ATT置位,其中area信息通过报文中tlv0交互

路由泄漏之后防环

level-1-2的路由器在向level-1泄露路由时,这些level-2的LSP会将UP/DOWN置位,当这些泄露的路由再次想传入level-2时,level-1-2的路由器不会再向level-2的路由器传这些泄露的LSP。

三个重要比特位
P(PRTtition):分区位。仅与Level-2的LSP有关(即只在Level-2区域才会被置位),表示路由器是否支持自动修复区域分割。(用于虚链路,但是目前并没有用过)
ATT(Attach):连接位。由Level-1-2路由器产生,但仅与Level-1的LSP有关(即只在Level-1区域才会被置位,使Level-1路由器产生指向Level-1-2路由器的默认路由),表示产生此LSP的路由器(Level-1-2路由器)与多个区域相连接
OL(Overload):过载标志位。表示本路由器因内存不足而导致LSDB不完整。其它路由器在得知这一信息后,就不会再利用这台路由器转发需要经过它传送的数据流,但到此路由器直连地址的报文仍然可以被转发(一般用于承载BGP的核心ISIS,即isis over bgp)

利用OL过载位的场景

利用OL过载位的场景
  1. R5、R6之间建立EBGP邻居关系,R6与R3、R2、R4之间通过lo0分别建立IBGP邻居关系,lo0互通是通过isis协议。R2的lo0访问R5的lo0,下一跳选择R3,因为R3的cost更小。
  2. 假设R3和R6之间的链路断开,则R3不再通告R6的路由条目,R2会将下一跳切换到R4。
  3. 如果此时R3与R6之间的链路恢复,isis邻居已经建立,但是IBGP邻居还未建立(IBGP邻居建立依赖于IGP),此时R3会向R2通告R6的路由。如果R2此时切换到R3,R3与R6之间的IBGP邻居还未建立,可能造成丢包。为了避免这种场景,需要用到isis over bgp,即R3再通告LSP时,首先会查看BGP邻居状态,如果BGP邻居未建立,则将该LSP的OL位置位,那么R2收到此OL位置位的LSP,则进行SPF计算时不考虑此条LSP。

ISIS选路原则

Level-1>Level-2>leaked(注意内部优先级)

  1. Level-1:先查看是否和目标在同一区域,若在通过Level -1路由访问,若不在则使用缺省默认路由通过最近的Level-1-2路由器访问
  2. Level-2路由器访问某个目标时,直接通过Level-2数据库访问
  3. Level-1-2路由器访问目标时,先查看是否和目标在同一区域,若在同一区域通过Level-1路由访问,若不在同一区域通过Level-2数据库访问

ISIS收敛特性

和OSPF收敛特性基本相同,但是RPC对ISIS的支持优于对OSPF的支持,因为ISIS的路由均是通过TLV进行传递的,但是OSPF传递路由的有1、3、5、7类LSA,RPC不支持1类LSA

  1. 快速收敛
    1. 增量最短路径优先算法ISPF:只对受影响的节点进行路由计算,仅第一次计算全部节点
    2. 部分路由计算PRC:PRC的原理和ISPF相同,都是只对发生变化的路由进行重新计算。
    3. 智能定时器
    4. LSP快速扩散:接口上发送LSP报文的最小间隔为50毫秒,每次发送LSP报文的最大数目是10
      LSP默认发送间隔为900秒,老化时间(剩余老化时间)为1200秒,如果LSP剩余时间变为0,还需要在等待60S(零老化时间)才会从LSDB中删除。ospf和isis均不能删除不是自身产生的路由,即不能删除不是自己产生的LSA或者LSP。但是isis如果收到的lsp是有问题的,是可以删除的,删除时间为1260秒,这点和ospf不同
  2. 按优先级收敛

度量值

1. Narrow模式

设备默认模式开销都是10,手工配置接口开销取值范围为1-63

  • 2号TLV(IS Neighbors TLV),IS可达性TLV,用来携带邻居信息,通告节点
  • 128号TLV(IP Internal Reachability TLV),IP内部可达性TLV,用来携带路由域内的IS-IS路由信息,通告内部路由
  • 130号TLV(IP External Reachability TLV),IP外部可达性TLV,用来携带路由域外的IS-IS路由信息,通告外部路由

4种度量值

每个度量1个字节,经常用的是默认度量,而延迟度量、开销度量、差错度量主要用在QOS路由选择中

  1. 默认度量:跟接口带宽成反比,参考带宽/带宽=cost (默认情况下,所有路由器都必须支持这个默认度量)
    1. 7bit:up/downup为1,用于防环Level-1-2的路由器不会将来自Level-2的路由发布进Level-1。如果将Level-2的路由泄漏进Level-1,那么up/down会置1,up/down置位的Level-1的LSP不会再被通告进Level-2
    2. 6bit:内部度量/外部度量外部度量为1 (默认是内部度量)
    3. 5bit~0bit(6bit) :用于表示度量值, 即最大为为63。接口下配置的最大度量值为63,转发路径上累加度量值不能超过1024,否则不参与计算
  2. 延迟度量:用来表示链路传输的延迟
  3. 开销度量:用来表示链路传输的开销
  4. 差错度量:用来表示链路传输的错误
    4种度量值

2. Wide模式

设备默认开销模式都是10,手工配置接口开销取值范围为1-16777215
OSPF与ISIS协议都被扩展以便携带MPLS TE接口参数,对于ISIS协议来说,使用以下两种新的TLV:

  • 22号TLV(IS Extended Neighbors TLV),扩展IS可达性TLV,用来携带邻居信息
  • 135号TLV(Extended IP Reachability TLV),扩展IP可达性TLV,用来替换原有的IP reachability TLV,携带ISIS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV
    接收和发送的类型详细列表
    使用宽度量的场景:
  1. 最大63的度量值已经不能满足要求
  2. 配置需要支持IPv6
  3. 外部路由需要携带tag(管理标记),tag也是包含在度量值中的
    管理标记:管理标记特性允许在IS-IS域中通过管理标记对IP地址前缀进行控制,可以简化管理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的IS-IS多实例

auto-cost
华为独有的计算cost值的方式,根据带宽自动计算接口开销,参数compatible表示使能根据带宽自动计算接口开销的兼容模式
如果在接口和isis进行下都没有配置开销值,则此接口的开销由系统自动计算

  1. 当开销类型为wide或wide-compatible时接口的开销值= (参考带宽/接口带宽值)×10
    配置auto-cost enable compatible命令后:接口的开销值= 参考带宽/接口带宽值
  2. 当开销类型为narrow、narrow-compatible或compatible时,不同带宽开销值如下:10M以内60,100M以内50,155M以内40,622M以内30,2.5G以内20,大于2.5G为10

ISIS认证

分类

  1. 接口认证
    对Level-1和Level-2的Hello报文进行认证
    针对Hello报文做的认证,会影响ISIS邻居,也会影响路由
    有以下两种设置
    1. 发送带认证TLV的认证报文,本地对收到的报文也进行认证检查
    2. 发送带认证TLV的认证报文,但是本地对收到的报文不进行认证检查
  2. 区域认证
    对Level-1的SNP和LSP报文进行认证
    针对Level-1的SNP和LSP做的认证,不会影响ISIS邻居,但是会影响Level-1的LSDB的同步,仅影响Level-1的路由,不会影响Level-2的路由
  3. 路由域认证
    对Level-2的SNP和LSP报文进行认证
    针对Level-2的LSP和SNP的认证,不会影响ISIS邻居,但是会影响Level-2的LSDB的同步,仅影响Level-2的路由,不影响Level-1的路由
    可以设置为SNP和LSP分开认证:
    1. 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查
    2. 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查
    3. 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查
    4. 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查

报文认证方式

  1. 明文认证
  2. MD5认证
  3. Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性

认证信息的携带形式

ISIS通过TLV的形式携带认证信息,认证TLV的类型为10,具体格式如下:

  • Type:ISO定义认证报文的类型值为10,长度为1字节
  • Length:指定认证TLV值的长度,长度1字节
  • Value:指定认证的具体内容,其中包括了认证的类型和认证的密码,长度为1~254字节,其中认证的类型为1字节,具体定义如下:
    • 0:保留的类型
    • 1:明文认证
    • 54:MD5认证
    • 255:路由域私有认证方式

LSP

ISIS的LSDB更新过程

  1. DIS接收到LSP,在数据库中搜索对应的记录,若没有该LSP,则将其加入数据库,并广播新数据库内容
  2. 序列号越大越优:若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容;若收到的LSP序列号小本地LSP的序列号,就向入接口发送本地LSP报文
  3. RemainingLifetime剩余生存时间越小越优:若两个序列号相等,则比较RemainingLifetime。若收到的LSP的RemainingLifetime小于本地LSP的Remaining Lifetime,就替换为新报文,并广播新数据库内容;若收到的LSP的Remaining Lifetime大于本地LSP的Remaining Lifetime,就向入端接口发送本地LSP报文。
  4. Checksum越大越优:若两个序列号和RemainingLifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并广播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
  5. 若两个序列号、Remaining Lifetime和Checksum都相等,则不转发该报文

LSP产生的原因

  1. 邻居Up或Down
  2. ISIS相关接口Up或Down
  3. 引入的IP路由发生变化
  4. 区域间的IP路由发生变化
  5. 接口被赋了新的metric值
  6. 周期性更新

收到邻居新的LSP的处理过程

  1. 将接收的新的LSP合入到自己的LSDB数据库中,并标记为flooding
  2. 发送新的LSP到除了收到该LSP的接口之外的接口
  3. 邻居再扩散到其他邻居

LSP ID

LSP ID

LSP分片

当ISIS要发布的链路状态协议数据报文PDU中的信息量太大时,IS-S路由器将会生成多个LSP分片,用来携带更多的ISIS信息
ISIS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。因此,一个IS-IS进程最多可产生256个LSP分片(最多携带路由3万左右),携带的信息量有限。IS-IS可以配置虚拟的SystemID (最多可配置50个,即isis进程最多可生成51*256个LSP分片),并生成虚拟IS-IS的LSP报文来携带路由等信息。
为什么需要分片?因为isis不是通过IP承载的,是通过链路层承载的,链路层本身不具备分片的能力,只能依靠isis自身实现
如果LSP分片之后,没有收到分片序列号为0的LSP,那么后续的LSP将全部丢弃,因为00分片中包含该LSP的头部信息

工作模式

LSP分片工作模式
  1. Mode-1
    用于网络中的部分路由器不支持LSP分片扩展特性的情况
    RouterB是不支持分片扩展的路由器,RouterA1和RouterA2是RouterA的虚拟系统,RouterB认为对端有三台独立的路由器,并进行正常的路由计算。同时RouterA到RouterA1和RouterA2的开销都是0
  2. Mode-2
    用于网络中所有路由器都支持LSP分片扩展特性的情况
    RouterB通过IS Alias ID TLV24号TLV,用来表示初始系统与虚拟系统的关系知道他们的初始系统是RouterA,则把RouterA1,RouterA2所发布的信息都视为RouterA的信息

路由算法

设备默认接口开销值都是10

SPF计算过程

  1. 单区域LSDB同步完成
  2. 生成全网拓扑结构图
  3. 以本节点为根生成最短路径树
  4. 默认跨越每个节点的开销一样

ISIS的计算特点

  1. 在本区域收到的LSP更新,如果是部分拓扑的变化执行的SSPF内路由器第一次启动的时候执行的是Full-SPF算法
  2. 如果只是路由信息的变法,执行的是PRC算法
  3. 由于采用拓扑与网络分离的算法,路由收敛速度得到了加强

路由聚合

summary ip-address mask [ avoid-feedback | generate_null0_route | tag tag-value | [ level-1 | level-2 | level-1-2 ] ]

  • avoid-feedback
    避免从另外一个level学到自己发布的聚合路由。
    如果另外一个level中有与summary地址相同的学习路由,则认为该路由是其他路由器学到了本地路由器发布的summary路由后,渗透到另外一个level并发布的。此时avoid-feedback产生作用,该路由变为inactive,从RM路由表中删除。
  • generate_null0_route
    指定生成Null 0路由,以防止路由循环。
  • tag
    指定发布路由的管理标签号
  • level-1、level-2、level-1-2
    对指定区域的路由进行聚合。如果配置时没有指定Level,缺省为Level-2

补充

ISIS地址结构

NSAP

NSAP是OSI协议中用于定位资源的地址,相当于OSI的网络层协议CLNP的地址(类似IP地址的概念
IDP和DSP组成,IDP和DSP的长度都是可变的,NSAP总长度最多是20字节,最少是8字节

  • IDP相当于IP地址中的主网络号,是由ISO规定的,由AFI的IDI两部分组成
    • AFI表示地址分配机构和地址格式(长度固定为1B)
    • IDI用来标识域
  • DSP相当于IP地址中的子网号和主机地址,由HighOrderDSP、SystemID、SEL三部分
    • HighOrderDSP用来分割区域
    • SystemID用来区分区域
    • SEL用来指示服务类型

AreaAddress(AreaID)由IDP和DSP中的HighOrderDSP组成,既能够标识路由域,也能够标识路由域中的区域,它们一起被称为区域地址类似OSPF中的区域编号AreaID同一Level1区域内的所有路由器必须具有相同的区域地址,Level2区域内的路由器可以具有不同的区域地址

  • SystemID用来在区域内唯一标识主机或路由器,在设备的实现中,它的长度固定为48bit(6字节),一般情况先,使用设备的RouterID转换为SystemID
  • SEL的作用类似于IP中的“协议标识符”,不同的传输协议对应不同的SEL,在IP上SEL均为00,长度固定为1B(8bit)

NET

NET是一类特殊的NSAP(SEL=00),在路由器上配置ISIS时,只需要考虑NET即可

  • 网络实体名称NET指的是设备本身的网络层的意思,可以看做是一类特殊的NSAP(SEL=00),NET的长度与NSAP相同,最多为20字节,最少为8字节,在路由器上配置ISIS时,只需要考虑NET即可,NSAP不必去关注
  • 在配置ISIS过程中,NET最多只能配置3个,在配置多个NET时,必须保证他们的SystemID都相同
    没有NET地址ISIS无法运行,该地址包含了区域ID和系统ID,而他本质上是一个ISO地址,最后的SEL等同于TCP的端口号,永远等于00
TCP/IP协议栈 IP协议 IP地址 OSPF AreaID+RouterID
OSI系统 CLNP协议 NSAP地址 ISIS NET标识符

ISIS地址结构
最短长度8B:1B的AFI + 6B的SystemID + 1B的SEL
ISIS地址例子
用ISIS做网络设计需要注意:保证L2路由器连续

关于SystemID

  • 一个中间系统(路由器)至少有一个NET,华为设备最多支持3个
  • 同一个Area的中间系统必须有相同的AreaID(Level1必须一样,Level2可以不一样)
  • 每个中间系统在一个Area中必须有一个唯一的SystemID
  • 一个domain中的两个Level2中间系统不能有相同的SystemID
  • NSAP至少为8字节,最多为20个字节
  • 对于传统IP应用程序而言,1字节定义AFI(标识二进制DSP语法的地址域),最少2字节定义实际区域信息(IDI+HighOrder+DSP),6字节定义系统ID和1字节的NSEL,故NSAP地址最少为10字节

ISIS整体拓扑

ISIS整体拓扑
Level-1路由器部署在非骨干区域Level-2路由器和Level-1-2(类似ABR,ISIS默认设置)路由器部署在骨干区域每一个非骨干区域都通过Level-1-2路由器与骨干区域相连

  • 在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域OSPF基于接口,即一个设备上的多个接口可以属于不同的Area;ISIS基于设备,即一个设备只能属于一个Level
  • 在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域
  • 在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

ISIS路由器分类

Level-1路由器

  1. Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系
  2. Level-1路由器只负责维护Level-1的LSDB,该LSDB包含本区域的路由信息
  3. 到本区域外的报文转发给最近的Level-1-2路由器
  4. Level-1路由器必须通过Level-1-2路由器才能连接至其他区域

Level-1区域建立的条件

  1. 要求Area号必须一致
  2. Level-1路由器可以和Level-1、Level-1-2路由器建立Level-1的邻居

Level-2路由器

  1. Level-2路由器负责区域间的路由,可以和同一或者不同区域的Level-2或Level-1-2路由器形成邻居关系
  2. Level-2路由器维护一个Level-2的LSDB,该LSDB包含ISIS区域内的所有路由信息
  3. 所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信,路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性

Level-2区域建立的条件

  1. Area号可以不一致
  2. Level-2路由器可以和Level-2、Level-1-2路由器建立Level-2的邻居

Level-1-2路由器(默认)

  1. 同时属于Level-1和Level-2的路由器
  2. 可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以和其他区域的Level-2和Level-1-2路由器形成Level-2邻居关系
  3. Level-1路由器必须通过Level-1-2路由器才能连接至其他区域
  4. Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由
    既有Level-1又有Level-2的情况下,Level-1-2必须和Level-1的AreaID保持一致,否则无法建立邻居,导致无法进行通信

Level-1-2路由器之间建立什么样的邻居?
区域号不同:一个,Level-2区域
区域号相同:两个,Level-1区域和Level-2区域

ISIS术语

术语对照表
  • IIH,hello时间10秒,hold时间30秒
  • LSP相当于LSU,那么TLV相当于LSA
  • ISIS只支持P2P和广播网络,PSNP分为两种报文,一种是请求LSP(类似LSR,可用于p2p和广播),一种是确认LSP(类似LSAck,只用于p2p

ISIS报文类型

ISIS的9种报文
ISIS的9种报文
其他常见TLVhttps://www.cnblogs.com/cyrusxx/p/12615744.html
ISIS报文类型-2

1. Hello PDU(IIH)(hello报文)

用于邻居发现,协商参数并建立邻居关系,后期充当保活报文。ISIS目前只支持点到点和广播两种网络类型。
在广播网络中,ISIS通过MAC地址来标识邻居(OSPF是通过RID来标识的);在P2P中,是通过系统ID来标识邻居的,通过电路ID来标识自己的哪个接口与对端相连。
广播网中的Level-1 IS-IS使用Level-1 LAN IIH,Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。
它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。
LSDB-DIS

Level-1 LAN IIH

组播MAC01-80-c2-00-00-14
L1和L2的帧格式

Level-2 LAN IIH

组播MAC01-80-c2-00-00-15

P2P IIH

简而言之:将多字节的Priority和LAN ID替换成1字节的Local Circuit ID
非广播网络中则使用P2P IIH,但是其没有表示DIS(虚节点)的相关字段
P2P的帧格式

2. LSP PDU(链路状态报文)

用于交换链路状态信息,相当于OSPF的LSU
Level–1 LSP由Level-1路由器传送,Level–2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP
Level-1 LSP和Level-2 LSP具有相同的报文结构
LSP PDU

  • ATT:区域关联位
    当L1区域中的路由设备收到Level-1-2路由设备发送的ATT位被置位的L1 LSP后,它将创建一条指向Level-1-2路由设备的缺省路由。
    虽然ATT位同时在L1 LSP和L2 LSP中进行了定义,但是它只会在L1 LSP中被置位,并且只有L1/2路由设备会设置这个字段。
  • OL:过载标志位
    设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载设备的路由时不会被采用,即对设备设置过载位后,其它设备在进行SPF计算时不会使用这台设备做转发只计算该节点上的直连路由
  • IS Type:生成LSP的IS-IS类型
    用来指明是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)

3. SNP PDU(序列号报文)

用于维护LSDB的完整与同步,且为摘要信息

CSNP(全序列号报文)

类似于OSPF的DBD信息,用来同步LSDB,DIS定期泛洪CSNP(10秒)
分为Level-1 CSNP和Level-2 CSNP
CSNP

  • Source ID:发出CSNP报文的设备的System ID
  • Start LSP ID:CSNP报文中第一个LSP的ID值
  • End LSP ID:CSNP报文中最后一个LSP的ID值

PSNP(部分序列号报文)

在广播网络中,类似于OSPF的LSR;在P2P网络中,类似于OSPF的LSR和LSAck。非DIS设备向DIS发送PSNP,用于请求非DIS设备上缺少的LSDB中的详细路由信息
分为Level-1 PSNP和Level-2 PSNP
PSNP

ISIS网络类型

ISIS支持的网络类型

  • P2P,例如PPP和HDLC不选举DIS
  • 广播
    • DIS:指定中间系统,为了在广播网络中实现更高效的数据库同步
    • 伪节点:用来模拟广播网络的一个虚拟节点,并非真实的路由设备,用DIS的System ID和一个字节的Circuit ID(非0值)标识。使用伪节点可以简化网络拓扑,使路由设备产生的LSP长度较小。
      伪节点

DIS

在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS,Level-1和Level-2的DIS是分别选举的
可以为不同级别的DIS选举设置不同的优先级,优先级为0的路由器也参与DIS的选举,只是具有最小可能成为DIS,且DIS选举支持抢占
同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系,但LSDB的同步仍然依靠DIS来保证
DIS用来创建和更新伪节点,并负责生成伪节点的链路状态协议数据单元LSP,用来描述这个网络上有哪些网络设备
IS-IS中DIS发送Hello时间间隔为10/3秒,而其他非DIS路由器发送Hello间隔为10秒,ISIS的LSP的更新时间为900秒,Hold time时间为1200秒,是从大往小减的
ISIS系统中没有DIS也能完成数据库同步

为什么DIS不需要备份的DIS?

  1. DIS支持抢占
  2. DIS发送Hello消息的时间为10/3秒,可以让ISIS快速发现DIS失效,重新选举DIS
  3. ISIS主要用在运营商网络中,而运营商网络一般很少会更换设备,所以影响不大

为什么在ISIS中DIS可以被抢占?

  1. 在ISIS中所有的设备都可以建立邻接关系
  2. ISIS主要用在运营商网络中,而运营商网络一般很少会更换设备,所以影响不大

DIS的选举

  1. 优先级越大越优,默认优先级为64,取值范围(0-127)
  2. MAC地址越大越优

追问

影响ISIS邻居建立的条件

建立邻居关系原则:同一层次(级别)、同一区域(只有L1会做严格检查)、同一网段、同一网络类型

1. 运行级别和区域ID

区域ID只影响Level-1邻居的建立,Level-1只能和同一区域的Level-1或Level-1-2建立Level-1级别的邻居

  1. level1-level2:无法建立
  2. level1-level1:level1
  3. level1-level1/2:level1
  4. level2-level1/2:level2
  5. levle2-level/2:level2
  6. level1/2- level1/2:
    1. 区域号相同level1和level2
    2. 区域号不同则只有Level2关系

2. System-ID

system-id标识一台路由器,具有唯一性,默认是6个字节,如果system-id长度不一致或者直连设备的system-id冲突则无法建立邻居

3. 认证

接口认证是对Level-1和Level-2的Hello报文的认证,区域认证是对Level-1的SNP和LSP的认证,路由域认证是对Level-2的SNP和LSP的认证,对于区域和路由域的认证可以设置为SNP和LSP分别认证。认证方式分为明文认证、MD5认证和keychian认证。
接口认证不一致影响邻居的建立,区域认证和路由域认证不一致可以正常建立邻居,但是无法正常同步LSDB

4. MTU

ISIS中存在隐式的MTU检测机制,通过IIH报文,P2P为1500,广播网为1497,少的那3字节的原因如下:
ISIS通过802.3承载,3字节用于802.2头部(即LLC,包含DSAP、SSAP和Control三部分),标识上层协议。
广播网络中所有的Hello报文都会使用Padding填充,但是P2P只有在建立邻居时的Hello报文才会被填充,其他的Hello报文不会被填充。

5. 接口的网络类型

P2P和广播网络无法建立邻居,因为这两种网络类型建立邻居所需的TLV不同,P2P的3次握手模式使用240号TLV,而广播网络使用6号TLV。但是可以通过将以太网接口模拟成P2P接口,建立P2P链路邻居关系。

6. IP地址不在同一个网段

默认开启源检查,只影响广播网
ISIS邻居关系的形成与IP地址无关,但在IP网络上运行ISIS协议,要检查设备两端的IP地址。如果设备接口配置了辅用IP地址,那么只要双方有某个IP地址(主用IP地址或者辅用IP地址)在同一网段,就能建立邻居,不要求设备两端的主用IP地址相同。
Hello报文不携带掩码,只携带IP,路由器用收到的IP与本地接口的掩码进行与运算,必须处于同一个网段,如192.168.1.1/24和192.168.1.200/25之间建立邻居,结果.1侧显示对端为init状态,.200侧显示无邻居。
当链路两端ISIS接口的地址不在同一网段时,如果配置接口对接收的Hello报文不作IP地址检查,也可以建立邻居关系。对于P2P接口,可以配置接口忽略IP地址检查;对于以太网接口,需要将以太网接口模拟成P2P接口,才可以配置接口忽略IP地址检查。

7. cost-style

度量值类型不同不影响邻居的建立,但是影响路由的计算。
窄度量和宽度量主要有以下3点区别:

  1. 窄度量值最大为63,宽度量值最大为2的24次方
  2. 窄度量不支持TLV的分片,但是宽度量支持
  3. 用来通告路由信息的TLV类型不同,窄度量的TLV为2号、128号和130号,而宽度量为22号和135号

8. 其他

  1. max area数量不一致 (默认是3个)
  2. 多拓扑,即一边只有IPv4,另外一边有IPv4和IPv6
  3. p2p中3次握手和2次握手无法建立邻居,因为所使用的TLV不同,2次握手使用17号TLV,3次握手使用240号TLV

DR和DIS的区别

  1. 选举时机的比较。DR是在建立邻居关系之后选举,而DIS是在邻接关系建立后,需要再等待两个Hello报文间隔
  2. 选举时优选级的比较。DIS的优先级为0也可以参与选举,但DR优先级为0不参与选举;DR先比优先级再比RouteID,而DIS先比优先级再比MAC地址
  3. 选举的过程需要一定的时间。OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷
  4. 选举结果。ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份
  5. 选举结束后。后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的
  6. 选举完成后。DIS的发送Hello报文时间是3秒,DR是10秒或者30秒。ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成邻接关系, DRothers之间只有2-way的关系
  7. 作用不同。DIS周期性发送CSNP,保证网络中的LSDB同步,而DR的存在主要是为了减少泛洪
    ISIS的DIS与OSPF的DR区别

ISIS和OSPF的区域的区别

ISIS中Level-2可以学习到Level-1中的路由,但是Level-1无法学习到Level-2的路由。Level-1类似ospf的nssa区域,而Level-2类似ospf的骨干区域,即isis的骨干区域是由连续的level-2的路由器组成的

  1. ospf区域类型一致才能建立邻居,isis只有在level-1时才要求一致
  2. ospf区域类型更加丰富,isis只有2种
  3. 表示形式不一样,ospf使用点分十进制,isis表示方法比较复杂
  4. 在ospf中,一条链路只能属于一个区域,而在isis中,一条链路可以属于不同的区域ospf是基于接口的,isis是基于设备的

OSPF和ISIS的异同

相同点

  1. 维护一个链路状态数据库
  2. 都利用Hello包形成和维护邻居
  3. 使用区域概念来构成层次化的拓扑接口
  4. 都提供在区域之间进行地址汇总的能力
  5. 无类路由协议
  6. 都选举一个指定路由器来描述广播性网络
  7. 认证能力

不同点

差异性 ISIS OSPF
网络方式 少,2种 多,5种
开销方式 复杂 简便,参考带宽100M
区域类型 少,2种
路由报文类型 简单 多样
路由收敛速度 很快
扩展性 一般
路由负载能力 超强

1. 基本点比较

  1. ospf只支持IP,而isis支持IP和CLNP环境
  2. ospf通过IP承载,协议号89;isis通过链路层承载,安全性相对高些
  3. ospf基于接口划分区域,区域类型多,区域0为骨干区域;而isis基于设备划分区域
  4. ospf支持的网络类型有P2P、P2MP、NBMA、广播、虚链路,而isis仅支持广播和P2P

2. 邻接关系比较

  1. ospf邻接关系只有一种,但是isis邻接关系分level-1和level-2邻接关系
  2. ospf的DR优先级为0则不参与选举、不支持抢占、有BDR,而isis的DIS优先级为0参与选举DIS、支持抢占、没有备份DIS
  3. ospf中只有DR other之间是邻居关系,其余均是邻接关系,但是isis网络中所有设备均是邻接关系

3. 链路状态数据库同步过程比较

  1. ospf的LSA种类多,数据库结构复杂,因此定位故障困难;而isis的LSP只有路由器LSP和伪节点LSP,数据库结构简单,定位故障容易
  2. ospf的LSA的生存周期从0递增(maxage=3600,refresh周期为1800,不可调),而isis是从最大值递减(maxage=1200,refreshment 周期为900,可调)

4. 路由计算过程比较

  1. ospf将前缀作为SPF的节点,而isis将前缀作为叶子,叶子发生变化时可以用PRC来更新叶子而不需要进行SPF计算
  2. ospf的接口开销根据接口带宽变化,而isis的接口开销值在缺省时相同,所有接口默认为10
  3. ospf在区域内任何路由变化(LSA1/2中路由条目)均会触发iSPF计算,仅3类、5类、7类LSA的变化才使用PRC,而isis任何路由变化都是PRC

5. 性能及扩展能力比较

ospf支持按需链路而isis不支持,但是isis采用TLV结构,扩展性更好

ISIS IPv6

1. IPv6增加了哪两个TLV

  1. 232号TLV(IPv6 Interface Address):它相当于IPv4中的132号TLV(IP Interface Address),只不过把原来的32比特的IPv4地址改为128比特的IPv6地址
  2. 236号TLV(IPv6 Reachability):通过定义路由信息前缀、度量值等信息来说明网络的可达性

NLPID是标识网络层协议报文的一个1字节字段,IPv6的NLPID值为0x8E(ipv4是0xCC)。如果isis支持IPv6,那么向外发布IPv6路由时必须携带NLPID值

2. isis多拓扑指是什么

isis多拓扑是指在一个isis自治域内运行多个独立的IP拓扑。例如IPv4拓扑和IPv6拓扑,而不是将它们视为一个集成的单一拓扑。这有利于isis在路由计算中根据实际组网情况来单独考虑IPv4和IPv6网络。根据链路所支持的IP协议类型,不同拓扑运行各自的SPF计算,实现网络的相互屏蔽。

ISIS在帧中继环境下使用什么网络类型

帧中继环境
网络类型为P2P,且只能采用2次握手的方式建立邻居,接收LSP,但是并不计算路由(即没有路由条目),可以在HUB上采用子接口的方式解决。
如果采用3次握手,假设R1和R2先建立邻居(有路由条目),那么R3无法与R1建立邻居,因为R1给R3发送的IIH中的SystemID和电路ID并不是R3的,而是R2的。