IS-IS协议

一、什么是IS-IS协议?

IS-IS最初是国际标准化组织ISO(the International Organization for Standardization)为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议。

为了提供对IP的路由支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成化IS-IS(Integrated IS-IS),后面如果没有特别说明,提到的IS-IS都是指集成IS-IS。

IS-IS属于内部网关协议,用于自治系统内部。IS-IS是一种链路状态协议,使用最短路径优先算法进行路由计算。

二、IS-IS应用场景

IS-IS协议_第1张图片

1、园区网特点:

@应用型网络,主要面向企业网用户。

@路由器数量偏少,动态路由的LSDB库容量相对偏少,三层路由域相对偏少。

@有出口路由的概念,对内部外部路由划分敏感。

@地域性跨度不大,带宽充足,链路状态协议开销对带宽占用比偏少。

@路由策略和策略路由应用频繁多变,需要精细化的路由操作。

@OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到了极大的发挥。

2、骨干网特点:

@服务型网络,由ISP(互联网服务提供商)组建,并为终端用户提供互联服务。

@路由调度占据绝对统治地位,路由器数量庞大。

@架构层面扁平化,要求IGP作为基础路由为上层BGP协议服务。

@LSDB规模宏大,对链路收敛极度敏感,线路费用高昂。

@追求简单高效,扩展性高,满足各种客户业务需求(IPV6/IPX)。

@IS-IS的快速算法(PRC得到加强),简便报文结构(TLV),快速邻居关系建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势。

三、历史起源

IS-IS协议_第2张图片

四、路由计算过程

IS-IS协议_第3张图片

1、邻居关系建立:邻居关系建立主要是通过HELLO包交互并协商各种参数,包括电路类型(level1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等

2、链路信息交换:与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递。

3、路由计算:SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度。

五、地址结构

IS-IS协议_第4张图片

NSAP地址:

IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。

Area Address(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可不必去关注。

在配置IS-IS过程中,NET最多也只能配3个。在配置多个NET时,必须保证它们的System ID都相同。

六、路由分类

IS-IS协议_第5张图片

Level-1路由器:

    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路由器建立邻接关系。

七、邻居HELLO报文

IS-IS协议_第6张图片

1、HELLO PDU(Hello protocol data unit):

@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报文需要通过填充字段用于邻居两端协商发送报文的大小。

2、IS-IS支持的网络类型:

  @点对点网络类型(P2P)。

  @广播多路访问网络类型(Broadcast Multiple Access)。

  @在帧中继等特殊环境下,可以通过创建子接口支持P2P的网络类型。

八、邻接关系的建立

IS-IS协议_第7张图片

 

在P2P链路上,分为两次握手机制和三次握手机制。

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

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

在广播链路上,使用LAN IIH报文执行三次握手建立邻居关系。

@当收到邻居发送的Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized。

@只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险。

@广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)。

九、DIS

IS-IS协议_第8张图片

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的关系。

关于DIS和DR的作用:

@进行SPF计算时,都把它当成虚节点,简化MA网络的逻辑拓扑(相同点)。

@都是为了减少LSP/LSA的泛洪(相同点)。

@在ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS扩展作用)。

十、链路状态信息的载体

IS-IS协议_第9张图片

ISIS TLV:

@TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。

@使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特点只需要增加新TLV即可。不需要改变整个报文的整体结构。

@网络拓扑结构和路由信息用TLV结构表现使得报文的灵活性和扩展性得到了极大的发挥。

LSP PDU(Link State Protocol PDU):

@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(Sequence Number PDU):

@CSNP(Complete Sequence Number PDU)包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。

@PSNP(Partial Sequence Number PDU)包含部分LSDB中的LSP摘要信息,能够对LSP进行请求和确认。

@CSNP 类似于OSPF的DD报文传递的是LSDB里所有链路信息摘要。PSNP类似于OSPF的LSR或LSAck报文用于请求和确认部分链路信息。

十一、链路状态信息的交互

IS-IS协议_第10张图片

P2P网络LSDB同步过程:

@建立邻居关系之后,RTA与RTB会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。

@假定RTB向RTA索取相应的LSP,此时向RTA发送PSNP。RTA发送RTB请求的LSP的同时启动LSP重传定时器,并等待RTB发送PSNP作为收到LSP的确认。

