关于IS-IS最早是ISO为CLNP(Connectionless Network Protocol,无连接网络协议)而设计的一种动态路由协议。
目录
这里提到了CLNP这个概念,在这里解释一下:
CLNS由以下三个协议构成:
那么为什么要设计出IS—IS这个路由协议呢?
关于IS-IS(中间系统到中间系统):
自治系统(AS):
大白话讲解:
集成IS-IS:
AS(Autonomous System,自治系统):
TLV(Type/Length/Value,类型/长度/值)
NSAP(Network Service Access Point,网路服务接入点):
IS-IS中使用的PDU类型有:
关于IS-IS的报文信息:
IIH:类似于OSPF中的Hello报文,发现、建立、维护邻接关系
细分类型:
LSP(Link State PDU,链路状态报文):
细节分类:
SNP(Sequence Number PDU,序列号报文):
细节类型:
关于IS-IS动态路由协议工作原理:
Level-1路由器:
Level-2路由器:
Level-1-2路由器
这里提到了CLNP这个概念,在这里解释一下:
CLNP是无连接网络协议,属于OSI模型中的网络层协议。它不保证数据包的顺序和可靠性,适用于对实时性要求高的应用。
我们既然提到了无连接的网络协议,之前我们再TCP/IP中也讲到过一个面向无连接的协议UDP(User Datagram Protocol),CLNP与其TCP/IP中的UDP类似;
两者都提供面向无连接的数据传输服务,但CLNP是OSI模型的一部分,而UDP是TCP/IP协议栈中的传输协议,所以我们要注意区分一下。
除此之外,再引进一个概念CLNS,即无连接网络服务,是OSI模型网络层提供的一种服务类型,其核心特点在于数据传输前无需建立连接。
关于说CLNP与CLNS之间是紧密相关的,CLNS由CLNP(无连接网络协议)具体实现,该协议负责在OSI网络中路由数据包,类似于IP协议在TCP/IP协议中的作用。
那么回到主题中,IS-IS是ISO定义的OSI协议栈中CLNS(Connectionless Network Service,无连接网络服务)的一部分。
CLNS由以下三个协议构成:
CLNP:类似于TCP/IP中的IP协议
IS—IS:一种链路状态路由协议,中间系统的路由协议(中间系统与中间系统的路由协议,即路由器与路由器之间的协议)
ES—IS:主机系统与中间系统间的协议,用于端系统(如主机)与中间系统(如路由器)之间的邻居发现和地址解析,就如同IP中的ARP,ICMP等。
那么为什么要设计出IS—IS这个路由协议呢?
在TCP/IP协议主导互联网之前,OSI模型曾是国际标准化组织(ISO)力推的网络架构框架。CLNS作为OSI网络层的核心服务,需要一种动态路由协议来支持其无连接的数据包传输。然而IS-IS在最初设计为CLNS的专用路由协议,用于在OSI网络中自动发现和维护路由信息,确保数据包能够高效、可靠地传输到目标地址。
关于IS-IS(中间系统到中间系统):
IS-IS是一种内部网关协议(IGP),用于在同一个自治系统(AS)内部交换路由信息。基于链路状态算法,通过交换链路状态信息(LSP)来构建网络拓扑图,并使用SPF(最短路径优先)算法计算到达目的网络的最优路径。
自治系统(AS):
一个由单一管理机构管理、使用统一路由策略的网络或网络集合。
大白话讲解:
IS-IS就像是一个“网络导航系统”,专门帮助路由器(网络中的交通指挥中心)找到数据传输的最佳线路。
邻居之间打招呼:
所有的路由器一开机,都会喊一嗓子:“嘿!我是新来的,谁在我旁边?”(发送Hello包)。附近的路由器听到后,就会互相记下对方的名字和位置,建立“邻居关系”。
实时播报路况:
每个路由器会定期的告诉邻居:“我这条路现在不堵?宽带多大?到哪里最近?”(发送LSP,链路状态报文)。这些信息就像是实时的路况广播,比如“从家到学校的道路畅通无阻,且限速50KM/H。
画全地图:
所有的路由器把收到的路况信息汇总,在脑子里拼成一张完整的“网络地图”。
如:路由器A知道:“去服务器群需要经过B—C—D”
路由器B知道:“如果A发来数据,直接转发就行”
算出最佳的路径:
当有数据要进行发送的时候,路由器就像是导航软件一样,根据“地图”算出最快的路径(SPF算法)如:A去B,优先高铁(低延迟)
如果高铁故障,自动切飞机🛩️(备用路线)
秒级更新线路:
如果某一条路突然断掉(比如光纤被挖),路由器会立刻通知全网“XX线路不通,绕行”其他的路由器收到消息后,1s内就能重新算出备用线路,保证数据不中断。(有几种路由协议都有其效果,可以私下查一查?)
其实根据上面的描述有很多的路由协议都会满足其功能,可能作为拓展去研究研究,我们后续也会有相应的讲解。
后续解释:
IS-IS简介:
其中的呼叫PDU(IIH)类似于OSPF中的Hello报文,不断的去更新当前路由的邻居状态,查看邻居是否发生变化
IS-IS路由器在通过链路状态PDU交换一些路由信息,来建立自己的链路状态数据库。一个LSP表示一个路由器相关的一些信息。同时,必须依赖于SNP(序列号报文)来确保LSP的可靠传输。
CSNP(无连接网络协议)包含网络中每一个LSP的总结性信息,当一个路由器收到一个CSNP时,该路由器会将该CSNP与其链路状态数据库进行比较,如果该路由器丢失了一个在CSNP中存在的LSP时,会发送一个组播PSNP,向网络中的其他路由器索要其需要的LSP
LSP和SNP的配合使用,使得IS-IS协议在大型网络中得以可靠的进行路由交互。
IS-IS协议同样使用了Dijkstra的最短路径优先算法(SPF)来计算拓扑。IS-IS根据链路状态数据库,并使用SPF算法得的拓扑结构,选择最优路由,再将路由加入到IP路由表中。
接下来我们再去认识一下集成IS-IS。
集成IS-IS:
定义:集成IS-IS是IS-IS协议的扩展版本,支持多种协议环境,特别是同时处理OSI(开放系统互连)模型的CLNS和TCP/IP协议栈的IP协议,就是对CLNS和IP协议的数据包。这种协议再电信运营商和大型企业网络中广泛应用,特别是在需要统一路由不同协议数据的双栈网络环境下。其工作在数据链路层,可以同时兼容IPV4、IPV6、CLNP。
AS(Autonomous System,自治系统):
AS是一个有权自主决定在本系统中应采用何种路由协议的小型单位。
TLV(Type/Length/Value,类型/长度/值)
TLV是一种可变格式,包括:Type(类型)、Length(长度)、Value(值)。其中:Type:定义标签和编码格式的信息。length:定义数值的长度。Value:表示实际的数值。
NSAP(Network Service Access Point,网路服务接入点):
关于NSAP(Network Service Access Point,网络服务接入点)地址在IS-IS(Intermediate System to Intermediata System)协议中扮演着至关重要的,它是IS-IS协议进行路由决策和数据包转发的关键标识。
NSAP地址是OSI模型中用于唯一标识网络层实体的地址,被用作路由标识,确保数据包能够正确地从源地址传输到目的地址。即NSAP是OSI网络层为传输层提供服务的位置。
作用:在IS-IS协议中主要用于构建网络拓扑图、计算最优路径以及路由数据包
IS-IS已作为一种内部网关协议(IGP)在网络中大量使用。其工作机制与OSPF类似,通过将网络划分成区域,区域内的路由器只管理区域内的路有信息,从而节省路由器的开销,此特点使其可以适应各种中大型网络需求。
由于IS-IS协议基础是CLNS,而不是IP,因此在路由器之间通讯时,IS-IS使用的是ISO定义的协议数据单元(PDU)
IS-IS中使用的PDU类型有:
呼叫PDU(类似于OSPF协议中的HELLO报文,负责形成路由器间的邻接关系,发现新路的邻居检测是否有邻居退出)
链路状态PDU(LSP)————一个LSP表示了一个路由器相关的重要信息。同时通过SNP来保证LSP的可靠性传送。
序列号PDU(SNP)
关于IS-IS的报文信息:
IIH:类似于OSPF中的Hello报文,发现、建立、维护邻接关系
细分类型:
Level-1 LAN IIH:在Level-1区域内的局域网(LAN)上发送,用于同一区域内的设备发现。
Level-2 LAN IIH:在Level-2区域内的局域网(LAN)上发送,用于不同区域间的设备发现。
Point-to-Point IIH:在点到点链路上发送,用于直接相连的设备间的邻居关系建立。
LSP(Link State PDU,链路状态报文):
用于确认接收到的LSP,并维护链路状态数据库的完整性。
细节分类:
功能:携带链路状态信息,如接口状态、链路成本,泛洪到整个区域,使所有路由器都能够获得一致的链路状态数据库。
泛洪(也可以称为洪泛):
泛洪:当一个设备向相邻设备通告自己的链路状态后,相邻设备在将相同的报文传送到除发送该报文的设备外的其他邻居,并这样逐级将报文传送到整个层次内所有设备。
特性:每个LSP都有一个序列号,用于确保信息的最新性,避免路由环路。
SNP(Sequence Number PDU,序列号报文):
功能:用于确认接收到的LSP,并维护链路状态数据库的完整性
细节类型:
CSNP(Complete Sequence Number PDU):携带整个链路状态数据库的摘要信息,用于数据库同步,确保所有路由器的数据库一致。PSNP(Partial Sequence Number PDU):携带部分链路状态数据库的摘要信息,用于请求缺失的LSP或确认接收到的LSP,提高网络效率。
关于IS-IS动态路由协议工作原理:
Level-1路由器:
负责区域内的路由器,只属于一个区域的Level-1和Level-2路由器形成邻居,注意这里是属于同一区域内,而处于不同区域内的Level-1路由器间不能形成领居关系。
Level-1只负责维护Level-1的LSDB(Link State Database,链路状态数据库),该LSDB含有本区域的路由信息,到本区域内外的报文转发给最近的Level-2路由器。
Level-2路由器:
负责区域间的路由,可以与同一或者不同区域的Level-2路由器或者其他区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。
所有Level-2级别的路由器组成路由域的骨干网。负责在不同区域间通信,路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。只有Level-2级别的路由器才能直接与区域外的路由器交换数据报文或路由信息。
Level-1-2路由器
同时属于Level-1与Level-2的路由器,可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。Level-1路由器必须通过Level-1-2路由器才能连通至其他区域。
Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。