华为NP课程笔记4-中间系统到中间系统
一、IS-IS
1、IS-IS是Intermediate system to intermediate system(中间系统到中间系统)的简称,IS-IS是基于SPF算法的链路状态协议,同时IS-IS也是一种内部网关协议,IS-IS一般应用于大型网络。原始的IS-IS仅用于CLNS环境下,集成IS-IS支持CLNP网络、IP网络或者CLNP和IP双重网络,工作在数据链路层。
工作在数据链路层,封装效率更高,可以防范三层网络攻击
邻居关系建立:
邻居关系建立主要是通过HELLO包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等。
链路信息交换:
与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递。
路由计算:
SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度。
2、OSI术语
OSI术语 |
OSI术语解释 |
IP中类似概念 |
IS |
intermediate system中间系统 |
Router路由器 |
ES |
End System终端系统 |
Host主机 |
PDU |
Packet data unit数据单元 |
Packets包 |
NSAP |
Network Service Access Point。是网络层和传输层之间的边界上的概念性的点,它是OSI网络层为传输层提供服务的位置,每个传输层实体都会分配到一个唯一的NASP地址。NSAP的最后一个字节用来标识在同一个设备上的程序,类似于TCP/IP中的端口 |
NSAP可以理解为类似IP+端口号 |
NET |
Network Entity Title是最后一个字节为0的NSAP,它就是标识一个设备(NSAP中的端口号为0),因此每个router都有唯一的NET |
|
SNPA |
subnet point of attachments是提供子网服务的点,它等价于对应的第三层地址(NET或NSAP)的第二层地址。通常是LAN上的MAC或者是X.25,FR或ATM中虚电路的ID |
MAC地址等 |
SysID |
System ID系统ID |
OSPF的routerID |
LSP |
Link state Protocol Data Unit链路状态数据单元 |
OSPF的LSA |
LSPDB |
LSP Database LSP数据库 |
OSPF的LSADB |
DIS |
Designated Intermediate System指定中间系统 |
OSPF的DR |
3、NET是一类特殊的NSAP(SEL=0),在路由上配置IS-IS时,只需要考虑NET即可。
NSAP从前往后由Area-ID(1~138B)+System-ID(6B)+SEL(1B)构成,比如:
49.0001.0000.0000.0001.00
其中,从后往前,00为SEL,0000.0000.0001为System-ID,剩下的49.0001为Area-ID。
一台路由器上,可以配置三个Area-ID,但只能有一个System-ID。
4、ISIS路由器分类
(1)
Level-1路由器,只能创建level-1的LSDB
Level-2路由器,只能创建level-2的LSDB
Level-1-2路由器,路由器默认类型,能同时创建level-1和level-2的LSDB。
Level-1的邻接关系的建立,区域ID必须一致。
(2)
Aarea层次性:
Level-1 area:包含 区域内路由器
Level-2 area(Backbone,骨干区):包括L2和L1/L2 Router
(3)
L1 Router:位于普通区域(AREA)内部
L1路由器只和本区域内的L1路由器或具有L1功能的L1/L2路由器形成邻居关系
L1路由器只有本区域内Level-1的链路数据库(L1 LSDB),包含本区域内所有的L1路由器的路由信息
通过与自己最近的L1/L2路由器的ATT BIT生成指向此台设备的默认路由作为出口路由(L1区域类似于OSPF的stub区域)
在转发时,如果目的地址在本区域内,就直接利用L1 LSDB生成的路由转发报文;如果目的地址不再本区域,则利用本区域最近的L1/L2路由器作为区域外网络的出口,由此可能导致次优的路由。
(4)L2 Router:位于骨干区域
可以和其他的L2(或具备L2功能的L1/L2路由器形成邻居关系)
L2路由器有Level-2的链路状态数据库(L2 LSDB),他包含所有的区域间路由信息
接受来自本区域内其他L2路由器的报文,并按照目的地址将报文转交给其他区域的L2路由器(或是转发到同一区域的L2路由器)。接受来自其他区域的L2路由器的报文,并按照目的地址将报文转发
(5)L1/L2 Router:通常位于区域边界上
可以和本区域的任何级别路由器形成邻居关系;可以和其他区域相邻的L2或L1/L2路由器形成L2邻居关系
可能有两个级别的链路状态数据库:
L1用来作为区域内路由;L2用来作为区域间路由
完成它所在的区域和骨干之间的路由信息的交换,既承担L1又承担L2的职责。
注意:一个L1/L2路由器如果和其他区域的路由器形成邻接关系,它将通告本区域内的L1路由器它有区域的出接口点。具体方法是在生成本区域的L1 LSP时将报文中的ATT(Attachment)bit置为1,发给区域内的L1邻居。
5、ISIS配置
拓扑图
(1)ISIS基本配置,以AR1举例
AR1:
int g0/0/1
ip address 10.1.13.1 24
int s1/0/0
ip address 10.1.12.1 24
int lo0
ip address 1.1.1.1 32
isis 100 //100为进程号,类比于ospf进程号,也是本地有效
network-entity 49.0001.0000.0000.1111.00 //配置NET,类比于ospf的router-id
int g0/0/1
isis enable 100 //将端口宣告到isis进程100中
int s1/0/0
isis enable 100
int lo0
isis enable 100
dis isis peer 查看邻居
dis isis lsdb 查看lsdb
dis ip routing-table 查看路由表
所有路由器全部配置完成ISIS后,因为都处于默认的L1/L2模式下,路由全部打通:
(2)修改路由器层级
isis 100
is-level level-1 //修改为level-1,也可以修改为level-2或者level-1-2
将AR1、AR2、AR7更改为level-1,AR5更改为level-2;AR3、AR4和AR5构成骨干区域
普通区域类似于STUB域,ISIS路由只有本区域的路由+一条到邻近L1/L2的缺省路由:
6、IS-IS支持的网络类型
(1)支持的网络类型
点对点网路,如ppp,hdlc等
广播链路,如ethernet等
对于NBMA网络,如帧中继,需要对其配置子接口,并注意子接口类应配置为P2P
(2)对于广播链路:DIS和伪节点
DIS:Designated IS指定中间系统
功能:在广播网络中创建和更新伪节点
在LAN中通过每10秒周期性地发送CSNP来泛洪LSP
1)在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。
2)DIS的选举是抢占式,没有规定不能参与选举的机制,当优先级为0时候,仍可以参加DIS的选举。
3)IS-IS中不存在备份DIS,当一个DIS不能工作时,直接选举另一个
4)DIS发送HELLO数据包的时间间隔是普通路由的1/3,这样可以保证DIS失效可以被快速检测到
5)Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会被选中。不同级别的DIS可以是一台机器,也可以是不同的路由器。
伪节点(Pseudonode):
1)伪节点是在广播多路访问网络中的一台虚拟路由器
2)伪节点有DIS创建
3)DIS在伪节点LSP中通告LAN中的所有邻居
4)LAN中的所有路由器在他们的LSP中通告自己与伪节点的连接性作用
5)减小路由器LSP的大小
6)使得路由器LSP更稳定
7)使SPF计算更快
8)DIS最主要的最用时代替伪节点产生LSP,类似于OSPF中的LSA2
如果没有伪节点,每台路由器需要有全网的LSPDB,有了伪节点,则只需要记录自己和伪节点的连接关系即可。
DIS与DR的类比:
选举时优选级的比较,DIS的优先级为0也可以参与选举。OSPF中优先级为0不参与选举DR。
选举的过程需要一定的时间,OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷。
选举结果ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份。
选举结束后,后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的。
选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系, DRothers之间只有2-way的关系。
(3)IS-IS形成邻居关系的条件
1)同一层次
2)同一区域,跨区域只能形成L2的邻居广西,如果两台路由器都是L1的,必须同一区域
3)同一网段,广播网络,必须IP网段同一个网段,不同不行成邻居关系;点到点链路上,IP地址不在同一个网段,可以通过在端口设置忽略IP(isis peer-ip-ignore),来形成邻居;广播网络可以通过手动设置成P2P网络(isis circuit-type p2p),来设置忽略IP
4)相同网络类型
5)同一网段IP(LAN or PPP)
(4)IS-IS形成邻居关系的具体细节
1)两台L1路由器只有和他们的AID(区域号)匹配时才能形成 L1邻接关系
2)两台L2路由器即使他们的AID不同也能形成一个L2邻接关系
3)一台L1路由器和-一台L1/L2路由器只有在他们的AID匹配时才能形成一个L1邻接关系
4)一台L2路由器和-一台L1/L2路由器即使他们在不同AID时也能形成一个L2邻接关系
5)如果两台L1/L2路由器的AID匹配,他们就可以同时形成L1和L2的邻居关系
6)如果两台L1/L2路由器的AID不匹配,他们就只能形成L2类型的邻居关系
7、IS-IS报文类型
(1)HELLO PDU(IIH)用于建立和维持邻居关系:
1)Level-1 LAN IIH,发送的组播MAC地址为0180-C200-0014
2)Level-2 LAN IIH,发送的组播MAC地址为0180-C200-0015
3)P2P IIH
在P2P链路上,分为两次握手机制和三次握手机制。
两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险。
通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。
在广播链路上,使用LAN IIH报文执行三次握手建立邻居关系。
当收到邻居发送的Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized。
只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险。
广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)。
(2)LSP PDU用于交换链路状态信息
1)Level-1 LSP
2)Level-2 LSP
(3)SNP PDU用于维护LSDB的完整与同步,且为摘要信息
1)CSNP(完整***协议数据单元):Level-1 CSNP、Level-2 CSNP;广播网络中,DIS每10秒发一次CSNP。用于数据同步,描述数据库LSDB中的所有的LSP,如果是P2P网络,只在第一次建立邻接是发送。
2)PSNP(部分***协议数据单元):Level-1 CSNP、Level-2 CSNP
(4)IS-IS广播
DIS发送Hello时间间隔默认为10/3秒,Holding time为9秒,而其他非DIS路由器发送Hello间隔为10秒,Holding time是30秒。
(5)LSP
1)LSP-ID用来唯一标志一个LSP,类比于OSPF的ls-id;由三部分组成:SysID(结点或伪节点的SysID)+Pseudonode ID+LSP number(分片号)。
例如:00c0.00040.1234.01--00,其中SourceID为00c0.00040.1234,PseudonodeID为01(表明为伪节点出发的),分片号为0;
2)Sequece Number:用来确定是否是最新的LSP版本
3)LSP Holdtime:用来周期性清除旧的LSP,默认1200秒
4)LSP Checksum:校验和,并可以用来比较LSP的新旧
5)ATT bit Overload bit
(6)PSNP用于数据库同步,主要有以下功能:在点到点(p2p)链路上路由器也能过来互相交换作为Ack应答以确认收到某个LSP;用来请求发送最新的LSP,当路由器从邻近收到CSNP时,注意到CSNP丢失了部分数据库(或自己的比较旧),路由器发送PSNP请求新的LSP;和CSNP一样,PSNP在头中利用LSPid,SequenceNumber,Remainning lifetime,LSP checksum来描述LSPs。
8、ISIS工作过程简介
(1)路由器相互发送hello包,通过三次握手建立邻接关系。P2P网络可以只通过两次握手就建立邻接关系,可以在端口下设置具体握手次数,如果两端握手次数设置有问题,可能会因为握手次数不一致无法建立邻接关系
(2)广播网络LSP交互:路由器泛洪各自的LSP,DIS将所有LSP的头部信息收集整合成CSNP,每10秒泛洪CSNP,其他路由器收到CSNP后,会发送PSNP去请求自己没有的LSP,DIS收到PSNP后,将请求的LSP发送给请求路由器。
点到点网络LSP交互:路由器相互发送LSP,同时发送CSNP,路由器收到CSNP,发送PSNP请求自己没有的LSP。点到点网络只在一开始建立邻接关系的时候发一次CSNP。
9、ISIS路由渗透
在Level-1-2路由器上手动将Level-2层级的路由渗透到Level 1层级,可以避免Level-1路由选择次优路由。具体命令:
acl 2000
rule permit source 10.1.5.5
rule deny source any
isis 100
import-route isis level-2 into level-1 filter-policy 2000 将指定的二层路由引入一层路由
ISIS路由引入中,路由引入默认是引入二层路由,需要指定手动引入一层路由,引入的ISIS的开销值默认是64。使用inherit-cost可以在引入外部路由时保留路由原有的开销值。当配置IS-IS保留引入路由的原有开销值时,将不能配置引入路由的开销类型和开销值。例如:
import-route direct inherit-cost level-1
10、IS-IS开销
配置IS-IS开销类型:
isis 100
cost-style narrow|wide|wide-compatible|narrow-compatible|compatible|relax-spf-limit
缺省是narrow类型:接口开销取值范围为1~63。接受到的路由开销值最大为1023。
narrow-compatible和compatible类型:接口开销取值范围为1~63。接收到的路由开销值和参数relax-spf-limit有关
wide和wide-compatble类型:接口开销取值范围是1~16777215。配置为最大值16777215时,该链路上生成的邻接TLV不能用于路由计算,仅用于传递TE相关信息。
配置IS-IS接口的开销:
int g0/0/0
isis cost 5 level-2
11、IS-IS收敛特性
(1)增量最短路径优先算法I-SPF:只对受影响的节点进行路由计算;只在第一次计算时包括全部节点
(2)部分路由计算PRC:只对发生变化的路由进行重新计算;根据I-SPF算出来的SPT来更新路由
12、IS-IS认证
(1)认证分类
接口认证:只对Level-1和Level-2的Hello报文进行认证
区域认证:对Level-1的SNP和LSP报文进行认证
路由器认证:对Level-2的SNP和LSP报文进行认证
(2)认证方式
Null 明文 MD5
只对Hello包认证:
int s1/0/0
isis authentication-mode md5 cipher
区域认证:(有L1邻居关系的都要起认证),区域认证是针对Level1生效的
isis 100
area-authentication-mode md5 cipher
路由域认证:(有L2邻居关系的都要起认证)
isis 100
domain-authentication-mode md5 cipher
二、ISIS与OSPF 的区别
1、网络类型和开销方式:
IS-IS协议只支持两种网络类型,且所有带宽默认开销值都是一样的,OSPF协议支持四种网络类型,且会根据不同的带宽设定相应的开销值,对帧中继,按需链路等网络类型有很好的支持。
2、区域类型:
IS-IS协议分L1/L2区域,L2区域是骨干区域有全部明细路由。L1去往L2只有默认路由。OSPF协议分骨干区域,普通区域,特殊区域。普通区域和特殊区域跨区域访问需要经过骨干区域。
报文类型:
IS-IS协议路由承载报文类型只有LSP报文且里面路由信息是不区分内部与外部的,简单高效,无需递归计算。OSPF协议路由承载报文LSA类型多样,有1/2/3/4/5/7类等。路由级别等级森严,且需要递归计算,适合精细化调度计算。
3、路由算法:
ISIS协议区域内某个节点上的网段发生变化时,触发的是PRC算法,收敛比较快,计算路由的报文开销也比较小。OSPF协议由于网络地址参与了拓扑的构建,在区域内当网段地址改变触发的是i-spf算法,相对来说过程繁琐复杂些。
4、扩展性:
ISIS协议任何路由信息都使用TLV传递,结构简单,易于扩展,如对IPv6的支持只增加2个TLV就解决了。且ISIS本身对IPX等协议是支持的。OSPF协议本身是为IP特定开发的,支持IPv4和IPv6的OSPF协议是两个独立的版本(OSPFv2和OSPFv3)。