五、is-is
(一)CLNS及CLNP
1、iso\osi模型定义了两种数据通信服务类型:CONS(面向连接的网络服务)和CLNS(无连接网络服务)。
iso\osi是一种网络模型
2、CONS:面向连接的网络服务。CONP连接的网络协议,用来支持CONS服务。但现在CLNS已经取代了CONS服务。
3、CLNS:由CLNP协议支持。CLNP无连接网络协议,专为CLNS提供支持的网络协议。有时直接叫CLNS协议。
(1) clnp:类似于IP协议,但CLNP是OSI模型中的网络层协议,为OSI的传输层提供服务。
IP协议:是TCP\IP模型的网络层协议。 注意:OSI协议是国际标准的模型。TCP/IP是现在目前internet标准协议。是两个不同的协议。
(2)is-is是osi协议中的动态链路协议,后来扩展到同时支持tcp\ip协议。 ospf是 tcp/ip下的动态链路协议。
4、ES和IS
(1)ES:终端系统。IS-IS协议中如主机、服务器等被表示为终端系统。
(2)IS:中间系统。IS-IS协议中,路由器为中间系统。
ES-IS:主机等终端系统与路由器(中间系统)的通信协议。不属于路由协议。用于ES和IS间建立邻接关系,用于数据链路地址到网络地址间的映射。类似于TCP/IP协议中的MAC到IP地址的映射。
IS-IS:路由器到路由器之间的通信协议。
总结: osi模型下的无连接网络服务(CLNS)的网络层协议是CLNP。 动态链路协议(路由协议)是IS-IS。
IS-IS协议中又有:ES-IS和IS-IS通信协议。
(二)IS-IS路由选择的特点
1、是链路状态路由协议
2、在集成的IS-IS中可以支持VLSM-无分类路由协议
3、使用SPF算法计算最佳路由、而且可触发更新,可快速收敛。
4、路由汇总及重分发
5、有效利用带宽及处理器
(三)IS-IS路由器种类
1、 IS-IS分两级路由体系
(1)第一级:即区域内路由,用于区域内路由。IS-IS叫level1级区域或叫l1区域。
(2)第二级:区域间路由。在区域间交换链路状态信息。IS-IS叫level2级区域或叫l2区域。
2、OSI定义的4级路由层次:
(1)level-0路由选择:存在于ES与IS之间。准确讲不算路由协议。类似于TCP/IP中的ARP协议。
任务:在ES和IS之间建立邻接关系
创建数据链路地址到网络地址的映射。类似于TCP/IP中的MAC地址到IP地址的映射
ES要将分组发送给另一个ES时,将分组发送给与其连接的区域中的任一个IS,这被称为L0路由。
(2)Level-1路由选择:存在于同一区域内的多台路由器之间,用于实现区域内路由。在同一区域内通信。
(3)Level-2路由选择:在区域间进行路由。在同一个域内的多个域间进行路由。
(4)Level-1路由选择:域间路由选择。类似于IP中的BGP协议。在不同的域中路由分组。一个域相当于一个自治系统AS。用IDRP协议来完成这种功能。
3、IS-IS路由器种类:
(1)L1路由器:区域内路由器。通过获取的LSP获得所在区域内的路由。即只负责本区域内路由,获悉所在区域内的路径。属于L1级区域。
(2)L2路由器:区域间路由器。L2路由器只能属于L2区域。类似于OSPF骨干区域中的路由器。不属于L1级区域。
(3)L1/L2路由器:属于L1区域,同时和L2路由器相连。同时维护本区域内和区域间路由信息。用于普通区域和骨干区域之间的连接。类似于OSPF的ABR路由器,但不会把L2路由器即区域外的路由信息转发到L1区域内。
L1和L1/L2路由器组成一级区域,即L1区域。 l2路由器和l1/L2路由器之间组成二级区域,即L2区域。但L1/L2路由器属于L1级区域
IS-IS中不存在骨干区域和常规区域的概念。但L2级区域,类似于骨干区域。
ospf中的路由器可以同时身兼数职(如可同时是ABR路由器、ASBR路由器),也可以同时属于多个区域,但IS-IS中的路由器只能属于一个区域。
(四)CLNS编址
1、NSAP地址(也叫CLNS地址、CLNP地址)
IDP
|
DSP
|
|||
AFI
|
IDI
|
High-Order
DSP
|
System
ID
|
NSEL
|
Variable-Length
Area
Address(高位)
|
6
Bytes
|
1
Byte
|
||
2、SNPA:子网连接点
提供子网服务的点。SNPA是OSI协议的第二层地址。相当于TCP/IP中的数据链路层,如:MAC地址。X.25,ATM中的虚电路ID,帧中继中的DLCI。
3、电路:IS-IS中用用CLNS地址(也叫NSAP地址)来标识整个设备。电路ID来区分设备的不同接口。电路相当于接口。
(六) IS-IS PDU
1、IS-IS 头格式
数据链路层报头 PDU特有报头 TLVS
数据链路层报头:都一样。不管是什么PDU,数据链路层报头都是一样的
PDU特有报头:不同的协议会有不同的报头。如:IS-IS报头;ES-IS报头;CLNP报头。
2、IS-IS PDU报头,即下图中三种报头。
IS-IS
|
Data-link
header
(OSI family 0xFEFE)
|
IS-IS
header
(first byte is 0x83)
|
IS-IS
TLVs
|
ES-IS
|
Data-link
header
(OSI family
0xFEFE)
|
ES-IS
header
(first byte
is 0x82)
|
ES-IS TLVs
|
|
Data-link
header
(OSI family
0xFEFE)
|
IS-IS
header
(first byte
is 0x81)
|
CLNS
|
3、IS-IS PDU种类
(1)hello PDU:用于建立和维护邻接关系。有ESH\ISH\IIH三种HELLO PDU。
(2)link state PDU(lsp):链路状态PDU :用于分发链路状态信息。类似于OSPF的LSA一个意思。
(3)PSNP:部分序列PDU,用于确认和请求链路状态
(4)CSNP:完整序列号PDU,用于描述路由器的LSDB中的完整LSDB表。用于发布完整的链路状态数据库。
IS-IS PDU: 是由 数据链路层报头+IS-IS PDU报头+TLVS组成。
而IS-IS PDU报头又分为 is-is报头,ES-IS报头;CLNP报头。
而每一种IS-IS PDU报头又分为:hello pdu, lsp, psnp ,csnp报头种类。如: is-is报头会有 is-is hello pdu ; is-is lsp pdu 。
也会有 es-is 的hello pdu, es-is 的lsp pdU.
(七)拓扑结构
1、广播网络:是LAN接口或多点WAN接口。
(1)分别建 立L1和L2邻接关系。L1只与L1建 立邻 接关系; L2只与L2建立邻接关系; L1/L2要分别与L1和L2建 立两种邻接关系。
(2)DIS:广播网络中,选出一台DIS路由器,并由DIS路由器生成一个伪节点,与区域内的同等级的路由器建立邻接关系,并互相通告邻接关系。
选举DIS的方法:路由器接口优先级最高的作为DIS。优先级相同时,SNPA地址最大的成为DIS。
DIS的种类:L1 DIS和 L2 dis。 即不同区域层次拥有不同的DIS。一个路由器可以同时作为L1 和L2 级DIS。因为同一个接口的L1和L2优先级可以不同。
注意点:虽然IS-IS中同区域中的每台路由器都与相邻路由器之间有邻接关系;但不会让区域中每台由器器都相互通告邻接关系。
2、点到点网络
3、链路状态数据库同步和邻接关系
SNP:序列号PDU:分为CSNP和PSNP。用来确认LSP已收到和确保LSDB同步。
CSNP和PSNP的格式完全相同,都包含LSP信息。CSNP包含LSDB中的所有LSP信息。而PSNP只包含部分,PSNP用来请求和确认LSP,以及传送部分LSP。
(1)广播网之LSDB同步
A:在广播网中(LAN),只有DIS定期多播发送(10S)CSNP,列出其LSDB中保存的LSP。
B:与DIS相邻的路由器收到DIS发送的CSNP后,把CSNP中包含的LSDB LSP与自已的LSDB相比较。同区域内的L1级路由器接受L1 DIS 的CSNP。L2级路由器接受L2 DIS 的CSNP。
C:比较后看自已的LSDB是否与DIS的CSNP相同,如果不同时,路由器向DIS发送一个PSNP,以请求遗漏的LSP。 DIS再向请求路由器发送一个应答PSNP,并把遗漏LSP发送给请求路由器
(2)点到点网络之LSDB同步
A:点到点链路不定期发送CSNP。CSNP只在点到点链路激活时被发送一次
B:链路发生改变时,发生改变的路由器向点对点对方路由器发送PSNP。以把变化的LSP发送给对方
C:对方路由器收到PSNP后,把变化的LSP加进自已的LSDB后,发回一个PSNP确认信息。
(3)广播网之邻接关系
IIH PDU 通告区域ID,在LAN中,用不同的IIH分组分别通告L1和L2邻接路由器。
A: 同一个区域内的L1 、 L1/L2路由器只接受所在区域的L1 IIH PDU。因此只与本区域内的路由器建立一个邻接关系。
B:L2路由器和L1/L2路由器的L2进程,只接L2 IIH PDU,且建 立L2邻接关系。
(4)点到点网络之邻接关系
A:在点到点链路上,L1和L2 IIH PDU的格式相同,但HELLO分组指出了级别和区域ID
B:在同一个区域内,L1路由器(包括L1和L1/L2路由器之间的链路)之间交换IIH PDU。 指定级别为L1。 并建 立邻接关系。
C:L2路由器(包括相同区域,和相同域但不同区域的L2路由器)之间建 立L2邻接关系
D:相同区域内的两台L1/L2路由器,同时建立L1和L2邻接关系。
E:两台相连,但不在同一区域内的L1路由器可以交换IIH, 但不建 立邻接关系。因为区域ID不同。
(八)IS-IS和OSPF的区别
1、相同点:
都是链路状态路由协议
都技持VLSM,都使用SPF路径算法
都成功应用于ISP
都快速会聚。
2、不同点:
(1)is-is适用于运营商 ,OSPF适用于企业。
IS-IS不灵活,大多要手动的分配接口开销,不适合企业使用但对运营商来说不是太大的问题,因为运营商考虑更多的是路由策略的实施控制,所以相对于OSPF的自动metric生成,他们更倾向于手工配置,运营商的核心网通常都使用IS-IS
(2)区域设计:
OSPF采用一个主干区域,其他所有区域都与主干区域相连。OSPF对设计有一定的限制。需要采用一对致的编址结构,以便 能将地址汇总到主干。
IS-IS,采用L1 , L1\L2 ,L2 路由器级成的层次结构。区域边界不在路由器上,在链路上。穹使用的LSP少得多。(IS-IS的LSP和OSPF的LSA差不多的意思)。在同一区域中可容纳的路由器更多。可扩展性比OSPF好。IS-IS只需要添加L2或L1\L2路由器即可以扩展主干 。这比OSPF简单。
(3)
(九)IP和CLNS环境中集成IS-IS原理
CLNS原只支持OSI模型,现集成为支持IP。
1、集成IS-IS NET编址
即使只使用集成IS-IS的IP路由选择功能,每台IS-IS路由器也必须配一个NET地址。因为集成IS-IS依赖于CLNS路由选择支持。
在集成IS-IS中,每台路由器都有唯一的NET地址来标识整个路由器,并用NET地址来计算SPF路径树。IP前缀是主机的信息,不参与SPF路径树的计算。
在集成IS-IS中,用NET地址标识整个路由器,而不是标识路由器上的某一个接口。而在实际IP编址时,确保路由器的每个接口属于不同的子网。ip子网被视为与IS-IS区域相关联的树叶对象。
2、IS-IS区域路由选择的准则和路由选择表
IS-IS使用的路由算法是SPF+PRC(部分路由计算)
IS-IS根据CLNS协议的LSDB表算出SPF树(L1级和L2级都有自已的LSDB表,并分别算出SPF树)。将最佳路由插入到CLNS路由选择表中。
IS-ES之间,即一个IS和连接的IP子网之间用IP路由计算出是否可达。即部分路由计算。
注:
IS-IS使用OSI路由选择表,即CLNS路由选择表选择到达目的最佳路径。而不是IP路由选择表。
IS-IS用CLNS协议的LSDB计算到目的地的SPF树。每条路径的总链路度量值决定了到目的地的最短路径。
L1和L2路由器有不同的LSDB,因此路由器运行SPF两次,分别外地对L1级和L2级。并分别为L1和L2创建 独立的SPF树
因为IP不参与SPF树计算,只通过CLNS计算,所以当一个IS连接的IP子网出现故障时,即树叶IP子网出现故障时,SPF对不受影向,不重新计算。只通过部分路由计算是否可达。
如果出现故障的IP子网不是树叶子网时,而 是干道时,将扩散到整个网络中。
(十)配置:
1、定义区域和地址,并启用is-is路由
在配置集成IS-IS前,必须将区域绘 制成图,并制定编址方案。确定哪些路由器为L1、L2、L1\L2路由器;哪些同一区域;哪些接口参与哪种路由选择。规划IP编址方案,以便扩展。
注意:CLNS邻接关系的两端 可以配置不同的子网IP地址。在IP路由器中,相邻两台路由器接口必须在同一子网内。并且默认将路由器配为L1/L2路由器。
(config)# router isis {area-tag} //启用集成IS-IS,并设置进程名。和OSPF的进程号类似。
//is-is可以在同一路由器上存在多个IS-IS进程,进程名只对本地路由器有效。
//此命令后,自动启动IP路由选择,但CLNS路由选择是被禁用的。如还要启用CLNS路由选择,就要执行下面这条命令。
(config)# clns routing //启用CLNS路由选择。还必须在一个支持CLNS路由选择接口上启用 is-is路由选择进程。既要路由IP也要路由CLNS时才需此命令。
(config-router)#net {net-address} //设置路由器的NET地址
(config-if)#ip router isis {area-tag} //接口下启用集成IS-IS。即路由器的哪些接口参与is-is路由选择,支持ip 路由。
//在如rip ,eigrp路由协议中,都是用network命令以发布启用路由协议的接口,但is-is中没有此命令,只能在单个接口下用此命令启用。
(config-if)#clns router isis {area-tag} //在接口上支持clns路由选择。
2、优化 is-is
(config-router)#isis type {level-1 | level-1-2 |level-2-only } //修改路由器级别。L1 、L2 、L1/L2。默认是L1/L2。整个路由器生效。
(config-router)#isis circuit-type {level-1 |level-1-2 |level-2-only} //修改IS-IS接口的级别。只是单个接口生效,接口上定义的覆盖全局定义的。一般用在L1/l2路由器上。
//L1/L2路由器虽然需建立L1和L2级邻接关系,但不是所有的接口都需要建立L1和L2两种邻接关系。有的接口只与L1路由器相连就只需L1邻接关系。有的接口只与L2路由器相连,就只需L2邻接关系。所以可以改变接口的级别。
(config-if)# isis metric {metric} [level-1 |level-2] //全局修改 is-is度量值。 与多数ip路由协议不一样,IS-IS设置其链路度量值时,不考虑线速和带宽。所有接口度量值都为10。所以计算距离时,只和RIP一样,相当于用跳来计算。取值范围 0---63。总开销不超过1024。
(config-router)#isis metric {metric} [level-1 |level-2] //接口下修改度量值, 接口上定义的覆盖全局定义的。
(config-router)#summary-address {ipaddress mask} [level-1 |level-2 |level-1-2] //路由汇总,默认是 L2路由器。
//路由选择协议的可扩展性是适当使用路由汇总的结果。对IS-IS路由器进行配置,使之将某个IP地址范围聚合成一个汇总地址。IP路由汇总为L1/L2,L1,L2。默认为L2。