基础通信学习之IS-IS路由技术
- IS-IS路由协议
IS-IS最早由国际标准化组织设计的用于实现基于无连接网络协议(Connectionless Network Protocol, CLNP)寻址的路由协议。
- IS-IS基本概念
IS-IS与OSPF有很多相似的地方。但与OSPF对比,主要有以下两个不同。
- IS-IS直接运行于链路层之上,通过传递协议数据单元(Protocol Dat a Unit, POU )来传递链路信息,完成链路数据库的同步。
IS-IS协议报文的格式如图,分为三部分。
- 数据链路层头。OSI Family 固定为OxFEFE, 表示封装的是OSI的报文结构。
- IS-IS固定报文头。第一字节为Ox83,表示 IS-IS的报文。
- IS-IS TLVs。具体内容因为报文类型的不同而不同,可以包含多个类型长度值(Type-Length-Value,TLV)结构。
- IS-IS协议报文采用TLV的格式,很容易扩展支持新的特性。
图中所示,TLV(Type-Length-Value)字段由类型(Type)、长度(Length)、值(Value)构成,也称为CLV(Code-Length-Value),实际上是一个数据结构,这个结构包括了类型、长度,值三个字段。其中类型字段有一个字节,是这个TLV结构的代码。长度字段描述的是值字段的字节数。值字段的长度是可变的,是TLV结构的具体内容,内容因为TLV类型的不同而不同。使用TLV结构来构建 报文的好处是灵活性和扩展性好。采用TLV,使得报文的整体结构是固定的。不同的只是TLV部分,而且在一个报文里可以使用多个TLV结构,TLV本身也可以嵌套。为了支持一项新的特性,只需要增加TLV结构类型即可.不需要改变整个报文结构。正是这种TLV的设计,IS-IS可以很容易地支持TE、1Pv6等新技术。
OSI和IP中的一些概念的对比如表
在上表中,NSAP相当于OSI的网络层协议 CLNP的地址(类似IP地址的概念)。地址格式如图。
整个NSAP地址由两大部分组成,包括域间部分(Inter Domain Part,IDP)和域内服务部分(Domain Specific Part,DSP)。IDP类似于TCP/IP地址中的主网络号,DSP类似于TCP/IP地址中子网络号 、主机号和端口号。DSP又分为路由域细节高序部分(High Order DSP, HODSP)、系统标识(System ID)和地址类型(NSAP Selector, NSEL)3部分。HODSP用于分割区域,类似于TCP/IP地址中的子网号。System ID用于区分主机,类似于 TCP/IP地址中的主机号。NSEL用于指示选定的服务相当于TCP/IP地址中的端口号,不同的传输协议对应不同的NSEL。在IP上,NSEL均为00。通常把IDP和DSP中的HODSP统称为区域地址(Area ID),区域地址部分为可变长度,范围为8~104位(1~13个字节)。
在OSPF协议中,路由器和区域分别是由Router ID和Area ID来标识的。在IS-IS中,对区域和路由器的标识是由网络实体名称(Network Entity Titles, NET)地址完成的。NET是一个特殊的NSAP地址,它的特殊体现在NSEL取值为00,如图所示。
同OSPF一样,IS-IS也采用分层路由域的设计,支持区域划分,但IS-IS区域的定义与OSPF有很大的差异。OSPF区域的边界是路由器,而IS-IS中区域的边界是链路。对于一台运行IS-IS的路由器而言,它只能属于一个区域。另外处于区域不同的位置也决定了路由器不同的角色分类,如图所示,Area49.0002包含三台路由器,其中两台路由器属于L1路由器,RTD属于Level-12路由器,它同时与 Area49.0001的Level-2路由器RTC相连。
- IS-IS工作原理
作为基于链路状态算法的路由协议,IS-IS的路由计算过程与OSPF基本类似,也是基于同步的链路状态数据库运行SPF算法计算出去往目的地的路由信息, 如图
- 邻接关系建立。相邻的路由器会形成IS-IS邻接关系。只有邻接关系建立好后,路由器之间才会交互各自知道的链路状态信息(IS-IS协议中的链路状态信息被称为LSP)。
- LSDB同步。邻接关系建立好后,每个 IS-IS路由器会把自己的LSP通告给自己的邻居,同时接收邻居通告给自己的LSP,也会把自己知道的其他路由器的LSP通告给邻居。每个路由器会保存自己收到的LSP,所有LSP的集合叫作LSDB(链路状态数据库)。
- SPF路由计算。LSDB同步后,每个IS-IS路由器以自己为根,运行SPF算法。运算的结果是以自己为根的一棵最短路径树。
- 路由表生成。根据SPF树,每台路由器就能计算出各自的路由信息,并添加到路由表。
上文已经提到,IS-IS报文是直接封装在数据链路层的帧结构中的。IS-IS的POU报文类型包括Hello报文、LSP报文、CSNP报文、PSNP报文。表中详细介绍了每种报文的作用。
通过上表可以发现,Hello报文用来建立和维护邻居关系,邻接关系是在邻居关系建立的基础上进一步建立的,邻接关系的形成机制因网络类型的不同而不同。两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。在不同类型的网络上,IS-IS的邻居建立方式并不相同,IS-IS定义了以下两种网络类型。
- 点到点网络。是指只把两台路由器直接相连的网络。常见的链路层协议有 PPP、 HDLC, 建议把NBMA网络配置成点到点网络。
- 广播型网络。是指支持两台以上路由器,并且具有广播能力的网络。常见的链路层协议有 Ethernet Token Ring 等。
IS-IS理论上不支持NBMA和点到多点网络类型,如果需要在NBMA 和点到多点的网络上部署IS-IS路由协议,可通过划分子接口的方式,把NBMA 和点到多点转化为多个点到点的网络类型。
在OSPF中,在广播网络类型中需要选择DR来减少邻接关系数量。在IS-IS中的广播网络中也有相应的概念,类似 OSPF DR 的路由器在IS-IS 中叫指定中间系统(Designated IS,DIS),但是DIS并不会减少广播型网络中的邻接关系数量,DIS的主要作用是通过产生伪节点来简化网络拓扑,进而减少LSP 报文泛洪的数量。
DIS选举规则有以下3点。
- 选举基于接口优先级。在一个 LAN 中,路由器根据接口优先级(默认是64,数值越大,优先级越高)来选举DIS。
- 如果所有接口的优先级一样,具有最大的链路层地址(Subnetwork Point of Attachment, SNPA) 的路由器将当选 DIS。在 LAN 中,SNPA指的是MAC地址。在帧中继网络中,SNPA是数据链路连接标识(local data link connection identifier, DLCI)。
- 如果SNPA是一样的,具有最大的System ID的路由器将当选为DIS。
不同层次有不同层次的DIS,即L1级的广播网选举L1级的DIS,L2级的广播网选举L2级的DIS。DIS发送的Hello报文的时间间隔为普通路由器的 1/3,这样便于其他路由器快速检测到DIS的失效,同时快速选举新的DIS来接替(因此与 OSPF中DR不同,IS-IS中DIS默认是具有抢占性的)。
- IS-IS故障案例分析
同 OSPF 协议类似,在IS-IS的配置过程中,最常见的故障是两台相邻路由器不能正确建立邻居关系,而邻居关系建立是路由学习的基础。本小节以 IS-IS 邻居关系建立故障排除为例,介绍 IS-IS 配置过程中常见故障的处理方法和思路。 典型的组网拓扑如图所示。
正常情况下,AR和CR会有两个邻居BR1和BR2,但在本案例中却发现CR上的邻居建立正常,但是无法学习到AR的路由。针对于IS-IS邻居无法建立的故障, 可以检查以下配置。
- 检查接口状态是否为UP。
- 检查 System ID配置是否正确。
- 检查邻居两端Level是否匹配。
- 检查邻居两端是否在同一Area。
- 检查邻居两端是否在同一网段。
- 检查路由器上是否配置了相同的接口认证方式和密码。
- 检查邻居两端Hello报文是否正常收发。
经过排查,故障原因为AR路由器上配置了接口认证,导致无法和BR1 BR2 建立邻居关系。本节主要介绍了IS-IS 的基本工作原理,其中非常重要的一个前提是形成邻接关系,而邻接关系正常建立的前提是形成邻居关系。










浙公网安备 33010602011771号