IS-IS 路由协议中文教程 v1.0
Chapter 0 Preface
(第零单元 序言)
Statement(说明)
本文实际上是思科 BSCI(Building Scalable Cisco Internetworks)一书中第七单元
(Configuring IS-IS Protocol)的读书笔记,目前有关 IS-IS 的中文资料较少,故整理此笔记
以方便那些英文水平一般的网络技术工作者学习,因为本人也系 IS-IS 路由协议的初学者,
故文中可能存在一些由于理解偏差而导致的错误,恳请朋友们不吝赐教。
为了便于大家理解,本文在讲述 OSI 协议时将尽可能的将其与大家所熟知的 TCP/IP 协
议进行比照,在讲述 IS-IS 路由协议时则尽可能的将其与 OSPF 路由协议进行比照,这也是
Cisco System BSCI Student Guide 一书中所采用的方法。
本文可自由传播和使用,但请保留作者信息,请尊重我的劳动,谢谢!
Outline(提纲)
1、 OSI 协议和 IS-IS 路由协议简介
2、 IS-IS 路由协议工作原理
3、 通过集成的 IS-IS 路由协议实现 IP 与 OSI 协议的路由
4、 集成的 IS-IS 路由协议配置与排故
About author(关于作者)
Climber(登峰)from Changchun City,Jilin Prov.
Surf on the net for six years,Wander regularly in the cisco forum of netease
Discussion is welcome! e-mail:
or
Deeply appreciated my secretary for her help! ☺☺☺☺☺☺☺☺☺☺
—1—
Chapter 1 Introduction to OSI Protocol
(第一单元 OSI 协议简介)
ISO 与 OSI
ISO(International Organization for Standardization)国际标准化组织一直致力于各领域的国
际标准的制定,大家所熟知的 OSI(Open System Interconnection)七层网络模型就是 ISO 针
对多厂商网络产品互联时的兼容性问题制定的网络通讯协议标准,现今的互联网基于
TCP/IP 协议构建,而 TCP/IP 协议和其它的用于开放式网络的协议一样,都是基于 OSI 网络
模型构建的。
ISO 除了构建了 OSI 七层网络模型这一标准外,还同 ITU-T(国际电信联盟电信标准组)构
想和实现了一个同样名为 OSI 的具体的网络协议。可惜在这个 TCP/IP 协议一统天下的时代,
OSI 网络协议基本没有应用。
同 TCP/IP 协议相似,OSI 协议并不是原子的,它的每一层中都包含许多有着特定功能的子
协议,OSI 协议采用体系化(或层次化 Hierarchical)编址,我们能过 NSAP(Network Service
Access Point)来寻址 OSI 网络中处于传输层的各种服务,它类似于 TCP/IP 协议中的 IP 地
址+端口号。
下面我们来了解一些术语:
ES(End system)端系统,没有路由能力(称“数据包转发能力”更恰当)的网络节点。
IS(Intermediate System)中间系统,有数据包转发能力的网络节点,即路由器。
Area 区域,由一组连续的路由器、主机和连接它们的网络链路组成的实体。
Domain 域,由一组相互连接的 Area 组成。
(呵呵,还是英文讲得好,Area 和 Domain 翻成中文我都不知道怎么区分了,注意:后面的
叙述中,我用区域代表 Area,用域代表 Domain)
其实这里面 Domain 相当于传统的自治系统了,Area 与 OSPF 的 Area 相似(注意是相似),
ES 就是主机,大家知道路由一般没主机什么事,这里也是一样的,ES 与 IS 之间关系很简
单。
—2—
不用我说你也知道这个 illustrate 是什么了吧?什么?太复杂了?没关系,其实接下来我们只
会讲到网络层里面的一点东西,ONLY the portion around with red block,踏实了吧!
还是几个术语:
CLNS Connectionless Network Service 无连接网络服务
CLNP Connectionless Network Protocol 无连接网络协议
CMNS Connection-Mode Network Service 连接模式网络服务
CONP Connection-Oriented Network Protocol 面向连接网络协议
想想 TCP/IP 协议,有点懂了吧?前两个相当于 TCP,后两个相当于 UDP,OSI 就是通过
CLNP 实现 CLNS,通过 CONP 实现 CMNS,呵呵,有点绕嘴。
再看看图,又有点晕,画错了?没有,OSI 就是在网络层实现的这两种服务,这样来说,CLNP
相当于 IP 了,CONP 就相当于可靠的 IP 吧,呵呵。
如果你不知道什么是面向连接,什么是无连接,最好停下来先去看看 TCP/IP 的知识。
好了,现在你又可以忘掉一些东西了,我们下面要讲的东西只和 CLNP 有关,没错,只有
CLNP 在交换数据时依赖 routing protocols 构建的路由表,CONP 依靠 X.25 协议的中继功能
实现链路的建立、保持与终止。
OK,休息一会儿,吸烟的去天台,喝水的到地下室,去 John 家的打开窗户跳下去就可以了!
—3—
Chapter 2 Basic IS-IS Routing Protocol
(第二单元 基本的 IS-IS 路由协议)
IS-IS 路由协议中的路由信息分为四级:
1、Level-0 存在于 ES 与 IS 之间,准确的讲不算路由协议,我们可以称它为 Discovery Protocol
发现协议,类似于 TCP/IP 网络中的 ARP 地址解释协议。
2、Level-1 存在于同一区域内的多台路由器之间,用于实现区域内路由,类似于 OSPF 的域
内路由(O)。
3、Level-2 存在于同一域内的多台路由器之间,用于实现域内路由,类似于 OSPF 的域间路
由(O IA)。
4、Level-3 存在于不同的域之间,类似于 TCP/IP 网络中由 BGP 实现的 AS 间路由。
后面的部分我们会重点介绍 Level-1 和 Level-2。
OSI 网络中可以采用的三种路由协议:
1、IS-IS,本文的核心内容,它除了为 OSI 协议构建路由表外,还可以为 TCP/IP 协议构建
路由表,当然也可以工作于 Dual Mode,同时为两种网络协议提供服务。
2、ISO-IGRP,是思科为 CLNS(即 OSI 协议,以下皆是,因为 OSI 协议中的 CLNS 应用路
由表转发数据。)设计的路由协议。
3、Static CLNS routes,OSI 的静态路由,TCP/IP 的 Static route 经常写吧?很少用?那你应
该已经或是即将通过 LAB 了吧。
下面我们来比较一下集成的 IS-IS 与 OSPF
IS-IS 与 OSPF 都是链路状态型路由选择协议,均采用 SPF 算法来构建路由表,但是就 TCP/IP
路由而言,在大的网络环境中 IS-IS 的性能优于 OSPF,这也正是大多数的 ISP 都采用 IS-IS
而不是 OSPF 作为骨干路由协议的原因,所以,快学吧。
OSPF 路由协议区域的分界点在路由器之上,ABR 同时属于多个区域,IS-IS 路由协议的区
域分界点在链路之上,每个路由器固定属于某一区域。
OSPF 路由协议在多区域的环境下要有 Backbone(骨干)区域,且要求所有非骨干区域与骨
干区域直接相连(否则要通过 Virtual-Link 打补丁),IS-IS 在设计上没有这一要求。
OSPF 路由协议中 LSA(链路状态通告)数据包较多,IS-IS 路由协议中每个路由器在区域
内只发送一个 LSA 数据包。
OSPF 有一些 IS-IS 所不具备的特性:标记路由,末节区域、和 Demand Circuit 等。
OSI Address(OSI 编址)
—4—
还记得前面提过一句的 NSAP 吧,它就是 OSI 协议中用于定位资源的地址,老实说,我第
一次看这本 Student Guide 的时候,看到这就休息了,后来发现比想像中的简单得多。So,
Go ahead,don’t give it up!
NSAP(Network Service Access Point)地址格式
好了,现在你需要的只是一点耐心。
整个 NSAP 地址由两大部分组成:
IDP(Inter-Domain Portion)域间部分,相当于 TCP/IP 地址中的主网络号。
DSP(Domain Service Portion)域内服务标识部分,相当于 TCP/IP 地址中的子网号,主机号
外加端口号。
IDP 由两部分组成:
AFI(Authority and Format ID)机构与格式 ID 用来表示地址格式或地址分配机构。
IDI(Inter-Domain ID)域间 ID 用来标识域。
DSP 由三部分组成:
HODSP(High Order DSP)DSP 高位,用来分割区域,相当于 TCP/IP 地址中的子网部分。
SID(System ID)系统 ID,用来区分主机,相当于 TCP/IP 地址中的主机部分。
HSEL(NSAP-Selector)NSAP 标识,用来指示选定的服务,相当于 TCP/IP 地址中的端口号。
ISO-IGRP 路由采用三层体系:域(IDP,第三级),区域(HODSP,第二级)和系统 ID(System
ID 第一级)。
IS-IS 要简单些,采用二层体系:区域 ID(IDP+HODSP,第二级)和系统 ID(System ID 第
一级)。
不难吧?难的在后面呢,呵呵。
现在我们来看一下 NSAP 地址中各部分的长度。
对于 Cisco IS-IS 路由协议,NSEL 固定为一个字节,系统 ID 固定为 6 个字节,区域地址长
度可由 1-13 字节构成,所以整个 NSAP 地址总长度为 8-20 字节。
对于 Cisco ISO-IGRP 路由协议,Area ID 被分为 Domain ID 和 Area ID 两部分,Area ID 为 2
个字节,Domain ID 最少一个字节,所以 NSAP 地址总长度为 10-20 字节。
—5—
NET(Network Entity Title)网络实体标识
容易理解,网络寻址是基于主机的,所以没有必要将 NSEL 包括中路由信息中,故此我们在
交换路由信息时将 NSEL 固定为 00,这样的 NSAP 表示设备自身,我们称之为 NET。
AFI=49 的地址为 OSI 协议的私有地址,像 TCP/IP 中的 10.0.0.0,172.16.0.0-172.31.0.0 和
192.168.0.0,后面的实验中通常使用这样的地址。如果你只想通过 IS-IS 实现 IP 路由,用这
个前缀就可以了。
AFI=39 表示 ISO 数据国家代码。
AFI=47 表示 ISO 国际代码指定
NET 地址必须以 00 结尾,且必须为整字节(偶数个十六进制数),中间以 dot 分隔。
System ID 通常由 MAC 地址构成或由 IP 地址转换而来。
Domain ID 和 Area ID 则通常在全网内统一指定。
例子 1:NSAP=47.0001.aaaa.bbbb.cccc.00
IS-IS: Area = 47.0001, System ID = aaaa.bbbb.cccc, NSEL = 00
ISO-IGRP: Domain = 47 Area = 0001, System ID = aaaa.bbbb.cccc, NSEL = 00
例子 2:NSAP=39.0f01.0002.0000.0c00.1111.00
IS-IS: Area = 39.0f01.0002, Sysem ID = 0000.0c00.1111, NSEL = 00
ISO-IGRP: Domain= 39.0f01 Area = 0002, System ID = 0000.0c00.1111, NSEL = 00
注意:分段的时候要从后向前数。
几条定址规则:
1、位于同一区域内的路由器 Area ID 必须相同。
2、ES 只能与具有相同 Area ID 的 IS 进行通讯。
3、同一区域内的 Level-1 IS 为了彼此区分必须有惟一的 System ID。(建议整个域内所有 IS
都有惟一的 System ID)
4、整个域内所有 Level-2 IS 为了彼此区分必须有惟一的 System ID。
5、包交换网络中,虚电路号或 DLCI 号码经常加在 System ID 的后面构成 LAN ID,这主要
是为了防止同时属于多个 Area 的 IS 在不同的 Area 中有相同的 System ID。
6、如果系统检测到 System ID 重复,将会报告以下错误:
IS-IS: possible duplicate system ID <sys_id> detected
IS-IS PDU-Protocol Data Unit(IS-IS 路由协议中的协议数据单元)
1、Hello PDU,包括 ESH(ES 发至 IS),ISH(IS 发至 ES),IIH(IS 之间)三种类型,用
于建立和维护毗邻关系。
2、LSP,Link-state Packet,用于发布链路状态信息。注意它是数据链路层数据包,不依赖
于其它协议传递,但同时也意味着只能在直接相连的路由器之间传递。
—6—