IS-IS(Intermediate System to Intermediate System)
一、简介
定义
内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部。IS-IS也是一种链路状态协议,使用最短路径优先SPF(Shortest Path First)算法进行路由计算。
目的
IS-IS是国际标准化组织ISO(the International Organization for Standardization)为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议。随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF(Internet Engineering Task Force)对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnection)环境中,称为集成IS-IS(Integrated IS-IS或Dual IS-IS)
二、IS-IS的相关概念简介
1、路由级别及含义
路由级别 | 所属区域 | 含义 |
level-1 | 区域内 | 只负责区域内的level-1 的路由信息,只属于level-1或level-1-2路由器所建立的邻居关系,并维护本区域level-1的LSDB信息,将数据传递到最近的level1-2设备。 |
level-2 | 区域内或区域间 | 负责区域间的路由信息,可以与level-2或level1-2级别的路由器建立邻居关系,维护level-2级别的LSDB链路状态数据库信息,路由域内的level-2的路由必须是连续的,以保证骨干网的连续稳定性。 |
level-1-2 | 区域内或区域间 | 同时属于level-1和level-2的设备统称为level-1-2设备,同区域的level-1与本区域的level-1-2设备形成level-1的邻居关系,本区域的level-2可以与其他区域的level-2设备形成level-2的邻居关系,level-1 负责域内的路由传递,如需跨域传递需通过level-1-2设备进行传递,level-2 负责域间路由传递,level-1-2设备同时维护两个LSDB表项(路由表内L1和L2可并存)。 |
总结:
level-1
类似于OSPF的域内路由信息
只能发送level-1的报文信息
只拥有level-1的LSDB链路状态数据库表项
level-2
类似于OSPF的OIA、ASE等路由信息,骨干区、域内域间路由传递、域外路由传递
只能发送level-2的报文信息
只拥有level-2的LSDB链路状态数据库表项
level-1-2
拥有level-1和levle-2的公共点 并同时维护两张LSDB的表项,既可以传递域内路由信息
也可以进行域间,域外路由信息传递。
2、DIS和伪节点
DIS的选举过程(DIS默认开启抢占)
Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由设备有多台,则其中MAC地址最大的路由设备会被选中。不同级别的DIS可以是同一台路由设备,也可以是不同的路由设备。
IS-IS网络内路由传递的稳定性需要通过DIS来进行保障。
1、level-1,所有的路由器建立level-1的邻居关系,包含DIS
2、level-2,所有的路由器建立level-2的邻居关系,包含DIS
3、DIS 有且只有一个,没有备份
4、优选优先级大的成为DIS节点(默认优先级为64)
5、优先级为0时不会失去DIS参与选举的身份
6、当路由设备的优先级相同时,优选mac地址大的成为DIS节点
DIS与OSPF的DR节点对比
类型 | DIS | DR |
当优先级为0时 | IS-IS网络环境内当设备的优先级为0时依旧参与DIS的选举 | 在OSPF网络环境内当设备的优先级为0是不参与DR的选举 |
更新过程 | 在IS-IS网络环境内当新加入一台路由器并具备成为DIS的资格时该设备会立即抢占DIS,并删除之前的伪节点信息,导致新的LSP的报文泛洪(立即抢占) | 在OSPF网络内当新加入的一台路由器具备成为DR的资格时也不会立即进行抢占,只有当DR故障,BDR成为DR后其余路由域内的设备根据优先级的大小选举BDR节点(不抢占) |
邻居关系 | 在IS-IS网络内同一级别的路由器(包含DIS)均建立邻居关系。 | 在OSPF网络内,所有设备只跟DR与BDR建立邻接关系,其他设备之间卡2-way状态 |
三、IS-IS基本原理描述
1、邻居建立过程(3-way)
1、A设备发送IIHello报文,其中neib字段为空
2、当B收到来自于A设备且neib字段为空的报文后,将对方与自身置为init状态,并向对方回复
IIhello报文,报文内标识B为A的邻居
3、当A设备收到B设备的报文后,将自身置为UP状态,并向B设备发送一个IIhello报文,描述自身为B设备的邻居
4、B设备收到来自于A设备的报文后将自身置为UP状态,成功建立邻接关系
2、邻居关系建立的必要条件
1、system-id必须一致
2、max allow net数量(友商会存在检查项)
· 3、level等级需一致
进程可以指定建立的等级
接口下也可以指定建立的等级(接口指定更优)
4、hello/hold 时间需一致
5、存在认证的场景下,认证需通过
6、网络接口类型要一直(广播、p2p)
7、mtu要一致
8、接口没有被slient掉(不收不发)
9、源检测要通过(peer-ip-ignore 可关闭)
10、握手方式需一致 3-way能包容2-way
3、LSP的交互过程
1、LSP更新的触发条件
-
邻居Up或Down
-
IS-IS相关接口Up或Down
-
区域间的IP路由发生变化
2、广播链路LSDB的同步过程
- DIS收到更新的LSP查询本地LSDB数据库 没有该表项,放入LSDB数据库,并产生广播报文
- 收到的报文序列号大于本地的序列号 则放入LSDB并产生广播报文泛洪,如收到的小于本地的序列号则向import方向的端口发送本地的LSDB条目,同步更新对方的数据库信息
- 若两个序列号相等,则比较Remaining Lifetime。若收到的LSP的Remaining Lifetime小于本地LSP的Remaining Lifetime,就替换为新报文,并广播新数据库内容;若收到的LSP的Remaining Lifetime大于本地LSP的Remaining Lifetime,就向入端接口发送本地LSP报文。
- 若两个序列号和Remaining Lifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并广播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
- 若两个序列号、Remaining Lifetime和Checksum都相等,则不转发该报文。
3、P2P链路LSDB更新过程
-
两台设备建立P2P邻居关系之后,先互相发送CSNP报文。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
-
所示假定DeviceB向DeviceA索取相应的LSP。DeviceA发送DeviceB请求的LSP的同时启动LSP重传定时器,并等待DeviceB发送的PSNP作为收到LSP的确认。
-
如果在接口LSP重传定时器超时后,DeviceA还没有收到DeviceB发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。