数据通信——网络层(IS-IS)

引言

    其实按道理讲,应该开始传输层了,后续的话网络层再补充就好了。不过网络层还有几种协议——IS-IS、EIGRP、BGP。所以还是一边准备整理传输层的知识,顺带把路由协议补充完了吧!

    这个“破协议”之前在网上重新复习和查资料,搜IS-IS全是什么恐怖组织,给我整蚌埠住了。IS-IS全称是Inside System—Inside System,那它为什么叫做中间系统到中间系统呢?

中间系统到中间系统指的是路由器到路由器,它是一个系统,IS-IS在一定程度上也算是一个协议簇(它制定了路由器数据传输中不同的方法和策略)。数据通信——网络层(IS-IS)_第1张图片

    IS-IS曾是为OSI设计的,中间系统指的是网络设备。它是路由选择协议。RIP,EIGRP与OSPF都是固化协议。

    固化协议:指的是我在设计IPV4等报文的时候,固定你的报文格式,如果我用IPV6则无法承载一些报文。在IPV6中协议就要升级,比如RIPNG,EIGRPV6,OSPFV3(固化就意味着我要开发新的协议去适应新的报文格式)它们就是随着报文格式的变动衍生出来的新版本。

    但是ISIS不同,它通过TLV(Type Length Value)实现报文承载,IS-IS可同时支持IPV4和IPV6报文。通过向路由器添加TLV可以支持任何路由协议。(TCP/IP中闲在叫做双栈/集成 IS-IS

    IS-IS可以DIY各种想承载的环境,这要设置TLV。IS-IS整合度很高,IS-IS和OSPF使用相同的算法(SPF)但OSPF用ISPF+PRC计算,但IS-IS虽然也用ISPF+PRC算法,但IS-IS与OSPF有些许的不同。

    IS-IS属于链路状态协议(无类的),IS-IS适用于大型网络,(相应的载荷也很大)也适合运营商内网,但是比起OSPF稍逊略色,不过稳定性比OSPF好。IS-IS封装简单:LAYER 2|IS-IS|FCS(Layer2的意思是二层)。

IS-IS的术语

ES(End System):终端系统,其实就是(具有路由选择功能)主机 ( 双网卡主机)

IS(Intermediate System):中间系统,其实就是路由器

Area:一组路由器和主机,以及连接这些路由器和主机之间的链路构成ISIS网络的一个区域

Domain:一组连续的area就构成了domain

IS-IS构造

先看OSPF来理解IS-IS的构造,IS-IS处于网络层,它在网络层中有

(1)CONS:面向连接服务

(2)CLNS:无连接服务——它里面含有3个协议(CLNP,IS-IS,ES-IS)

(3)CLNP:无连接网络协议——类似于IPV4/IPV6,它定义了三层地址

(4)NSAP:网络服务接入点,它是CLNP定义的OSI中使用的地址。在OSI中一定要划分区域,网络设备与PC机都要指定区域,NSAP中会有字段表示你所属的地址。(OSI认为一个设备就是一个节点,当你用了NSAP,那无论用几个接口都是这个地址。那如何标识接口呢?用Circuit-ID也就是电路ID,每个接口都有电路ID,而且每个设备接口不一致的)

数据通信——网络层(IS-IS)_第2张图片

(5)SNPA:描述二层所对应的地址(接口的二层介质对应的地址)它叫子网接入点

IS-IS:对应的是TCP/IP中各种路由协议。比如:OSPF对应IS-IS

ES-IS:在IPV6中对应NDP它类似于NDP。PC通过发HELLO和路由器建立邻居并了解网关。路由器也下放Hello给PC,让路由器知道PC的三层与二层的映射,并传输数据。

IS-IS路由器ID用的NSAP格式,NSAP末尾有个NSEL是一个NET地址,它为00时叫做网络实体标题,但现在没有路由有NSAP地址的NET,因此要手工指定(你最少配1个最多3个)

IS-IS区域

    IS-IS区域:分为骨干与非骨干,但IS-IS骨干区域可无Area0,而且不需要挂靠,它其实准确来说是骨干链路,而非骨干区域。当路由启用的时候,所有东西被分为2级:level-1和level-2

Level-1相当于区域内路由(非骨干路由)

Level-2相当于属于Area0的路由器(骨干路由)

Level-1-2相当于OSPF的ABR路由(通过该链路将所有非骨干与骨干连接起来)

    IS-IS因为NSAP它只能属于一个区域!而且IS-IS的路由器仅属于一个区域但其链路可属于不同区域(与OSPF相反)OSPF的路由器可属于多个区域,但其链路仅属于一个区域。

IS-IS骨干链路是由一组连续的LSLevel-1-2组成的逻辑骨干

    LSDB:Level-1有Level-1的LSDB,它只包含区域内信息。Level-1-2帮助Level-1与其它区域传递。发送的叫LSP(相当于OSPF为LSA)叫链路状态PDU。它有一个位叫ATT位在LSP的字段里面。通常设置为0。当路由器是level-1-2时且在连入其他区域时,向内部发送一类LSP的时候会置位为1,随后level-1收到置位为1的LSP后,它会自动产生默认路由进行访问。当它想访问外部时就通过这个默认路由访问。但当有多个Level-1-2存在时,可能导致非对称路由(去的路由和回来的路径不一致)若有防火墙,一台设备的数据发出,如果回来的数据发送端不一致时会被拦截丢弃。

    这时就要采用路由泄露来处理。在Level-1-2上面部署后,它可让Level-1-2把Level-2学到的其他区域的骨干路由转化为Level-1的LSP在区域内发送,通过明细路由进行交互。

    总的来说,Level-1负责区域内的路由器,它只与同一区域的Level-1和Level-2路由形成邻居关系,不同区域的Level-1不能形成邻居关系。Level-1只负责维护Level-1的LSDB。该LSDB有本区域所有路由器信息。

    Level-2负责区域间路由器,它可以和同一个或不同区域的Level-2路由器或其他区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含其他区域的IS-IS区域所有的路由信息。所有Level-2级别的路由器组成骨干网负责不同区域间通信,Level-2必须是物理连续的,保持骨干区稳定。

    Level-1-2区域同属于Level-1和level-2路由器,它可与同区域的level-1和level-2形成Level-1邻居关系,也可与Level-1和level-2形成level-2的邻居关系。Level-1必须通过Level-1-2连入其他区域,Level-1-2维护两个LSDB,Level-1为区域内区域,Level-2区域为区域间区域。

到本区域外的报文转给最近的Level-1-2路由器。Level-1必须通过Level-1-2才能连到其他区域。

    IS-IS路由逻辑是Level-1-2的路由器会把区域内学到的LSP复制一份放到Level-2的LSDB中去。但是Level-2的LSDB不会复制到Level-1,如果想这样做,那就利用路由泄漏在Level-1-2上处理。

IS-IS网络类型(点到点和广播)

重点看广播类型!!!

    在IS-IS中也要选择一个DIS叫做指定中间系统,它在建好邻居后进行。他的邻居只有down和up,down无邻居,up有邻居。

    DIS会比较大小,数值为0-127,最大优先级为DIS其次为SNPA也就是Mac地址,谁大选谁。DIS其实是一个优化,并不是依赖。可以高效同步LSDB(注:DIS为0,表示最小优先级)

    Level-1和Level-1建立邻居可选一个Level-1,Level-2和Level-2建立邻居可选一个Level-2。DIS可存在两个甚至是同一个路由器的同一个接口。你可以修改Level-1或者Level-2的优先级或者都进行修改也可以。

    DIS的优化是为了让大家知道LSDB是否同步,CSNP每10s发送一次LSP报头信息,告诉大家我所拥有的LSP。如果我没有这个LSP,发送PSNP请求,你收到后不需要答复,因为每10s会进行一次发送。

    DIS的表示形式是DIS中的System ID和一个字节的Circuit ID(非0值)标识来告诉网络中谁是DIS(路由器的接口标识就是System ID+Circuit ID)

以上是广播中,那点到点呢?

    我需要PSNP确认但CSNP仅发一次且可能会丢包。因此点到点中PSNP常用来回复ACK。我反复收到确认就一直等待(等待开启计时器)若没回复,重发。

IS-IS报文

Hello——建邻居

LSP——它是类似于LSA的拓扑信息,它里面含有:普通LSP(非DIS的LSP)和伪节点LSP(DIS LSP)

SNP——序列号PDU,分为CSNP(完整序列号)和PSNP(部分序列号)

CSNP——DD报文本路由器的LSDB中所有的LSP报头信息

PSNP——相当于LSR和LSAck

IS-IS地址结构

IS-IS地址结构分为:IDP(初始域部分)DSP(域指定部分)

    IDP分为AFI(组织格式标识符)用来描述网络位(类似于网络位);IDI(初始域ID)AFI的子域用来描述组织部门。

    DSP分为HODSP(高位预指定部分)描述路由器或者节点的所属区域;System ID类似主机位,标识一个节点,它在该区域是唯一的;SEL(网络服务协议号)当它为00时为本身的地址。

    NSAP为OSI中定位资源的地址。相当于OSI网络层协议CLNP的地址(类似IP地址的概念)Net为一类特殊NSAP(SEL=00)在配置is-is时,只要考虑NET即可。

    Hello PDU(IIH)用于建立和维持邻居关系:Level-1 LAN IIH,Level-2 LAN IIH,P2P IIH。

    IIH是中间系统的Hello(IS-IS的Hello叫做IIH)在广播网络上,使用LAN IIH报文来建立邻接关系,有两种类型的LAN IIH(LAN IIH 1和LAN IIH 2)。

一种类型是:[组播MAC:01-80-C2-00-00-14]=LAN IIH 1

另一种类型是:[组播MAC:01-80-C2-00-00-15]=LAN IIH 2

    Level-1路由器通过交互Level-1 LAN IIH报文来建立邻接关系;Level-2路由器通过交互Level-2 LAN IIH报文来建立邻接关系;Level-1-2会同时交互Level-1 LAN IIH和Level-2 LAN IIH报文来建立邻接关系。

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

一个区域内,Level-1 LSP(在一个区域内传递,路由信息域拓扑信息)。

Level-2 LSP(在整个骨干链路中传递,不过不会传递给非骨干区域)它形成整个网络拓扑信息

Level-1被拷贝到Level-2发送给骨干,这是Level-1-2的逻辑。如果你想反过来,就要执行路由泄露。

LSP包含几个字段:ATT,OL,Ls type(用来描述是Level-1还是Level-2)。

Level-1和Level-2发送LSP时候,ATT位为0只有Level-1-2发送时ATT位LSP为1.前提为我是Level-1-2,也要有Level-2的邻居且LSDB中有Level-2的路由。这时我发送的1类LSP时,ATT置位为1。

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

IS-IS形成邻居关系条件

    IS-IS形成邻居条件的简单描述为:要满足在同一层次;同一个区域;同一个网段;相同的网络类型中。

    IS-IS度量值在计算时有两个分类(Narrow Metric)和(Wide Metric)

    Narrow Metric:默认为10,每传一跳+1(范围为0-63)但最大取值可为(0-1023)

OSPF有11种LSA ,但是IS-IS只有一种LSP,如果你想插入报头,那么就在其中添加TLV。

    Jumbo LSP:当LSDB中承载了太多LSP时,这时候每台路由器会赋予一个功能——LSP切片,我会把Jumbo LSP切成256片,但切片太多时要通过虚拟系统扩展技术,通过该技术,你就可以把路由器虚拟成50台虚拟机,每台虚拟机产生一个Jumbo然后循环上述步骤。因此这样不仅方便,而且一个LSP就能表达我所表达的内容。

    Wide Metric:它很大,建议使用。他的接口路径cost为24bit(0-1700w);完整路径cost为32bit(0-42亿)(前面两个都是可改的范围)但默认还是10,想改就去一个个改。wide兼容Narrow,虽然可以建邻居,但是传不了LSP。

IS-IS高级特性

    IS-IS建立广播邻居时,路由器R1先发送路由器R1的System ID和未知邻居字段。当路由器R2收到后会回复路由器R2自身的System ID和R1的neighbor字段。R1收到后会发送R1的System ID和R2邻居字段。

IS-IS点到点时,双方互发L2 LAN IIH即可

P2P网络时,LSDB同步如下:

    建立邻居后,R1和R2先发送CSNP给对端,若对端的LSDB和CSNP无同步,则发送PSNP请求索取相应的LSP;假定R2向R1索取相应的LSP,那么R1向R2发送请求LSP的同时启动LSP重传定时器,并等待R2发送PSNP作为收到的LSP确认;若在接口LSP重传定时器超时后,R1没接收到R2发送的PSNP报文作为应答,则重发送LSP直到收到PSNP报文。

OSI定义路由的层级

Level-0 PC到路由器之间 (Es-is,NDP)

Level-1 区域到路由 IS-IS(IS-IS)

Level-2 区域到路由 IS-IS(IS-IS)

Level-3 AS间路由 IDRP域间路由选择协议 (BGP)

TLV类型及作用

IS-IS有丰富的TLV,根据TLV完成报文承载。其内容如下:

(1)Area address TLV(始发者路由器的区域地址)

(2)IP interface address TLV(用来发送PDU数据包的接口地址或IP地址)

(3)Protocol Supported TLV(是指表示始发路由器支持的协议类型,如IP/CLNP/IPV6)

(4)ReStart Option TLV(用于优雅重启动)

(5)Point-to-Point adjacency State TLV(支持三次握手功能)

(6)multi topology TLV(支持多拓扑功能)

(7)Padding TLV(支持IHH填充)

(8)IS reachability TLV(用来列出始发路由器邻居)

(9)IP interface address TLV(是指发送PDU数据包的接口地址/IP地址)

(10)IP internal reachability TLV(IP内部可达,用于通告该LSP的路由器直连的路由选择域内的IP地址和相关掩码信息。该TLV不会出现在伪节点的LSP中)

    什么?你想让我细致的讲一讲这些东西,算了吧!以后有机会慢慢探讨这个东西吧!不过这些TLV的作用都写出来了,应该也都不难理解。

更多特性:

IS-IS还具备多种特性,这些特性很像OSPF的特性,毕竟都是基于SPF算法完成的协议么。

    快速收敛:增量最短路径优先算法ISPF,只对受影响的节点进行路由计算,只一次计算全部节点。

    部分路由计算PRC:只对发生某些变化的路由进行重新计算,根据ISPF算出SPT来更新路由。IS-IS中仅把路由器之间的链路定义为节点,不会把PC当作节点,比起OSPF在PC端连接时候因FLAP(翻动)导致的ISPF大量计算,IS-IS仅需PRC计算,CPU的消耗较少。

    智能定时器:分为SPF计算智能定时器和LSP生成智能定时器,当网络变化频繁的时候,智能定时器间隔时间全自动延长。当网络不停变化的时候,LSP要通告时可以根据网络情况改变LSP的发送频率。它也可以延迟ISPF和PRC的计算。根据网络情况决定收敛效率还是资源节约。

    LSP快速扩散/按优先级收敛:LSP支持切片,但每次发送规律是先发送10个,随后等待一段时间后再发送10个,若我想 一次性发送完毕,用LSP可快速扩散。它是根据链路带宽发送最大切片数,适用于紧急收敛,你也可以先收敛某些路由。

IS-IS认证:

当然了,该有的验证IS-IS也一应俱全,分别是接口认证;区域认证;路由认证三种。

接口认证:只对Level-1和Level-2的Hello报文认证

区域认证:对Level-1的SNP和LSP认证

路由认证:对Level-2的SNP和LSP认证

认证可以是:Null(无认证),明文认证,MD5认证。不过OSPF的认证再报头里面,而IS-IS的认证在TLV中。

IS-IS还有LSP的分片扩展能力(这个与mode-1和mode-2有关,这是另外的知识了)

IS-IS管理标记:IS-IS的Level-1和Level-2都支持标记但OSPF只有5类和7类LSA支持

IS-IS不支持NET宣告,只能在接口启用。

你可能感兴趣的:(数通工程,网络,tcp/ip,网络协议,信息与通信)