ISIS原理描述
场景应用
园区网的特点:区域多样、策略多变、调度精细
骨干网的特点:区域扁平、收敛极快、承载庞大
IS-IS属于内部网关协议,用于自治系统内部。IS-IS是一种链路状态协议,使用最短路径优先算法进行路由计算,ISIS一般适用于骨干网。
路由计算过程
建立邻居关系->同步LSDB数据库->执行SPF路由计算(和OSPF细节有一定的差异)
邻居关系建立:邻居关系建立主要是通过HELLO包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等。
链路信息交换:与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递。
路由计算:SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度。
地址结构
IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。
Area ID由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号。
System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
NET:网络实体名称NET指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00),NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
路由器分类
ISIS路由器的三种类型:
Level-1路由器(只能创建level-1的LSDB)
Level-2路由器(只能创建level-2的LSDB)
Level-1-2路由器(默认类型,能同时创建level-1 和level-2的LSDnB)
Level-1:只能与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,只负责维护Level-1的链路状态数据库,该LSDB包含本区域内的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。Level-1路由器只可能建立Level-1的邻接关系。
Level-2:level-2路由器负责区域间的路由,它可以与相同或者不同区域的Level-2路由器或者不同区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。Level-2路由器只可能建立Level-2的邻接关系。
Level-1-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-1:
只拥有Level-1的链路状态数据库。
其链路状态数据库中只有本区域路由器LSP。
其路由表里没有其他区域的路由信息。
其路由表里都有一条默认路由,下一跳是指向到Level-1-2路由器。
Level-2:
Level-2路由器只有Level-2的链路状态数据库。
其LSDB中有骨干区域路由器的LSP,但是没有Level-1路由器产生的LSP。
路由表里面有整个网络的路由信息。
Level-1-2:
Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库。
Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP。
在自己产生的Level-1的LSP中设置了ATT比特位为1。
路由表里面有整个网络的路由信息
邻居建立过程
ISIS目前只支持点对点(P2P)和广播(Broadcast)网络类型
HELLO PDU:
HELLO报文的作用是邻居发现,协商参数并建立邻居关系,后期充当保活报文。
IS-IS建立邻居关系和OSPF一样,通过hello报文的交互来完成。但是会根据场景分为三种类型的hello报文。
广播网中的Level-1 IS-IS使用Level-1 LAN IIH(Level-1 LAN IS-IS Hello),目的组播MAC为:0180-c200-0014。
广播网中的Level-2 IS-IS使用Level-2 LAN IIH(Level-2 LAN IS-IS Hello),目的组播MAC为:0180-c200-0015。
非广播网络中则使用P2P IIH(point to point IS-IS Hello)。但是其没有表示DIS(虚节点)的相关字段。
IIH报文需要通过填充字段用于邻居两端协商发送报文的大小。
广播链路下:
使用LAN IIH报文执行三次握手建立邻居关系。
当收到邻居发送的Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized。
只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险。
广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)。
p2p链路下:
两次握手机制:两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险。
三次握手机制:通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。
DIS及DIS与DR的类比
DIS与伪节点:
DIS是指指定中间系统(Designated IS)。
伪节点是指在广播网络中由DIS创建的虚拟路由器。
DIS特点:
在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。
DIS的选举与DR的选举的不同点
选举时优选级的比较,DIS的优先级为0也可以参与选举。OSPF中优先级为0不参与选举DR。
选举的过程需要一定的时间,OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷。
选举结果ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份。
选举结束后,后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的。
选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系, DRothers之间只有2-way的关系。
作用:进行SPF计算时,都把它当成虚节点,简化MA网络的逻辑拓扑(相同点)。
都是为了减少LSP/LSA的泛洪(相同点)。
在ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS扩展作用)。
链路状态信息的载体
LSP PDU——用于交换链路状态信息。
1.实节点LSP
2.伪节点LSP(只在广播链路存在)
LSP类似于OSPF的LSA,承载的是链路状态信息,包含了拓扑结构和网络号。
Level-1 LSP由Level-1 路由器传送。
Level-2 LSP由Level-2 路由器传送。
Level-1-2 路由器则可传送以上两种LSP。
LSP 报文中包含了两个重要字段是ATT字段、IS-Type字段。其中ATT字段用于标识该路由是L1/L2路由器发送的,IS-Type用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS。
LSP的刷新间隔为15分钟;老化时间为20分钟。但是一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延;LSP重传时间为5秒。
SNP PDU——用于维护LSDB 的完整与同步,且为摘要信息。
1.CSNP(用于同步LSP)
2.PSNP(用于请求和确认LSP)
CSNP 类似于OSPF的DD报文传递的是LSDB里所有链路信息摘要。PSNP类似于OSPF的LSR或LSAck报文用于请求和确认部分链路信息。
链路状态信息的交互
与OSPF的区别
网络类型和开销方式
IS-IS协议只支持两种网络类型,且所有带宽默认开销值都是一样的,OSPF协议支持四种网络类型,且会根据不同的带宽设定相应的开销值,对帧中继,按需链路等网络类型有很好的支持。
区域类型
IS-IS协议分L1/L2区域,L2区域是骨干区域有全部明细路由。L1去往L2只有默认路由。OSPF协议分骨干区域,普通区域,特殊区域。普通区域和特殊区域跨区域访问需要经过骨干区域。
报文类型
IS-IS协议路由承载报文类型只有LSP报文且里面路由信息是不区分内部与外部的,简单高效,无需递归计算。OSPF协议路由承载报文LSA类型多样,有1/2/3/4/5/7类等。路由级别等级森严,且需要递归计算,适合精细化调度计算。
路由算法
ISIS协议区域内某个节点上的网段发生变化时,触发的是PRC算法,收敛比较快,计算路由的报文开销也比较小。OSPF协议由于网络地址参与了拓扑的构建,在区域内当网段地址改变触发的是i-spf算法,相对来说过程繁琐复杂些。
扩展性
ISIS协议任何路由信息都使用TLV传递,结构简单,易于扩展,如对IPv6的支持只增加2个TLV就解决了。且ISIS本身对IPX等协议是支持的。OSPF协议本身是为IP特定开发的,支持IPv4和IPv6的OSPF协议是两个独立的版本(OSPFv2和OSPFv3)。
基本配置
通过一个简单的实验来学习基本配置,首先理一下配置思路
如图所示,客户网络所有路由器路由协议要求启用IS-IS,使全网路由可达。全部IS-IS进程号统一为100,其中R1在Area49.0001区域为DIS,R4与R5之间要求采用P2P网络类型,R5引入环回口8.8.8.8和9.9.9.9,要求R1访问Area49.0002走最优路径。
区域内配置思路:
区域49.0001的业务配置:
每台router进入IS-IS进程100配置网络实体名称NET。
R1在ISIS进程下配置router的level级别为level-1。R2和R3默认为level-1-2不用修改。
R1,R2和R3在接口下启用ISIS协议。
R1的链路接口修改其DIS的优先级为最高,让其成为DIS。
区域49.0002的业务配置:
每台router进入进程100配置网络实体名称NET。
R4和R5在ISIS进程下配置router的level级别的level-2。
R4和R5在接口下启用ISIS协议。
R4和R5在接口修改网络类型为P2P。
区域间配置思路
区域间配置思路:
进入配level-1-2路由器R2,R3的ISIS进程配置好网络实体名称NET。
进入链路接口,启用ISIS协议。
进入路由器R5引入直连链路
路由渗透
如果一个level-1区域有两个以上Level-1-2路由器,则区域内Level-1路由器访问其他区域会选择最近的Level-1-2路由器,但是计算的开销值只计算本区域内的,如果最近的Level-1-2路由器在Level-2区域到达目的网络的开销相对比较大,实际会造成业务次优路径。在这种场景下需要做路由渗透操作,把Level-2区域的明细路由(包括开销)引入到Level-1区域,由Level-1路由器自行计算选择最优的路径访问跨区域网络。
本实例要求走最优的路径到达区域49.0002,由于R2连接R4的链路带宽相对比较大,作用最好让数据流走R2。可分别在R2和R3的ISIS进程下引入level-2的路由到level-1。由R1的LSDB里面掌握level-2所有的明细路由,就可以选择最优的路径到达区域49.0002。
配置命令:
R1
R2
R3
R4
R5
配置完成后,查看R1路由表中isis路由条目
dis ip routing-table protocol isis
ping全网路由,可达
抓一下R1-R5的路由走向,发现是从R2走的
实验完成,全网可达并且实现了业务需求