前言
与OSPF一样,IS-IS也是一种基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议。IS-IS最初是国际化标准组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。
为了提供对IP的路由支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,修订后的IS-IS协议被称为集成化的IS-IS。由于IS-IS的简便性及扩展性强的特点,目前在大型ISP的网络中被广泛地部署。
- OSPF:区域多样、策略多变、调度精细,更加适合网络环境比较复杂的场景,比如园区网等;
- ISIS:区域扁平、收敛极快、承载庞大,更加适合骨干网等扁平化网络的部署。
基本点 | OSPF协议 |
ISIS协议 |
---|---|---|
运行环境 | IP环境 | IP环境、CLNP环境 |
报文封装 | 封装在IP报文,协议号为89 | 封装在链路层数据帧中,安全性相对高一些 |
一、IS-IS的基本原理
TCP/IP协议栈 |
IP协议 |
IP地址 |
OSPF |
Area ID+Router ID |
OSI系统 |
CLNP协议 |
NSAP地址 |
IS-IS |
NET标识符 |
1、NSAP地址结构
NSAP地址(CLNP中的IP地址),NET是一类特殊的NSAP(SEL=00,运用在IP协议之上的),在路由器上配置IS-IS时,只需默认使用NET地址。
SEL(1 Byte) |
00,即为NET地址 |
System ID(6 Byte) |
作为设备的标识,相当于OSPF设备的router id |
Area ID(1 ~ 13 Byte) |
表明该设备处于哪个区域 |
NET地址,书写例如:
NET地址:49.0001.0000.0000.0001.00
PS:NET地址最多可以配置3个,但必须保证System ID一致;
注意!!!,我接下可能所提到的BA均指骨干区域(Backbone Area),而NBA均指非骨干区域(Non-Backbone Area)。
2、路由器类型
(1)level-1:工作在NBA的设备,只存在本区域的LSDB;
只存在本area的LSDB,意味着level-1的设备只能和处于相同area ID的设备建立邻居
(2)level-2:工作在BA的设备,存在所有区域的LSDB;
(3)level-1-2(默认类型):既工作在BR,又工作在NBR的设备;既能和level-1建立邻接关系,也能和level-2建立邻接关系;
level-1设备在收到了level-1-2设备的ATT置位为1的LSP报文后,就可以创建一条通往目的地为Level-1-2设备的缺省路由。
ATT置位为1需要满足以下条件:
1)下发的设备必须是level-1-2;
2)若level-1-2是与level-1建立邻居关系,那area ID必须要一致;(因为level-1不能直接与其他区域号的设备协商成为邻居)
3)若level-1-2是与level-2建立邻居关系,那area ID必须不一致;(level1-2已经和level-1同区域了,那level-2区域号就不能和level-1-2一样了)
3、区域
- 骨干区域(连接着非骨干区域):
(1)由level-2设备、level-1-2设备组成,划分区域只看ISIS的设备类型;
(2)建立邻居时area ID可以不一致;
(3)存在所有区域的LSDB;
- 非骨干区域:
(1)只存在本区域内的LSDB;
(2)由level-1设备、level-1-2设备组成;
(3)需通过level-1-2设备下发的默认路由来访问其他区域设备;
二、ISIS的工作过程
(1)建立邻居
① MA: 只通过三次握手建立邻居,,时序图如下。
上图是MA三次握手过程(与OSPF的邻居建立几乎一模一样):
1)设备收到了hello报文,其中hello报文没有携带本设备为邻居的信息,进入initialized的状态;
2)设备收到了hello报文,其中hello报文携带本设备为邻居的信息,进入UP的状态;
② P2P:有两次握手和三次握手这两种建立过程(默认采用三次握手),如下图。
两次握手下,设备只要收到了hello报文就进入UP的状态。
(2)同步LSDB(链路状态数据库)
同步LSDB(链路状态数据库)分两种情况:P2P网络类型和MA网络类型,时序图如下。
选举DIS规则:
(1)比较优先级priority,范围:0-127,默认priority为64,越大越优;
(2)比较接口MAC地址,越大越优;
三、ISIS报文类型
特点:报文结构为TLV结构(T=type,L=length,V=value),提高了扩展性;
!!!接下讲到的“IIH”指的是 “IS-IS Hello”报文!!!
(1)hello报文
①P2P IIH:周期10S发送,超时时间为30S;
②LAN IIH:周期10S发送,超时时间为30S(其中,若进行DIS选举,则周期3.3S(1/3),超时时间10S);
区别:
1)P2P中用来表明邻居是使用system ID,MA中表明邻居是使用MAC地址;
2)MA中多了优先级、DIS的字段;
3)MA中存在很多padding(填充,没有含义)字段;
4)MA中发送hello报文组播发送;(组播地址:Level-1:0180-C200-0014、 Level-2:0180-C200-0015)
(2)CSNP报文:用来携带链路信息的摘要(类似于OSPF的DD报文);
链路信息的摘要:
LSP标识符:
伪节点(标识符非00):DIS。
实节点(标识符00):真实存在的设备。
①LSP-ID:system ID + LSP标识符 + 分片标识符;
②序列号:范围0x00000000-0xFFFFFFFF。
③校验和:保证数据的完整性,也可用于表明LSP的新旧;
④lifetime:生存时间,周期更新900s,超时时间1200s;倒数计算;
比较LSP的新旧: sequence number--->checksum--->lifetime(类似于ospf的LSA报文新旧判断)
(3)PSNP报文:用来请求、确认链路信息(分别类似于OSPF的LSR、LS ACK报文);
①实节点LSP:伪节点标识符部分为00,类似于OSPF中的1类LSA,运行ISIS协议的设备都会产生;
②伪节点LSP:伪节点标识符部分为非00,类似于OSPF中的2类LSA,只有DIS才会产生;
四、ISIS相关配置
1、IS-IS协议基本配置
给设备开启isis进程并配置基本信息,并对每个接口启用isis进程,配置如下:
isis 1 //进入到ISIS的进程(缺省进程为:1)
is-level level-1 //设置ISIS的路由器类型(缺省类型:level-1-2)
network-entity 49.0001.0000.0000.0001.00 //设置设备的NET地址
interface GigabitEthernet0/0/0 //进入需要启用ISIS协议的接口的视图中
isis enable 1 //enable启用isis进程1,将该接口宣告进ISIS中
检查配置信息的命令跟OSPF差不多,配置如下:
display isis interface //查看所有已启用isis的接口的信息
display isis peer //查看isis设备的邻居信息
dis isis lsdb //查看isis设备的LSDB(链路信息数据库)
2、IS-IS协议DIS优先级修改方式
配置如下:
[R4]interface G0/0/0
[R4-GigabitEthernet0/0/0]isis dis-priority 120 //DIS优先级来保证其成为DIS(priority越大越优)
[R4]display isis interface //可以查看接口DIS优先级、DIS选举情况
我们要知道 广播网络下建立邻居,需要选举DIS,默认情况下DIS优先级都为64,如果优先级相同,MAC地址大的接口将成为DIS,而我们希望选举更为清晰,因此通过修改R4的DIS优先级来人为控制DIS的选举。
3、IS-IS协议网络类型修改方式
广播网络中,IS-IS默认情况下会将接口的circuit-type(即网络类型)设置为广播模式,并参与DIS的选举。
但在拓扑中以太网中只有两台路由器,我们可以将这两台路由器之间的互联接口设置为点到点模式,进行优化。
配置如下:
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]isis circuit-type p2p //默认为MA
[R1-GigabitEthernet0/0/0]quit
修改circuit-type过程中,邻居会重新建立,Circuit Id会改变格式,如上图。
4、IS-IS协议外部路由引入
配置:
isis 1
import-route ?
//import-route direct level-2(简单的引入直连路由)
//import-route isis level-1 into level-2(路由渗透)
5、IS-IS接口cost修改方式
(1)ISIS默认开销:10;
(2)根据带宽计算,只针对本设备有效;修改相应的cost值可以控制等价路由的选通。
默认情况下,IS-IS接口cost值为10,不会基于带宽自动计算,比如:对于R1来说,它去往R4的流量能在R2和R3上负载均衡,但由于R1和R2之间使用Series接口,带宽较小,容易出现瓶颈,因此可以通过修改相应的cost值来控制R1的选路。
配置:
①接口视图下:
[R1]interface Serial 1/0/0
[R1-Serial1/0/0]isis cost 15
[R1-Serial1/0/0]quit
isis 1
auto-cost enable 10
6、IS-IS路由渗透配置方式
作用:防止次优路径;使level-1设备学习到level-2设备的明细路由,根据最长掩码匹配原则,可选择最优的访问路径;
配置:
isis 1
import-route isis level-2 into level-1
PS:可以通过tracert测试验证路由渗透对IS-IS选路效果的影响。
五、ISIS与OSPF的区别
(1)基本点比较
- OSPF支持区域:骨干区域、普通区域和特殊区域,区域的划分更加有层次,适合企业网层次化部署;
- ISIS支持区域: L2和L1的区域(L1的区域类似OSPF的特殊区域),更加适合运营商做扁平化网络部署。
(2)邻接关系比较
(3) LSDB同步过程比较
(4) 路由计算过程比较
OSPF路由计算(路由控制更加精细):
- 区域内使用SPF算法,
- 区域间进行3LSA传递,
- 外部路由以5LSA形式在OSPF域内泛洪特殊区域采用缺省LSA的形式进行访问
ISIS路由计算:
- 1、L1/L2的路由器访问自身区域使用SPF算法,根据自身产生的路由器LSP计算,以及伪节点LSP进行广播型网络路由的计算
- 2、L1的路由器访问其他区域的路由,使用L1/2路由器产生的ATT位置1的LSP,生成一条下一跳指向L1/2路由器的缺省路由访问其他区域路由
- 3、L2的路由器访问其他区域的路由时,L1/2路由器会将明细下发进L2的LSDB中。
(5)特性及可扩展性比较