isis基本原理

场景应用

  • 园区网:区域多样、策略多变、调度精细
  • 骨干网:区域扁平、收敛极快、承载庞大

园区网大多使用ospf,运营商使用ISIS+BGP,运营商CE设备是用户的,PE设备是运营商的,收敛快是相对的、同时承载的路由条目很多百万级别

历史起源

  • 集成IS-IS特点:
  1. 支持CLNP网络、IP网络
  2. 工作在数据链路层
  • OSPF特点:
  1. 目前只支持IP网络
  2. 工作在IP层

CLNP是网络连接协议,可以用于终端系统的网络实体之间或网络层中继系统中。CLNP 使用 NSAP 地址和标题来识别网络设备,就像 IP 一样,CLNP 协议头的校验和提供了一种认证,该认证用于处理 CLNP 数据报是否已正确传输,以及提供了生命周期控制机制 ,该机制限制了数据报停留在因特网系统中的时间。ES-IS终端系统到中间系统

路由计算过程

  1. 建立邻居关系
  2. 同步LSDB数据库(用LSP同步)
  3. 执行SPF路由计算
  4. 最终生成最短路径树

邻居hello报文

IS-IS只支持点到点和广播网络类型

P2P的报文名称:Point-to-Point IIH 后面的IIH就是IS-IS Hello

广播多路访问的网络类型分两种

  1. L1 LAN IIH
  2. L2 LAN IIH

L1就是level级别的意思,广播报文分两种是为了维护不同的LSDB

路由器分类

IS-IS路由器的三种类型

  • Level-1路由器(只能创建level-1的LSDB)
  • Level-2路由器(只能创建level-2的LSDB)
  • Level-1-2路由器(路由器默认的类型,能同时创建level-1和level-2的LSDB )

Level-1只能与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,只负责维护Level-1的链路状态数据库,该LSDB包含本区域内的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。Level-1路由器只可能建立Level-1的邻接关系。

Level-2路由器负责区域间的路由,它可以与相同或者不同区域的Level-2路由器或者不同区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。Level-2路由器只可能建立Level-2的邻接关系。

同时属于Level-1和Level-2的路由器称为Level-1-2路由器。Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。Level-1-2路由器可以与同一区域的Level-1形成Level-1邻居关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。

不同区域间,只能建立Level-2的邻接关系:

  • Level-2路由器可以与Level-2路由器建立邻接关系
  • Level-1-2路由器可以与Level-2路由器建立邻接关系
  • Level-1-2路由器可以与Level-1-2路由器建立邻接关系

区域划分

  • level-2路由器和level1-2路由器形成的区域叫做骨干区域(backbone)
  • 其余的都是非骨干区域

ISIS协议的区域边界在整个Router,OSPF协议的区域边界在Router的接口

Level-1的邻接关系的建立,区域ID必须一致。

地址结构

TCP/IP协议栈IP协议IP地址OSPFArea ID+Router ID
OSI系统CLNP协议NSAP地址IS-ISNET标识符

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

Area ID大多都是49.000x开头,system ID就像router ID,最后的SEL都是00

链路信息状态的载体

LSP PDU——用于交换链路状态信息。

  • 实节点LSP(类似于OSPF的1类LSA)每台路由器都会产生
  • 伪节点LSP(只在广播链路存在)[类似于2类LSA]

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

  • CSNP(用于同步LSP)类似DD
  • PSNP(用于请求和确认LSP)类似LSACK

协议报文都分为Level-1和Level-2两种,在MA网络中所有协议报文的目的MAC都是组地址:

  1. Level-1地址为:0180-C200-0014
  2. Level-2地址为:0180-C200-0015

邻居关系建立

P2P

使用两次握手,只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险

通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。(推荐使用)

广播链路

默认使用三次握手(安全)

  • 当收到邻居发送的Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized。
  • 只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险。
  • 广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)。

DIS及DIS与DR的类比

类比点ISIS-DISOSPF-DR
选举优先级所有优先级都参与选举0优先级不参与选举
选举等待时间2个Hello报文间隔40s
备份有(BDR)
邻接关系所有路由器互相都是邻接关系DRother之间是2-way关系
抢占性会抢占不抢占
作用周期发送CSNP,保障MA网络LSDB同步主要为了减少LSA泛洪

