IS-IS 数据包类型 | 实验
注:本文为 “IS-IS” 相关文章合辑。
英文引文,机翻未校。
IS-IS Packet Types
IS-IS 数据包类型
Network protocols uses different packets. Here we will focus on the packets used by IS-IS Protocol. We will learn IS-IS Packet Types.
网络协议使用不同的数据包。在这里,我们将重点介绍 IS-IS 协议使用的数据包。我们将学习 IS-IS 数据包类型。
IS-IS Protocol uses L2 encapsulation Ethernet 802.3/802.2. It do not use Ethernet II. Ethernet II is used for IP traffic. You can check the lesson that we have exmpained different Ethernet Packets on IPCisco.
IS-IS 协议使用 L2 封装以太网 802.3/802.2。它不使用以太网 II。以太网 II 用于 IP 流量。您可以查看我们在 IPCisco 上解释不同以太网数据包的课程。
IS-IS Protocol exchanges protocol information by using Link-State PDUs (Protocol Data Units).
IS-IS 协议使用链路状态 PDU(协议数据单元)交换协议信息。
There are four types of PDU packets in IS-IS Protocol. These IS-IS packets are given below:
IS-IS 协议中有四种类型的 PDU 数据包。这些 IS-IS 数据包如下所示:
-
IS-IS Hello PDU (IIH)
-
Link State PDU (LSP)
-
Partial Sequence Number PDU (PSNP)
-
Complete Sequence Number PDU (CSNP)
In IS-IS PDUs there is a TLV (Type, Length, Value) field. According to the need, these fields are added to the PDUs. This TLV field makes IS-IS extendable and it is the major advantage of IS-IS over OSPF. There are several TLVs in IS-IS packets. IS-IS Header always same, but according to the type of the packet, added TLV fields change.
在 IS-IS PDU 中,有一个 TLV(类型、长度、值)字段。根据需要,这些字段将添加到 PDU 中。此 TLV 字段使 IS-IS 可扩展,这是 IS-IS 相对于 OSPF 的主要优势。IS-IS 数据包中有多个 TLV。IS-IS 报头始终相同,但根据数据包的类型,添加的 TLV 字段会发生变化。
TLVs are maximum 256 bytes and they contains sub-TLVs.
TLV 最大为 256 字节,包含子 TLV。
IS-IS Header Format
IS-IS discovers the IS-IS neighbours and IS-IS adjacency via Hello PDUs. DIS election is also done with these PDUs. There are three types Hello PDUs in IS-IS Protocol:
-
ESH: ES sent to IS
-
ISH: IS sent to ES
-
IIH: Between two ISs
IS-IS Hellos, ESH, ISH, IIH
IS-IS Hello interval is 10 seconds and the dead interval is 30 seconds by default.
IS-IS Hello 间隔为 10 秒,死区间隔默认为 30 秒。
In IS-IS Hello packet, 6 types of data can be included with TLVs. These are:
在 IS-IS Hello 数据包中,TLV 可以包含 6 种类型的数据。这些是:
-
Area Addresses TLV
区域地址 TLV -
Padding TLV
填充 TLV -
IP Interface Address TLV
IP 接口地址 TLV -
Authentication Information TLV
认证信息 TLV -
Protocols Supported TLV
支持的协议 TLV -
Intermediate System Neighbors TLV
中间系统邻居 TLV
For more information about IS-IS TLVs, you can check Intermediate System-to-Intermediate System (IS-IS) TLVs article on Cisco Website.
有关 IS-IS TLV 的详细信息,您可以在 Cisco 网站上查看中间系统到中间系统 (IS-IS) TLV 一文。
IS-IS LSPs are like LSAs in OSPF and contains many information about the neighbour ISIS Routers and links. They are flooded periodically in IS-IS network. L1 and L2 PDUs use different formats LSPs are stored in IS-IS LSDBs. Seperate datababses are used for L1 and L2 LSPs. Each LSP has sequence number that shows its version.
IS-IS LSP 类似于 OSPF 中的 LSA,包含有关邻居 ISIS 路由器和链路的许多信息。它们会定期在 IS-IS 网络中泛洪。L1 和 L2 PDU 使用不同的格式,LSP 存储在 IS-IS LSDB 中。单独的 Datababs 用于 L1 和 L2 LSP。每个 LSP 都有显示其版本的序列号。
In LSPs, below TLVs are supported:
在 LSP 中,支持以下 TLV:
-
Area Addresses TLV
区域地址 TLV -
Originating LSP Buffer Size TLV
始发 LSP 缓冲区大小 TLV -
Intermediate System Neighbors TLV
中间系统邻居 TLV -
End System Neighbor TLV
终端系统邻居 TLV -
Authentication Information TLV
认证信息 TLV -
Prefix Neighbor TLV
前缀邻居 TLV -
Protocols Supported TLV
支持的协议 TLV -
IP Interface Address TLV
IP 接口地址 TLV -
IP Internal Reachability Information TLV
IP 内部可访问性信息 TLV -
IP External Reachability Information TLV
IP 外部可访问性信息 TLV
PDU Type field shows the level of PDU. Level 1 PDU is showed with the value 18, Level 2 PDU is showed with the value 20.
ATT bit is the bit that set if the IS is connected to another area.
PDU Type 字段显示 PDU 的级别。1 级 PDU 显示值 18,2 级 PDU 显示值 20。 ATT 位是 IS 连接到另一个区域时设置的位。
OL bit is set to show that the link-state database of IS is overloaded.
OL bit 设置为表示 IS 的链路状态数据库过载。
IS Type shows the level of the IS. For level 1, it is 1. For level 2 it is set as 3.
IS Type 显示 IS 的级别。对于级别 1,它是 1。对于级别 2,它设置为 3。
CSNP (Complete Sequence Number PDU) provides LSP to be sent reliably. CSNPs are like
CSNP(完整序列号 PDU)提供可靠发送的 LSP。CSNP 类似于
Database Description (DD) packets in OSPF and they used to synronize the LSDBs.
数据库描述 (DD) 数据包,它们用于同步 LSDB。
CSNPs are exchange at the beginning, at the router initialization. And every 10 seconds after this, they are sent. In point to point links, both end routers send CSNPs. But for broadcast networks, only DIS sends CSNPs.
CSNP 在路由器初始化开始时进行交换。在此之后每 10 秒发送一次。在点对点链路中,两端路由器都发送 CSNP。但对于广播网络,只有 DIS 发送 CSNP。
IS-IS CSNPs carry two types of TLVs . These are :
IS-IS CSNP 携带两种类型的 TLV。这些是 :
-
Authentication TLVs
身份验证 TLV -
Entries TLVs
条目 TLV
Entries TLVs are identify the LSPs and CSNPs include the below TLVs for all LSPs in its database:
条目 TLV 用于标识 LSP,CSNP 包括其数据库中所有 LSP 的以下 TLV:
-
The remaining life of LSP
LSP 的剩余寿命 -
The ID of LSP
LSP ID -
The Sequence number of LSP
LSP 序列号 -
Checksum Value
校验和值
PSNPs (Partial Sequence Number PDU) are sent when there is a missing information. With PSNP, this specific missing information is requested. And it is also sent for acknowledgement of the receipt. So PSNPs are like LSAcks and LSRs ( Link State Request) in OSPF.
当缺少信息时,将发送 PSNP(部分序列号 PDU)。使用 PSNP 时,将请求此特定的缺失信息。并且它还被发送以确认接收。因此,PSNP 类似于 OSPF 中的 LSAck 和 LSR(链路状态请求)。
IS-IS CSNPs and PSNPs
In IS-IS Protocol, PSNPs are used in point-to-point links. PSNPs also includes the TLVs like CLNPs. (The remaining life of LSP, the ID of LSP, the Sequence number of LSP, Checksum Value)
在 IS-IS 协议中,PSNP 用于点对点链路。PSNP 还包括 CLNP 等 TLV。(LSP 的剩余寿命、LSP 的 ID、LSP 的序列号、校验和值)
Flooding Rules 泛洪规则
IS-IS Protocol compares the new coming LSP and the old one in LSDB (Link State Database). According to the comparement:
If the version of new coming LSP is newer, then;
IS-IS 协议比较了新传入的 LSP 和 LSDB(链路状态数据库)中的旧 LSP。根据比较: 如果新推出的 LSP 版本较新,则;
-
It is installed to the LSDB,
它被安装到 LSDB, -
PSNP PDU is send as an Ack,
PSNP PDU 作为 Ack 发送, -
This new version flooded to the other neighbors,
这个新版本淹没了其他邻居, -
IS-IS check that if any SPF is needed or not.
IS-IS 检查是否需要任何 SPF。
New version LSP, LSDP Database Update
If the version of new coming LSP is older, then;
如果新推出的 LSP 版本较旧,则;
-
PSNP PDU is send as an Ack,
PSNP PDU 作为 Ack 发送, -
Send the new version of that LSP
发送该 LSP 的新版本 -
Wait for Ack PSNP
等待 Ack PSNP
Old version LSP, Send New LSP
Lastly, if the version of new coming LSP is same, then;
最后,如果即将推出的新 LSP 的版本相同,则;
PSNP PDU is send as an Ack
PSNP PDU 作为 Ack 发送
Same version LSP, Ack PSNP
Sequence Number is used for checking the version of LSP. Higher sequence numbers are newer ones, means new versions.
序列号用于检查 LSP 的版本。较高的序列号是较新的,意味着新版本。
ISIS 路由协议详解(特征、与 OSPF 对比、拓扑结构、专业术语、路由器分类、网络类型、DIS、报文类型及抓包、邻居关系、路由渗透、路由过载 OL 位、ISIS 认证分类、ISIS 管理标签以及各种实验等)
读者,于 2021-02-18 14:14:21 发布
IS-IS 特征
IS-IS:中间系统到中间系统
- 链路状态路由协议
- IGP 协议
- SPF 算法
协议特点
- TLV 结构:ISIS 采用 TLV 结构,扩展性很好。为支持新的协议和特性,只需扩展新的 TLV 或子 TLV。例如,可以轻松扩展支持 IPv6、TE、MT 等协议和特性。ISIS 对 IPv6 的支持不需要对协议做大的改动,协议继承性很好。相比之下,OSPF 为支持 IPv6 需要开发全新的 OSPFv3。
- 运行层次:运行于链路层。
- 路由容量:承载路由数量在 IGP 协议中是最多的。
- 应用场景:企业网络主要用 OSPF,运营商用 IS-IS 和 BGP。
- 数据库与收敛:支持大容量的链路状态数据库,收敛速度更快,可以为二层和三层服务。
- 协议支持:支持 CLNP 协议(OSI 七层模型中的网络层协议,NSAP 地址相当于 TCP/IP 模型中的 IP 地址)和 IP(TCP/IP 中的网络层协议)。
- 子网掩码支持:支持 VLSM(可变长子网掩码)和 CDR(无类路由)。
- 网络类型:ISIS 只支持广播和点到点两种网络类型。在广播网络中,通过指定 DIS(Designated Intermediate System)管理控制网络上的泛洪扩散。
- 路由优先级:ISIS 路由优先级为 15,支持宽度量(Wide Metric)和窄度量(Narrow Metric)。IS-IS 路由度量的类型包括默认度量、延迟度量、开销度量和差错度量。默认情况下 IS-IS 采用默认度量,接口的链路开销为 10(默认窄度量,开销取值范围 1-63,接收到的最大开销 1023)。
- 收敛速度:收敛快速(比 OSPF 快),适合大型网络。
- 无连接网络服务:支持 CLNP(无连接网络协议)和 CLNS(无连接网络服务)。
协议架构
- 区域划分:IS-IS 基于路由器划分区域,而 OSPF 基于链路划分区域。
- 骨干路由器:区域之间要互联,每个区域必须有一个骨干路由器(L2,L1/2)。
- SNPA:区分设备上的不同接口,也叫接口 MAC 地址。例如:
display isis interface g0/0/0 verbose
。 - NSAP 长度:NSAP 长度为
area id + system id + SEL
,最小为 8 字节。其中,system id
最小 6 字节,SEL
为固定的 1 个字节,area id
长度可变。总长度为 8-20 字节。
IS-IS 与 OSPF 比较
相同点
- 都是应用广泛的 IGP,都是链路状态协议。
- 都支持 IP 环境。
- 都采用分层设计和分区域设计。
- 都通过 Hello 协议发现邻居,形成邻接关系。
- 在多路访问网络上选举 DR/DIS。
- 都遵循基本的链路状态数据库同步方法。
- 都使用 SPF 算法计算最佳路由。
- 无环路,收敛快。
- 都支持大规模网络应用。
不同点
- 协议环境:
- IS-IS 支持 CLNP 环境和 IP 环境。
- OSPF 仅支持 IP 环境。
- 网络类型支持:
- IS-IS 只支持点到点和广播网络类型。
- OSPF 支持点到点、广播、点到多点、NBMA 网络类型。
- 报文封装:
- IS-IS 报文封装在数据链路层帧中。
- OSPF 封装在 IP 包中。
- 区域划分:
- OSPF 基于接口划分区域。
- IS-IS 基于路由器划分区域。
- 邻接关系建立:
- OSPF 邻居关系建立比 IS-IS 复杂。
- 点到点链路邻接关系:
- OSPF 的邻接关系形成比 IS-IS 更可靠。
- 邻接关系级别:
- IS-IS 的邻接关系分成 Level-1 和 Level-2 邻接关系。
- 广播网络邻接关系:
- IS-IS 在同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有非 DIS 路由器之间也会形成邻接关系。
- OSPF 中,DROther 路由器只与 DR 和 BDR 建立邻接关系。
- DIS/DR 选举:
- DIS 无备份,DIS 可以被抢占。
- DR 有 BDR,DR 不能被抢占。
- 链路状态描述:
- OSPF 使用 LSA 描述链路状态。
- IS-IS 使用 LSP 描述链路状态。
- 数据库结构:
- IS-IS 的数据库结构比较简单,利于故障定位。
- OSPF 的 LSA 种类繁多,数据库结构复杂。
- 数据库同步过程:
- OSPF 和 IS-IS 的链路状态数据库同步过程不同。
- 老化时间与计时方法:
- OSPF 和 IS-IS 的最大老化时间和计时方法不同。
- 前缀处理:
- OSPF 将前缀作为最短路径树(SPT)的节点。
- IS-IS 将前缀作为叶子,前缀变化时 IS-IS 可以使用部分路由计算(PRC)更新叶子而不用全局计算 SPF。
- 路由度量类型:
- IS-IS 的路由度量类型(默认度量、延迟度量、开销度量和差错度量)比 OSPF 复杂。
- 扩展性:
- IS-IS 采用 TLV 结构,扩展性比 OSPF 更好。
- 拨号链路支持:
- OSPF 支持按需拨号链路。
- IS-IS 不支持。
- 工作层次:
- IS-IS 工作在二层数据链路层。
- OSPF 工作在三层。
关键概念
链路状态数据库(Link State Database,LSDB)
网络内所有链路的状态组成了链路状态数据库。IS 使用 SPF 算法利用 LSDB 来计算最佳路由。
链路状态数据包(Link State Packet,LSP)
在 IS-IS 协议中,每个 IS 都会生成 LSP,包含本 IS 的所有链路状态信息。每个 IS 收集本区域内所有的 LSP 生成自己的 LSDB。
区域(Area)
IS-IS 基于路由器划分区域,允许将整个路由域分为多个区域。
序列号 PDU(Sequence Number PDUs,SNP)
确保 IS-IS 的链路状态数据库同步以及使用最新的 LSP 计算路由。
- 部分 SNP(Partial SNP, PSNP):用于确认和请求丢失的链路状态信息,是链路状态数据库中的完整 LSP 的一个子集。功能上类似于 OSPF 协议中的 LSR 或者 LSAck 报文。
- 完整 SNP(Complete SNP, CSNP):用于描述链路状态数据库中的完整 LSP 列表。功能上类似于 OSPF 协议中的 DD 报文。
子网连接点(Subnetwork Point of Attachment,SNPA)
与三层地址对应的二层地址,通常在以太网接口中 SNPA 被设置为接口 MAC 地址。SNPA 用于区分设备上的不同接口。
IS-IS 发展历程
- 最初设计:ISIS 最初是国际标准化组织(ISO)为它的无连接网络协议 CLNP(类似于 TCP/IP 中的 IP 协议)设计的一种动态路由协议。
- 扩展与修改:IETF(国际互联网工程任务组)对 ISIS 进行了扩充和修改,使其能够同时应用在 TCP/IP 和 OSI 环境中,称为集成 ISIS。
- 协议优势:ISIS 协议支持 TLV 特性,使其具有很强的扩展性和生命力。作为一种高扩展性的 IGP 协议,ISIS 的使用场景不局限于 IP 网络,还包括数据中心、IPv6 等各种场景。
TLV 结构
- 定义:TLV(Type Length Value)即类型、长度、值。
- 支持协议:具有 TLV 功能的协议包括 ISIS 和 BGP。
协议关系
- IS-IS:中间系统之间的路由协议。
- ES-IS:主机系统与中间系统之间的协议。
- 相关协议:IGMP、ARP、ICMP、NSAP(相当于 IP 地址)。
- 集成 ISIS 的 NSAP:NET 地址。
集成 IS-IS 特点
- 支持 CLNP 网络、IP 网络。
- 工作在数据链路层。
IS-IS 特征
- 维护一个链路状态数据库,并使用 SPF 算法来计算最佳路径。
- 用 Hello 数据包建立和维护邻居关系。
- 为了支持大规模的路由网络,IS-IS 在自治系统内采用骨干区域与非骨干区域两级的分层结构。
- 在区域之间可以使用路由汇总来减少路由器的负担。
- 支持 VLSM 和 CIDR,可以基于接口、区域和路由域进行验证,验证方法支持明文验证、MD5 验证和 Keychain 验证。
- IS-IS 只支持广播和点到点两种网络类型。在广播网络类型中通过选举指定 IS(Designated Intermediate System,DIS)来管理和控制网络上的泛洪扩散。
- IS-IS 路由优先级为 15,支持宽度量(Wide Metric)和窄度量(Narrow Metric)。IS-IS 路由度量的类型包括默认度量、延迟度量、开销度量和差错度量。默认情况下 IS-IS 采用默认度量,接口的链路开销为 10。
- 收敛快速,适合大型网络。
IS-IS 工作过程
- 建立邻居关系。
- 同步 LSDB 数据库。
- 执行 SPF 算法计算路由。
IS-IS 拓扑结构
- IS-IS 在自治系统内采用骨干区域与非骨干区域两级的分层结构。
- Level-1 路由器部署在非骨干区域,Level-2 路由器和 Level-1-2 路由器部署在骨干区域。
- 每一个非骨干区域都通过 Level-1-2 路由器与骨干区域相连。
- 所有物理连续的 Level-1-2 和 Level-2 路由器构成了 IS-IS 的骨干区域。
ISIS 专业术语
ISIS 自治系统划分
ISIS 自治系统有骨干区域和非骨干区域的划分,为了支持大规模路由网络:
- Level-1:属于非骨干区域。
- Level-2 和 Level-1-2 路由器属于骨干区域。
Level-2 级别的路由器(形成 Level-2 邻居关系的路由器)可以不在同一个区域。
ISIS 路由器分类
1. Level-1 路由器
- 职责:负责区域内的路由。
- 邻居关系:
- 只能和同一区域的 Level-1 路由器或 Level-1-2 路由器形成 Level-1 的邻居关系。
- 路由访问:
- Level-1 路由器通过离它最近的 Level-1-2 路由器(相当于网关)获取到一条缺省路由,通过缺省路由访问其他区域。
2. Level-2 路由器
- 职责:负责区域间的路由。
- 邻居关系:
- 可以和同一区域的 Level-2 和 Level-1-2 路由器建立 Level-2 的邻居关系。
- 也可以和不同区域的 Level-2 和 Level-1-2 路由器形成 Level-2 的邻居关系。
- 路由信息:
- Level-2 路由器可以获取整个 ISIS 区域的所有明细路由。
- Level-1-2 和 Level-2 路由器同属于 Level-2 级别路由器,这些路由器构成了骨干区域。这些 Level-2 级别路由器(包括 Level-2 和 Level-1-2)必须是物理连接,以保证骨干网的连续性。
3. Level-1-2 路由器(默认路由器都是 Level-1-2 路由器)
-
职责:同时属于 Level-1 和 Level-2 路由器。
-
邻居关系:
- 可以和同一区域的 Level-2 和不同区域的 Level-2 路由器形成 Level-2 的邻居关系。
- 也可以和相同区域的 Level-1 路由器形成 Level-1 的邻居关系。
- 还可以和同一区域的 Level-1-2 路由器建立 Level-1 和 Level-2 的邻居关系。
- 也可以和不同区域的 Level-1-2 路由器形成 Level-2 的邻居关系。
-
路由连接:
- 所有 Level-1 路由器必须通过 Level-1-2 路由器才能连接到其他区域。
-
LSDB 维护:
- Level-1-2 维护两个 LSDB:
- Level-1 的 LSDB 用于区域内路由。
- Level-2 的 LSDB 用于区域间路由。
- Level-1-2 维护两个 LSDB:
实验:
拓扑结构与设备配置
- 拓扑图:AR1 和 AR2 属于 level - 1 的邻居关系,AR2 和 AR3 属于 level - 2 的邻居关系。
- AR1 配置:注意将 isis 度量值从默认窄度量值改为宽度量值。
- AR2 配置:注意将isis度量值从默认窄度量值改为宽度量值。
- AR3配置:注意将 isis 度量值从默认窄度量值改为宽度量值。
- 查看 isis 邻居关系:AR1 和 AR3 之间无法建立邻居关系。
- 查看 ip 路由表
AR1 负责区域内路由,所以它没有 49.0002 的路由,23.1.1.0 的路由是因为 AR2 的 0/0/1 接口同区域。
AR2
AR3:由于是 level - 2 路由器,负责区域间路由,所以知道整个 isis 区域的明细路由。
- 查看 lsdb 数据库:ATT 位为 1 表示 AR2 会给 AR1 发送一个 ATT 置为 1 的 lsp 信息,AR1 收到后,会自动产生一条缺省路由,然后 AR1 会通过离自己最近的 Level - 1 - 2 路由器访问外部区域。
- 通过命令将ATT设置为0
- 查看效果:这时AR1没有缺省路由。
ISIS的网络类型
-
MA与点到点:ISIS的网络类型有MA和点到点。如果NBMA需要配置子接口。
-
DIS(Designated Intermediate System)
-
在广播网络中,IS - IS 需要在所有的路由器中选举一个路由器作为 DIS。DIS 用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的 LSP,用来描述该网络上有哪些网络设备。其功能是在广播网络实现更高效的数据库同步。
-
DIS 伪节点(只存在 MA 网络)相当于 ospf 的 DR,DIS 默认优先级 64(范围 0 - 127)。不同的邻居关系会各自选举出一个 DIS,level - 1 的邻居关系会选举出一个 DIS,level - 2 的邻居关系会选出另外一个 DIS。
-
DIS 选举原则:DIS 优先级数值大的成为 DIS,如果优先级相同,则比较设备 MAC 地址,MAC 地址大的成为 DIS,DIS 会抢占,优先级为 0 时也参与 DIS 选举(ospf 优先级为 0 不参与选举,DR 设备不会抢占)。
-
-
示例:AR1 和 AR2 之间,因为默认优先级是 64,比较 MAC 地址后,AR1 的 MAC 地址大,所以 AR1 是 level - 1 邻居关系中的 DIS。
-
-
更改DIS优先级:如果想把AR3作为level - 2的DIS,可更改它的优先级:Interface g0/0/0,Isis dis - priority 100 (大于64) level - 2。
-
伪节点相关:DIS用来创建和更新伪节点,其负责生成伪节点的lsp用来描述这个网络上有哪些网络设备,伪节点是用来模拟MA网络的一个虚拟节点,并非真实的路由器,用于简化拓扑。伪节点用DIS的systemid + 非0值的circuit id标识。DIS发送hello 3s,非DIS发送hello是10s。
-
-
示例:
- 这个代表AR1的system id
这两位表示非 0 值的 circuit id
这两位表示用来 lsp 分片
如下图,是 AR1 作为 DIS 生成的伪节点,✳号表示这个 lsp 是自己产生的
AR2 和 AR3 之间 AR2 是 DIS,所以伪节点由 AR2 生成,下图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/38aa7d657c305795d0735a0208e39eff.png =900x)
- NSAP(Network Service Access Point):由IDP和DSP组成,NSAP其实就类似于一个ip地址。
-
IDP就类似于网络地址,DSP相当于主机地址。
-
IDP由AFI和IDI组成:AFI表示地址分配的机构和地址分配的格式,IDI表示具体含义未明确。
-
DSP由High Order DSP,system ID,SEL组成:High Order DSP用来分隔区域,system ID用来区分主机,类似router id,SEL表示服务类型。
-
AFI + IDI + High Order DSP组成Area ID(区域地址,如49.0001),system ID类似于router id号(如0000.0000.0001),SEL表示最后两位(如00),结合起来就是49.0001.0000.0000.0001.00。
-
NET地址就是集成ISIS地址NSAP中的sel为00就是NET地址。NSAP(NET)最长20个字节,最短是8个字节。例如49.0001.0000.0000.0001.00(判断是从后往前确定,判断sel(固定1字节),system id(固定6字节),area id(1 - 13字节))。
ISIS报文类型
- 总体类型:一共9种报文类型。
- 三大类报文:ISIS共有3大类报文类型:IIH(Hello),LSP,SNP(CSNP,PSNP)。但是由于level - 1和level - 2是完全独立的,所以它们都有各自的三大类报文,因此导致ISIS共有九种报文。
-
链路状态信息的载体:LSP、SNP。
-
Hello PDU:用于建立和维护邻居关系。
-
广播网中的 level - 1 ISIS 使用 level - 1 LAN IIH。
-
广播网中的 level - 2 ISIS 使用 level - 2 LAN IIH。
-
P2p 网络中的 Hello 报文,因为是点到点,所以不存在组播,所以没有广播中的组播 MAC 地址,只是一个普通的 Hello 报文。
-
在 MA 网络类型中,是用组播形式发现邻居关系的,isis 不是基于 ip 的,而是基于数据层作为承载的,也就是说这个组播不是组播的 IP 地址,而是组播 MAC 地址。
-
level - 1 hello 组播 mac 01 - 80 - c2 - 00 - 00 - 14(固定的组播 MAC 地址)。
-
level - 2 hello 组播 mac 01 - 80 - c2 - 00 - 00 - 15(固定的组播 MAC 地址)。
-
-
判断Hello报文类型:查看抓包,如果抓到的 MAC 地址是 01 - 80 - c2 - 00 - 00 - 14,就表示是 level - 1 的 Hello 包,如果抓到的 MAC 地址是 01 - 80 - c2 - 00 - 00 - 15,就表示是 level - 2 的 Hello 包。
-
点到点网络示例:在AR1的0/0/0抓包。
-
拓扑图:点到点网络拓扑图
- AR4抓包:AR4的3/0/0抓包,查看ppp链路的Hello报文,AR4:reset isis all。
- 只是普通的Hello报文,没有组播MAC地址信息,因为是p2p网络。
-
MA与P2P网络Hello报文区别:P2p多了一个local circuit id,缺少了MA网络中的DIS优先级以及表示DIS和伪节点的system id字段。
-
示例:
- MA网络:
- P2p网络:
-
LSP(Link State Packet):类似于ospf的LSA,用于交换链路状态信息。
-
Level - 1 LSP:由level - 1 ISIS传送。
-
Level - 2 LSP:由level - 2 ISIS传送。
-
Level - 1 - 2 ISIS可以传送以上两种LSP。
-
LSP字段:
-
Att字段:level - 1 - 2路由器给level - 1路由器发送的att值为1表示level - 1路由器想要到达其他区域,生成一条缺省路由从这个level - 1 - 2路由器出去,如果值为0是无法通过这个level - 1 - 2路由器出去。
-
OL字段:含义未明确。
-
IS - Type字段:值为01表示是level - 1的LSP,如果值为11表示level - 2的LSP。
-
LSP携带有路由信息,在ospf LSA中携带的是状态信息。
-
-
-
SNP(部分序列号协议数据单元):用于维护LSDB的完整与同步,且为摘要信息。
-
CSNP(全部序列号协议数据单元):用于同步LSP,类似于ospf中的DD报文,用于通告LSP的摘要信息,CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步,在广播网络上,CSNP由DIS定期发送(10s),点到点链路上,CSNP只在第一次建立邻居关系时发送。有level - 1 CSNP和level - 2 CSNP。
-
PSNP(局部序列号协议数据单元):用于请求和确认LSP,类似于ospf中的LSR和LSack报文,包含部分LSDB的摘要信息,能够对LSP进行请求和确认。有level - 1 PSNP和level - 2 PSNP。
-
SNP PDU:是LSDB的摘要信息,主要用于维护LSDB的完整与同步。
-
-
ISIS形成邻居关系的条件
- 基本原则:
-
只有同一层次的相邻路由器才有可能成为邻居。
-
对于Level - 1路由器来说,区域号必须一致。
-
链路两端Is - IS接口的网络类型必须一致(要么都是MA,要么都是P2P)。
-
链路两端IS - IS接口的地址必须处于同一网段。
-
如果配置了认证,则认证参数必须匹配。
-
最大区域地址数字段的值必须一致,默认值是0,表示支持3个区域地址。
- 特殊情况:
-
不同层次类型的路由器不能形成邻居关系,即Level - 2路由器不能和Level - 1路由器形成邻居关系,但是Level - 1 - 2路由器既能和同一区域的Level - 1路由器形成Level - 1邻居关系又能和相同区域或者不同区域Level - 2路由器形成Level - 2邻居关系。
-
Level - 1路由器只能与同一区域的Level - 1路由器或者Level - 1 - 2路由器形成Level - 1邻居关系。
- IP网段问题:
-
根据原理,IS - IS邻居关系的3. IP网段问题(续):
-
根据原理,IS - IS邻居关系的形成与IP地址无关,所以容易导致相互形成邻居关系的路由器间处于不同的IP网段。为了解决这一问题,华为设备进行同一网段检查,保证邻居关系的正确建立。
-
如果网络需要不检查子网掩码,在P2P网络中,可以配置接口忽略IP地址掩码检查;在广播网络中,需要将以太网接口模拟成P2P接口,然后才可以配置接口忽略IP地址掩码检查(也就是说可以保持不同网段)。
-
配置命令:接口视图下,isis peer - ip - ignore忽略ip地址检查(两端设备都得配置)。
-
示例:
-
在上述p2p网络中,AR5将地址改为100.100.100.100/24,此时建立不了isis邻居关系,在AR4和AR5接口上都配置isis peer - ip - ignore(忽略ip地址检查)(MA网络中不能这么做)。
-
MA网络操作:在上述实验MA网络实验中,AR2和AR3之间,更改AR3的地址变为和AR2不同网段,如100.100.100.100/24,然后在AR2和AR3之间的接口上,将接口类型改为p2p网络:isis circuit - type p2p,然后配置isis peer - ip - ignore,此时AR2和AR3之间可以建立isis邻居关系。
-
邻居关系建立过程
- 广播邻居关系的建立:
- P2p邻居关系的建立:存在单通风险,例如AR1发给AR2,AR2变为up状态,AR2回包时,AR1没收到,这时AR1状态变不了up状态,就导致单通风险,这时可以设置三次握手机制来解决问题。一端支持三次握手,另一端支持二次握手,那么两端设备向后兼容,只能建立二次握手。
LSP交互过程
- 广播网络LSP交互过程:
-
步骤:
-
假设新加入的路由器R3已经与R2(DIS)和R1建立了邻居关系。
-
建立邻居关系之后,R3将自己的LSP发往组播地址(Level - 1:01 - 80 - C2 - 00 - 00 - 14;Level - 2: 01 - 80 - C2 - 00 - 00 - 15)。这样网络上所有的邻居都将收到该LSP(该LSP里面包含了R3的路由信息)。
-
该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP报文,进行该网络内的LSDB同步。
-
R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
-
DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。
-
- 判断LSP的新旧:
-
DIS接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并广播(通告给所有的邻居)新数据库内容。
-
若DIS收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容;若收到的LSP序列号小于本地LSP的序列号,就向入端接口(对端)发送本地LSP报文(表示自己的LSP最新,将自己的LSP信息发送给对端,序列号的值越大,LSP越新)。
-
若收到的LSP和本地LSP的序列号相等,则比较Remaining Lifetime(剩余时间)。若收到的LSP报文的Remaining Lifetime为0,则将本地的报文替换为新报文,并广播新数据库内容;若收到的LSP报文的Remaining Lifetime不为0而本地LSP报文的Remaining Lifetime为0,就向入端接口发送本地LSP报文(Remaining Lifetime为0最新)。
-
若两个序列号和Remaining Lifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并广播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文(Checksum越大越新)。
-
若DIS收到的LSP和自己LSDB中的LSP比较发现两个序列号、Remaining Lifetime和Checksum都相等,则不转发收到的LSP报文。
- P2p网络LSP交互过程:
- MA网络中PSNP只有LSR功能,在p2p网络中还有LSAck功能,因为MA网络中PSNP报文是周期性发送的(10s),而p2p网络中的PSNP报文只发送一次。
- P2P网络LSDB同步过程:
-
建立邻居关系之后,R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP(p2p网络中CSNP报文只发送一次)。
-
假定R2向R1索取相应的LSP。R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
-
如果在接口LSP重传定时器超时后,R1还没有收到R2发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。点到点链路上LSP报文的重传间隔时间为5秒。上图如果R1发送的LSP信息发送给R2,同时开启一个重传定时器(5s),R2发送PSNP回包给R1,由于各种原因(如网络原因)R2的PSNP回包发出去了但是R1没接收到,那么5s后R1会再发送一次LSP信息。
- 在P2P网络中判断LSP的新旧:
-
若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。
-
若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到的LSP报文的Remaining Lifetime为0,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到的LSP报文的Remaining Lifetime不为0而本地LSP报文的Remaining Lifetime为0,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
-
若收到的LSP和本地LSP的序列号相同且Remaining Lifetime不为0,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
-
若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该收到的LSP报文。
实验
- ISIS路由渗透:
-
isis默认开销值10。
-
问题:AR1会走一条次优路由,因为AR1不知道49.0002区域的路由信息(开销),默认走距离它最近的level - 1 - 2路由器(AR3)。
-
解决方法:需要在所有的level - 1 - 2路由器上做路由渗透解决次优路由的问题,将level - 2区域的明细路由引入到level - 1中。
-
拓扑图:
- 设备配置:
AR1:
AR2:
- AR6:
- 测试:AR1上测试路径,走AR3。
- 路由过载原理描述:
-
设置了过载标志位(OL 位)的 LSP 虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行 SPF 计算时不会使用这台路由器做转发,只计算该节点上的直连路由。
-
拓扑说明:R1 到 R4 的报文由 R5 转发,但如果 R5 的 OL 位置 1,则 R1 认为 R5 的 LSDB 不完整,将转发流量通过 R2、R3 转发给 4,但到 R5 直连地址的流量不受影响。
- 实验二:路由过载(OL):
-
AR5的OL位默认都为0,所以AR1的数据可以走AR5到达AR4。
-
查看命令:Display isis lsdb level - 2
- 设置命令:AR5的OL位设为1,其他路由器可以学到AR5的LSP,但是传递路由不会经过AR5。Isis 1,Set - overload
- Isis认证:
- 认证分为三类:接口认证,区域认证,路由域认证。
根据报文的认证方式,可以分为以下三类:
(1) 明文认证:一种简单的认证方式,将配置的密码直接加入报文中,这种认证方式安全性不够。
(2) MD5 认证:通过将配置的密码进行 MD5 算法之后再加入报文中,这样提高了密码的安全性。
(3) Keychain 认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。
-
明文认证不安全,Keychain认证:密码会变化。
-
接口认证:使能isis协议的接口以指定方式和密码对level - 1和level - 2的Hello报文进行认证,认证方式如下两种:
-
发送带认证的TLV(带认证的密码字段)的认证报文,本地对收到的报文也进行认证检查(检查密码)。
-
发送带认证的TLV的认证报文,本地对收到的报文不进行认证检查(不检查密码)。
-
-
区域认证:是指运行isis的区域以指定方式和密码对level - 1的SNP和LSP报文进行认证。
说明:
对于区域和路由域认证,可以设置为 SNP 和 LSP 认证。
1、本地发送的 LSP 报文和 SNP 报文都携带认证 TLV,对收到的 LSP 报文和 SNP 报文都 进行认证检查。
2、对发送的 LSP 封装认证信息并检查收到的 LSP,对发送的 SNP 不封装认证信息, 也不检查收到的 SNP。该情况下需要配置参数 snp-packet authentication-avoid。
3、对发送的 LSP 和 SNP 都封装认证信息,只检查收到的 LSP,不检查收到的 SNP。
该情况下需要配置参数 snp-packet send-only。
4、对发送的 LSP 和 SNP 都封装认证信息,不检查收到的 LSP 和 SNP。该情况下需要配 置参数 all-send-only。
-
路由域认证:是指运行isis的区域以指定方式和密码对level - 2的SNP和LSP报文进行认证。
-
配置命令:isis 1,Domain - authentication - mode simple plain Huawei
-
接口认证实验:
- 由于两端设备都配置了接口认证,这时邻居关系建立成功。
- 区域认证实验:
- AR3:
有对端回环口的路由信息
LSP分片
- 概述:
ISIS进程最多可以生成13056个LSP(256 + 50*256)分片。
- 工作原理:
在 IS-IS 中:
- 每个系统 ID 都标识一个系统,每个系统最多可生成 256 个 LSP 分片。
- 通过增加附加系统 ID,可以最多配置 50 个虚拟系统,从而使 IS-IS 进程最多可生成 13056 个 LSP 分片。
使能分片扩展功能之后:
- 如果存在由于报文装满而丢失的信息,系统会提醒重启 IS-IS。
- 重启之后,系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的 LSP 中发送出去,并通过 24 号 TLV 来告知其他路由器此虚拟系统和自己的关系。
- 工作模式:
-
Mode1:ARB不支持分片功能,不知道RA1和RA2是RA虚拟出来的,RB会将他们三个看成三个独立的设备交互信息。
-
Mode2:RB支持分片,RB和对面三台路由器交互信息时都会看作RA的信息。
ISIS管理标签实验
- 配置示例:
管理标记特性
管理标记特性允许在 IS-IS 域中通过管理标记对 IP 地址前缀进行控制,可以达到简化管理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的 IS-IS 多实例(即我们说的 Tag)。
拓扑描述
假设 R5 只想收到 R6 的 Level-1 路由信息 66.66.66.66
。首先,可以给 R6 使能了 IS-IS 的接口配置相同的管理标记值 tag。然后在 Area49.0002 的 Level-1-2 路由器做从 Level-2 到 Level-1 区域的路由渗透时,应用匹配指定的 tag。即可满足需求。
注意事项
-
使能管理标记时,必须使能 IS-IS wide metric 属性。
-
IS-IS 的度量值有两种:窄度量(narrow)和宽度量(wide)。
-
在早期的 ISO10589 中,使能 IS-IS 协议的接口下最大只能配置值为 63 的开销值(其范围是 1-63),此时认为 IS-IS 开销类型为 narrow。但是在大型网络设计中,较小的度量范围不能满足实际需求。所以在 RFC3784 中规定,使能 IS-IS 协议的接口开销值可以扩展到 16777215,IS-IS 路由开销值可以达到 4261412864,此时 IS-IS 的开销类型为 wide。
-
IS-IS 设备接收和发送路由的开销类型为 narrow。
-
wide 类型下的 IS-IS 和 narrow 类型下的 IS-IS 不可实现互通。如果需要互通,就必须设置成一致的开销类型,让网络上所有路由器都可以接收其他路由器发的所有报文。
- AR2配置:
- 测试结果:这时AR5可以访问AR6和AR7的回环口。
改进SPF的计算方法
- 优化原理:
当网络拓扑变化时,不用所有网络节点都重新进行SPF算法,只需要在新设备和旧设备相连的线路上进行I - SPF算法即可。
- 相关图示:
-
- 在 ISO-10589 中定义使用 Dijkstra 算法(即迪杰斯特拉算法)进行路由计算。当网络拓扑中有一个节点发生变化时,这种算法需要重新计算网络中的所有节点,计算时间长,占用过多的 CPU 资源,影响整个网络的收敛速度。
-
- I-SPF 改进了这个算法,除了第一次计算时需要计算全部节点外,每次只计算影响的节点,而最后生成的最短路径树 SPT 与原来的算法所计算的结果相同,大大降低了 CPU 的占用率,提高了网络收敛速度。
-
-
在路由计算中,路由代表叶子,路由器则代表节点。如果 I-SPF 计算后的 SPT 改变,PRC 会只处理那个变化的节点上的所有叶子;如果经过 I-SPF 计算后的 SPT 并没有变化,则 PRC 只处理变化的叶子信息。
如一个 IS 接口,则整个网络拓扑的 SPT 是不变的,这时 PRC 只更新这个节点的接口路由,从而节省 CPU 占用率。
-
-
- PRC 和 I-SPF 节点使能一个 IS-配合使用可以将网络的收敛性能进一步提高,它是原始 SPF 算法的改进,所以已经代替了原有的算法。
-
- 默认情况下华为路由器采用 I-SPF 和 PRC 进行计算,不需要命令配置。
生成LSP的间隔时间相关配置
- 配置展示:
加快SPF的计算时间和泛洪LSP的时间配置
- 加快SPF计算时间配置:
- 加快泛洪LSP时间配置:
应用场景
- 正常情况与改进方式:
正常情况下,当IS - IS收到其它设备发来的LSP时,如果此LSP比本地LSDB中相应的LSP要新,则更新LSDB中的LSP并用一个定时器(900s)定期将LSDB内已更新的LSP扩散出去。LSP快速扩散特性改进了这种方式,使能了此特性的设备收到一个或多个较新的LSP时,在路由计算之前先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。
- 注意事项:
用户可以指定每次扩散的LSP数量,这个数量是针对所有IS - IS接口的。如果需要发送的LSP的数量大于这个数,则就发送lsp - count个LSP。如果配置了定时器,在路由计算之前如果这个定时器未超时,则立即扩散;否则在该定时器超时后发送。
例如,第二台路由器设置lsp - count值为2,第一台路由器有三个lsp信息需要发送给第二台路由器,这时第二台路由器收到第一台路由器发送的2个lsp后就直接转发给第三台路由器,剩下的一个lsp信息等待定时器超时后再发送。
via:
-
IS-IS Packet Types ⋆ | IHH | LSP | PSNP | CSNP | IPCisco.com
https://ipcisco.com/lesson/is-is-packet-types/ -
Introduction to IS-IS
https://networklessons.com/is-is/introduction-to-is-is -
ISIS路由协议详解(特征、与OSPF对比、拓扑结构、专业术语、路由器分类、网络类型、DIS、报文类型及抓包、邻居关系、路由渗透、路由过载OL位、ISIS认证分类、ISIS管理标签以及各种实验等)_is和ospf详解-CSDN博客
https://blog.csdn.net/weixin_45123715/article/details/113792914