ISIS-1 ISIS概述
前面几章我们介绍了OSPF的基础工作原理以及怎样交互LSA形成LSDB链路状态数据库的
这一章我们来介绍另一个链路状态路由协议,ISIS路由协议
一、概述
- ISIS(Intermediate System to Intermediate System,中间系统到中间系统)是由ISO(International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNetwork Protocol,无连接网络协议)设计的一种动态路由协议。
- 随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开放式系统互联)环境中,我们将扩展后的IS-IS称为集成IS-IS。
- 和OSPF一样,属于链路状态IGP,使用SPF计算路由的动态路由协议
- 由于简便性和扩展性;普遍应用于ISP网络中。
集成IS-IS的特点:
支持CLNP、IP网络
工作在数据链路层
OSPF的特点:
目前只支持IP网络
工作在网络层
随着IPv6网络的建设,IS-IS路由协议结合自身具有良好的扩展性的特点,实现了对IPv6网络层协议的支持,可以发现、生成、和转发IPv6路由
二、ISIS-地址结构
TCP/IP协议栈 | IP协议 | IP地址 | OSPF | Area ID+Router ID |
OSI系统 | CLNP协议 | NSAP地址 | IS-IS | NET标识符 |
NET是一类特殊的NSAP(SEL=00),在路由器上配置IS-IS时,只需要考虑NET即可
结构部分 | 备注 |
AFI | Authority and Format Identifier,标识地址分配机构和地址格式。 |
IDI | Initial Domain Identifier,标识域。 |
HODSP | High Order DSP,分割区域。 |
PS | AFI+IDI+HODSP=Area Address |
System ID | 标识路由器和主机 |
SEL | 标识服务类型,在IP上均为00 |
Area Address区域地址:
- 既能够标识路由域,也能够标识路由域中的区域
- 相当于OSPF中的区域编号
- 两个不同的路由域中不允许由相同的区域地址
- 一般情况下,一台路由只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。
- 为了支持区域的平滑合并、分割及转换,一台路由器最多配置3个区域地址。
System ID系统ID:
- 在区域内唯一标识主机或路由器。
- 在实际应用中,一般使用Router ID与System ID进行对应。
SEL:NSAP Selector,类似于IP中的协议标识符,在IP中,SEL均为00。
NET:Network Entity Title,网络实体名称:
- 可以看作是一类特殊的NSAP,即SEL=0的NSAP地址。
- 通常情况下,一台路由器配置一个NET即可。
- 当区域需要重新划分时,例如将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以重新置为仍然能够保证路由的正确性。
- 由于一台路由最多可配置3个区域地址,所以最多也只能配置3个NET。
- 在配置多个NET时,必须保证它们的System ID都相同。
例:
49.0001.0000.0000.0001.00
Area=49.0001
System ID=0000.0000.0001
SEL=00
NET的配置举例:
- 每台运行IS-IS的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的System ID必须相同。
- 在华为的网络设备上,System ID的长度总是固定的6Bytem。在一个IS-IS路由域中,设备的System ID必须唯一,为了便于管理,一般根据Router ID配置System ID。
注意:同一个区域内,可以有相同的Area Address,不可以出现相同的System ID。
三、ISIS的报文格式
- IS-IS报文是直接封装在数据链路层的帧结构中的。
- PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头(IS-IS Header)和变长字段部分(Variable Length Fields)。
- 其中IS-IS Header又分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报文都是相同的,但专用报头根据PDU类型不同而有所差异
1、IS-IS通用头部详解
重要字段解释:
- Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。
- Length Indicator:IS-IS头部的长度(包括通用头部和专用头部),以Byte为单位。
- Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。
- System ID Length:NSAP地址或NET中System ID区域的长度,值为0时,标识System ID区域的长度为6Byte。
- R(Reserved):保留,固定为0。
- Version:固定为0x01。
- Max Areas:支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。
IS-IS报文类型概述
- IS-IS的PDU有4种类型:IIH(IS-IS Hello),LSP(Link State PDU,链路状态报文),CSNP(Complete Sequence Number PDU,全序列号报文),PSNP(Partial Sequence Number PDU,部分序列号报文)。
- IIH:用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LANIH;点到点网络中则使用P2P IIH。
- LSP:用于交换链路状态信息。LSP分为两种,Level-1 LSP、Level-2 LSP。
- SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。SNP包括CSNP和PSNP,进一步又可分为Level-1CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。
IS-IS常见的TLV
- TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。
- 使用TLV结构构件报文的好处是灵活性和扩展性好。采用TLV使用报文的整体结构固定,增加新特性只需要增加新TLV即可,不需要改变整个报文的整体结构。
ISIS-报文类型
整体分类:
类型 | 全称 | 备注 |
IIH | ISIS Hello PDU | 建立和维护邻居关系 |
LSP | Link State PDU | 传输链路状态信息 |
SNP | Sequence Numbers PDU | 描述数据库中的LSP |
PDU类型:
类型值 | 简称 | 全称 |
15 | L1 LAN IIH | Level-1 LAN IS-IS Hello PDU |
16 | L2 LAN IIH | Level-2 LAN IS-IS Hello PDU |
17 | P2P IIH | Point-to-Point IS-IS Hello PDU |
18 | L1 LSP | Level-1 Link State PDU |
20 | L2 LSP | Level-2 Link State PDU |
24 | L1 CSNP | Level-1 Complete Sequence Numbers PDU |
25 | L2 CSNP | Level-2 Complete Sequence Numbers PDU |
26 | L1 PSNP | Level-1 Partial Sequence Numbers PDU |
27 | L2 PSNP | Level-2 Partial Sequence Numbers PDU |
Hello报文类型:
类型 | 备注 |
L1 LAN IIH | 广播网络中的Level-1路由器使用 |
L2 LAN IIH | 广播网络中的Level-2路由器使用 |
P2P IIH | 点到点网络中的路由器使用 |
字段 | 备注 |
Reserved/Circuit Type | 高位的6比特保留,值为0,低位的2比特表示路由的类型01=L1;10=L2;11=L1/2 |
Source ID | 发出Hello报文的路由器的System ID。 |
Holding Time | 邻居的保持时间(老化时间/死亡时间),默认为30秒,发送间隔默认为10秒,在配置中只能修改时间间隔,而老化时间就是时间间隔的3倍,例如将老化时间修改为20,则老化时间就会60。 |
PDU Length | PDU的总长度。 |
Priority | 选举DIS的优先级,取值范围0~127,越大越优先,默认值为64。 |
LAN ID | DIS和伪节点的System ID。 |
Local Circuit ID | 本地链路ID。 |
LSP报文:
字段 | 备注 |
PDU Length | PDU的总长度。 |
Remaining Lifetime | LSP的存活时间,从1200倒计时(20分钟),与OSPF不一样OSPF是增加,IS-IS是减少。 |
LSP ID | 由三部分组成:System ID、伪节点ID和LSP的分片号。 |
Sequence Number | LSP的序列号。 |
Checksum | LSP的校验和。 |
P | Partition Repair,仅与L2 LSP有关,表示路由器是否支持自动修复区域分割。 |
ATT | Attachment,由L1/2路由器产生,仅与L1 LSP有关,表示产生此LSP的路由器与多个区域相连接。 |
OL | LSDB Overload,表示本路由器因内存不足而导致LSDB不完整(过载)。其他路由器在进行SPF计算时不会考虑这台路由器,但到此路由器直连地址的报文仍然可以被转发。 |
IS-Type | 生成LSP的路由器的类型,01=Level-1;11=Level-2。 |
例子:
假设路由器A想要去访问路由器C,但是路由器B的OL值置为了路由器A就会通过上面那条链路去访问路由器C,但如果是路由器B的直连网段的话就无所谓。
SNP报文类型:
类型 | 全称 | 备注 |
CSNP | Complete Sequence Numbers PDU | 通告LSDB中所有摘要信息,类似于OSPF中的DD报文 |
PSNP | Partial Sequence Numbers PDU | 请求和确认链路状态信息,在广播类型网络与P2P网络中的作用有时候不一样,可以用来当请求报文也可以用来当作确认报文 |
TLV/CLV:
IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组。
TLV也称为CLV(Code-Length-Value)。
TLV Type | 名称 | 所应用的PDU类型 |
1 | Area Addresses | IIH、LSP |
2 | IS Neighbors(LSP) | LSP |
4 | Partition Designated Level2 IS | L2 LSP |
6 | IS Neighbors(MAC Address) | LAN IIH |
7 | IS Neighbors(SNPA Address) | LAN IIH |
8 | Padding | IIH |
9 | LSP Entries | SNP |
10 | Authentication Information | IIH、LSP、SNP |
128 | IP Internal Reachability Information | LSP |
129 | Protocols Supported | IIH、LSP |
130 | IP External Reachability Information | LSP |
131 | Inter-Domain Routing Protocol Information | L2 LSP |
到这里本章内容就到此结束了如果有疑问可以关注博主私聊,如果有问题欢迎私聊博主及时更改谢谢大家的观看学习!!!