@如果在接口LSP重传定时器超时后,RTA还没有收到RTB发送的PSNP报文作为应答,则重新发送该LSP直至收到RTB的PSNP报文作为确认。

MA网络中新加入的路由器与DIS 的LSDB同步交互过程:

@假设新加入的路由器RTC已经与RTB(DIS)和RTA建立了邻居关系。

@建立邻居关系之后,RTC将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。

@该网段中的DIS会把收到RTC的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP 报文,进行该网络内的LSDB同步。

@RTC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP(如RTA和RTB的LSP就没有)。

@RTB作为DIS收到该PSNP报文请求后向RTC发送对应的LSP进行LSDB 的同步。

十二、路由计算

IS-IS协议_第11张图片

IS-IS的计算特点:

@在本区域内路由器第一次启动的时候执行的是Full-SPF算法。

@后续收到的LSP更新,如果是部分拓扑的变化执行的iSPF计算。

@如果只是路由信息的变化,执行的就是PRC计算。

@由于采用拓扑与网络分离的算法,路由收敛速度得到了加强。

ISIS路由计算的开销方式:

@Narrow模式(设备默认模式开销都是10,手工配置接口开销取值范围为1~63)。

@Wide模式(设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215)。

@进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只是参考准则有少许差异。

十三、网络分层路由域

IS-IS协议_第12张图片

IS-IS整体拓扑:

@为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

@拓扑中为一个运行IS-IS协议的网络,它与OSPF的多区域网络拓扑结构非常相似。整个骨干区域不仅包括Level-2的所有路由器,还包括Level-1-2路由器。

@Level-1-2级别的路由器可以属于不同的区域,在Level-1区域,维护Level-1的LSDB,在Level-2区域,维护Level-2的LSDB。

拓扑所体现的IS-IS与OSPF不同点:

@在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域;

@在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域;

@在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

十四、区域间路由

IS-IS协议_第13张图片

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。

@路由表里面有整个网络的路由信息。

十五、IS-IS协议和OSPF协议的区别

IS-IS协议_第14张图片

IS-IS协议_第15张图片

网络类型和开销方式:

@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协议_第16张图片

NET地址编号:

@RTA:49.0001.0000.0000.0001.00

@RTB:49.0001.0000.0000.0002.00

@RTC:49.0001.0000.0000.0003.00

@RTD:49.0002.0000.0000.0004.00

@RTE:49.0002.0000.0000.0005.00

IS-IS协议_第17张图片

区域内配置思路:

@区域49.0001的业务配置:

@每台router进入IS-IS进程100配置网络实体名称NET。

@RTA在ISIS进程下配置router的level级别为level-1。RTB和RTC默认为level-1-2不用修改。

@RTA,RTB和RTC在接口下启用ISIS协议。

@RTA的链路接口修改其DIS的优先级为最高,让其成为DIS。

IS-IS协议_第18张图片

区域内配置思路:

@区域49.0002的业务配置:

@每台router进入进程100配置网络实体名称NET。

@RTD和RTE在ISIS进程下配置router的level级别的level-2。

@RTD和RTE在接口下启用ISIS协议。

@RTD和RTE在接口修改网络类型为P2P。

IS-IS协议_第19张图片

区域间配置思路:

@进入配level-1-2路由器RTB,RTC的ISIS进程配置好网络实体名称NET。

@进入链路接口,启用ISIS协议。

@进入路由器RTE引入直连链路。

@路由渗透:

@如果一个level-1区域有两个以上Level-1-2路由器,则区域内Level-1路由器访问其他区域会选择最近的Level-1-2路由器,但是计算的开销值只计算本区域内的,如果最近的Level-1-2路由器在Level-2区域到达目的网络的开销相对比较大,实际会造成业务次优路径。在这种场景下需要做路由渗透操作,把Level-2区域的明细路由(包括开销)引入到Level-1区域,由Level-1路由器自行计算选择最优的路径访问跨区域网络。

@本实例要求走最优的路径到达区域49.0002,由于RTB连接RTD的链路带宽相对比较大,作用最好让数据流走RTB。可分别在RTB和RTC的ISIS进程下引入level-2的路由到level-1。由RTA的LSDB里面掌握level-2所有的明细路由,就可以选择最优的路径到达区域49.0002。

 

 

你可能感兴趣的:(数通基础,网络,运维)