ISIS
ISIS基础
IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)
早期为OSI协议族的CLNP(Connection Less Network Protocol,无连接网络协议)设计的路由协议,IETF对ISIS进行扩展和修改,让其同时支持CLNP和IP协议,这种ISIS成为集成ISIS。
IS-Is是ISO(国际标准化组织)定义的OSI协议栈中的CLNS(Connection Less Network Service,无连接网络服务)的一部分
CLNS包括CLNP、ISIS、ES-IS(终端系统-终端系统)
特点:
- 支持CLNP网络、IP网络
- 采用
数据链路层
封装分装到数据链路层的帧结构中
了解:
NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址、由IDP和DSP组成。范围是8-20Byte
AFI 和IDI属于IDP 其余为DSP
AFI(地址分配机构和地址分配机构和地址格式) | IDI(标识域) | High Order DSP (分割区域) | System ID | SEL(服务类型) |
---|
NET (NetworkEntityTitle,网络实体名称)是OSI协议栈中设备的网络层信息,主要用于路由计算,由区域地址(Area ID)和System ID(由Router ID计算生成)组成,可以看作是特殊的NSAP(SEL为OO的NSAP)。49.0001
.0000.0000.0001.00
前边的为Area ID即49.区域号 中间为System ID 最后为SEL固定为00
System ID确定:System ID的长度总是固定的6Byte。在一个IS-IS路由域中,设备的SystemID必须唯一,为了便于管理,一般根据RouterID配置SystemID,
计算规则 先将Route ID 每个位置都拓展为三位 然后将每四个数为一部分用.
隔开放入System ID位置就可以了 例如 192.80.2.1
->49.0001.1920.8000.2001
.00
区域划分
在ISIS中,每一台路由器都属于一个区域,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构:
- Level-1路由器部署在非骨干区域。
- Level-2路由器和Level-1-2路由器部署在骨干区域。
每一个非骨于区域都通过Level-1-2路由器与骨干区域相连。
L1和L2级别的路由都采用SPF算法,分别生成最短路径树(SPT),在OSPF中,只有一个区域内才是用SPF算法,区域之间是需要通过骨干区域转发
路由器分类
ISIS路由器分类:Level-1、Level-2、Level-1-2
Level-1:与同一区域的L1和L1-2路由器形成邻接关系,成为L1邻接关系。Level-1路由器只负责维护LeVel-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息
注意:L1路由器必须通过L1-2路由器接入ISIS骨干区域从而访问其他区域
Level-2:与同一区域或者不同区域的L2或者L1-2路由器形成邻接关系,称为L2邻接关系 ,Level-2路由器维护一个Level-2的LSDB,该LSDB包含整个IS-IS域的所有路由信息
Level-1-2((默认)类似OSPF ABR):与同一区域的L1和L1-2形成邻接关系,称为L1邻接关系;与其他区域的L2和L1-2形成邻接关系,称为L2邻接关系。Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由
网络类型
- 广播BMA(Broadcast):如Ethernet
- 点到点(P2P):如PPP、HDLC等
网络类型 | 例如 | 是否选举DIS | Hello报文发送间隔 |
---|---|---|---|
broadcast(广播型网络 BMA) | Ethernet(以太网) | 是 | 3.3s |
P2P(点到点) | PPP/HDLC | 否 | 10s 超时时间30s |
开销
ISIS使用cost作为路由器度量值,cost越小,路径越优。
ISIS接口的cost在缺省情况下不与接口带宽相关,无论带宽多大,缺省时cost为10
一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和。
ISIS 报文
通用头部
报文概述
报文名称 | 作用 |
---|---|
IIH(IS-IS HELLO) | 用于建立和维持邻接关系 |
LSP(Link State PDU,链路状态报问) | 用于交换链路状态信息。LSP分为两种,Level-1LSP、Level-2LSP。 |
CSNP(Complete Sequence Number PDU,全序列号报文) | 通过描述全部链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。 |
PSNP(Partial Sequence Number PDU,部分序列号报文) | 通过描述部分链路数据库中的LSP来同步各LSDB |
广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络Level-2 IS-IS路由器使用Level-2 LAN IIH;点到点网络中则使用P2P IIH。
TLV
TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。(拓展属性)
IIH
LSP
LSDB
CSNP
CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互CSNP来判断是否需要同步LSDB。
- 在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)。
- 在点到点网络上,CSNP只在第一次建立接关系时发送。
PSNP
当发现LSDB不同步时,PSNP来请求邻居发送新的LSP
在点到的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认
邻接关系
IS-IS按如下原则建立邻接关系:
- 只有同一层次的相路由器才有可能成为接
- 对于Level-1路由器来说,Area ID必须一致。
- 链路两端IS-IS接口的
网络类型必须一致
。 - 链路两端IS-IS
接口的地址必须处于同一网段
(默认情况下)。 - System-id不能相同
L1路由器只能和L1或者L1-2路由器建立同级别同区域的邻接关系
L2路由器可以与L2或者L1-2路由器同级别同区域或者同级别的不同区域的邻接关系
注意:
链路两端IS-IS接口的地址没有处于同一网段,如果配置接口对接收到Hello报文不作IP检查,也可以建立邻接关系
1、对于点对点接口,可以配置接口忽略IP检查
2、对于以太网接口,需要将以太网接口模拟成点对点接口,然后才能配置接口忽略IP地址检查
广播网络中建立邻接关系
- Down
- Initial (收到对端IIH报文 回复IIH报文并在此报文中标识邻接)
- UP(收到回复的IIH报文)
P2P网络中建立邻接关系
- Down
- Initial
- UP
点到点网络中,邻接关系的建立使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系
两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系
。此方式通过三次发送P2P IIH最终建立起接关系
DIS
DIS: (Designated Intermediate System 指定中间系统) DIS产生伪节点类似DR
广播网络中需要选举DIS
,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举
DIS用来创建和更新伪节点,并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。是一个虚拟的节点
DIS发送Hello PDU的时间间隔是普x通路由器的1/3,这样可以确保DIS出现故障时能够被更快速地被发现
DIS选择规则:
- 优先级最大的选为DIS(0-127 默认64)
- 比较MAC,MAC大的成为DIS
IS-IS中DIS与OSPF协议中DR(Designated Router)的区别:
- 在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
- 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
- 在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。
在伪节点LSP中,只包含邻接信息而不包含路由信息
LSDB 同步
广播
新加入的路由器R3首先发送ⅡH报文,与该广播域中的路由器建立邻接关系。建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(
Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15
)。这样网络上所有的邻接接都将收到该LSP。该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送
CSNP
报文。R3收到DIS发来的CSNP报文,对比自已的LSDB数据库,然后向DIS发送
PSNP
报文请求自已没有的LSPDIS收到该PSNP报文请求后向R3发送对应没有的的LSP进行LSDB的同步。
点对点
R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的
PSNP
作为收到LSP的确认。
路由计算
Level-1
通过Level-1-2下发的Level-1 LSP中的ATT标志为计算出指向Leavel-2的默认路由
这时候会产生路径无法选取最优的情况所以可以执行路由渗透将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详纳细路由,从而计算出最优路径。
import-route isis level-2 into level-1
Level-1-2
在Level-1区域中通过LSDB中的LSP计算出到达该区域的路由
在Level-2区域中通过LSDB中的LSP计算出到达该区域的路由
将Level-1区域中的路由以Level-2 LSP的形式发送到Level-2区域
Level-2
Level-2路由器,只会维护Level-2LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由
认证
根据报文的种类,认证可以分为以下三类:
▫接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。
▫区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。
▫路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。
命令
创建IS-IS进程,进入IS-IS进程
isis [process-id]
配置网络实体名称(NET)
network-entity net
配置全局Level级别
is-level { level-1 | level-1-2 | level-2 }
在接口上使能IS-IS协议
isis enable [process-id]
配置接口Level级别
isis circuit-level [ level-1 | level-1-2 | level-2 ]
设置接口的网络类型为P2P
isis circuit-type p2p
修改接口的DIS优先级
isis dis-priority priority(默认为64) [level-1 I level-2 ]
查看LSP
display isis lsdb routeID-00 verbose
将isis的区域id使用名称显示(isis视图下)
is-name name
Comments NOTHING