在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。当三倍的hello时间收不到就会被down

链路状态信息的交互

  • P2P网络CSNP报文只发送一次,邻居建立后立即发送。
  • MA网络CSNP报文只由DIS组播发送,时间默认为10秒。

路由算法

ISIS路由计算开销方式

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

SPF计算过程:

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

区域间路由

非骨干访问骨干

  • L1/2路由器RTA产生ATT置位为1的LSP
  • L1路由器收到ATT为1的LSP会产生下一跳指向L1/2路由器的默认路由

骨干访问非骨干

L1/2路由器RTA会把区域非骨干的明细路由以叶子节点方式挂载在L2级别的LSP上面并处在Level-2的LSDB中

L2路由器通过自己SPF计算得出访问非骨干的明细路由

配置命令

配置拓扑图,大同小异,这里的ip也就是随便写的

yez9.png

先看AR3的配置,AR3是属于level-1区域,而且区域也说了,那么就配置,最后别忘了在端口上启用

interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
isis 100                            #创建Isis进程号100
 is-level level-1
 network-entity 49.0001.0000.0000.0003.00
 import-route direct level-1         #引入AR3的环回口地址
interface GigabitEthernet0/0/0
 ip address 123.1.1.1 255.255.255.0 
 isis enable 100                    #启用ISIS进程号100
 isis dis-priority 120 level-1        #设置AR3为DIS路由器(相当于OSPF的DR老大)

然后这里的LSW1就是傻瓜交换机,不做任何配置,接着AR1这里配置如下:

isis 100
 network-entity 49.0001.0000.0000.0001.00
 import-route isis level-2 into level-1        #做路由渗透选择最优路径
 interface GigabitEthernet0/0/0
 ip address 123.1.1.2 255.255.255.0 
 isis enable 100
 interface GigabitEthernet0/0/1
 ip address 21.1.1.1 255.255.255.0 
 isis enable 100

为了解决Level-1路由器访问其他区域出现次优路径的问题,可以使用IS-IS的路由渗透功能。在Level-1-2路由器上将其他Level-1区域和Level-2区域的路由信息引入到自己所在的Level-1区域,让本区域的Level-1路由器可以选择最优路径访问区域外目的地址。

然后把下面的AR2做一下,AR2这里也做一下路由渗透,然后注意把这下面的串口之间连接的网络类型做成P2P的。

isis 100
 network-entity 49.0001.0000.0000.0002.00
 import-route isis level-2 into level-1        #路由渗透选择最优路径
interface GigabitEthernet0/0/0
 ip address 123.1.1.3 255.255.255.0 
 isis enable 100
interface Serial4/0/0
isis circuit-type p2p            #如果你的链路本来就是串行的就不需要做这个
 ip address 14.1.1.11 255.255.255.0 
 isis enable 100

然后看AR4的配置,这里就属于level-2了

isis 100
 is-level level-2
 network-entity 49.0002.0000.0000.0004.00
 interface GigabitEthernet0/0/0
 ip address 21.1.1.2 255.255.255.0 
 isis enable 100
 interface Serial4/0/1
 link-protocol ppp
 ip address 14.1.1.10 255.255.255.0 
 isis enable 100
 interface GigabitEthernet0/0/1
 ip address 23.1.1.1 255.255.255.0 
 isis enable 100

我图里的4路由器有三个接口,一定要在每个接口上面enable

最后就是AR5了,这个有几个环回口,在做的时候把路由引入进来

isis 100
 is-level level-2
 network-entity 49.0002.0000.0000.0005.00
 import-route direct         
interface GigabitEthernet0/0/0
 ip address 23.1.1.2 255.255.255.0 
 isis enable 100

最后这里的引入直连可以偷个懒直接 import-route direct 就行了,因为这个路由器在level-2里面,但是如果在我图中的AR3上面直接这样做的话是不行的,必须要在后面加上 import-route direct level-1 这个才行。

最终从两端的环回口ping一下还是能通的嘛
yxGN.png

最后修改:2020 年 08 月 24 日 03 : 52 PM
请俺喝杯咖啡呗