ISIS路由协议基础
ISISI路由协议:
ISIS概述
-
中间系统到中间系统路由协议,基于链路状态算法,属于IGP协议的一种
-
适用于骨干网、运营商AS内。
-
运行在数据链路层,使用组播MAC地址进行发送报文,
-
组播MAC地址:Level-1:01-80-C2-00-00-14,Level-2:01-80-C2-00-00-15
- MAC第8个比特为0是组播mac,为1是单播mac。
ISIS 网络类型:
- 广播
- 点到点
ISIS PDU:
-
ISIS 通用报文(类似OSPF 头部报文):
报文重要字段 作用 lenght indicator 报文头长度 id length System ID区域的长度。为0时,表示长度为6字节。为255时,表示为空。 PDU type 报文类型 max…… 所支持最大区域数(默认为3) -
PDU 类型:
PDU type 值 名称 15 L1 LAN IIH 16 L2 LAN IIH 17 P2P IIH 18 L1 LSP 20 L2 LSP 24 L1 CSNP 25 L2 CSNP 26 L1 PSNP 27 L2 PSNP -
L1/L2 LAN IIH:
-
报文重要字段 作用 circuit type 路由器类型 Source id 发送该hello报文的system-id Holding time 邻居关系保持时间 pdu lenght 报文总长度 priority Dis 优先级 LAN ID dis设备的system-id和伪结点id(1bit)
-
-
P2P IIH:
报文重要字段 | 作用 |
---|---|
local circuit id | 本地链路状态id(本地物理接口号) |
因为在P2P链路中,没有dis的存在,所以在hello字段中,自然就不存在dis优先级和dis的system-id
- LSP报文:
报文重要字段 | 作用 |
---|---|
Remaining lifetime | LSP的生存时间.默认1200s,1200递减 |
LSP ID | 唯一标识一条LSP |
seq | 序列号 |
checksum | 校验和 |
P | 仅与l2 lsp有关,表示路由器是否支持修复被分割的区域 |
ATT | 由level-1-2路由器产生,当L1-2路由器存在L2的邻居关系时,收到level-2 lsp后,会在将L1 LSP ATT置位1 ,并向lever-1路由器发送,当level-1路由器收到之后,会生成一条指向level-1-2的默认路由。 |
IS type | LSP类型,判断是level-1类型、还是level-2类型 |
- ATT置位
ISIS 报文类型:
报文类型 | 作用 |
---|---|
Heelo | 建立维护邻居关系(10s/一次) |
CSNP | 描述LSDB里所有LSP的摘要信息 |
PSNP | 用于请求LSP,和确认LSP |
LSP | 用来包含链路状态详细信息 |
- hello分为三种:
- level-1邻居使用的 level-1 LAN IIH,
- level-2 邻居使用的是level-2 LAN IIH
- P2P网络使用P2P IIH
ISIS邻居关系的建立
- 广播网络(三次握手建立):
- 跟OSPF邻居关系建立差不多
- 点到点网络(三次握手建立):
- 两端发送IIH,不包含对方的system-id,但是会有一个TLV的变长字段,里面包含自己的电路id,对方收到之后,单向的邻居关系就已经建立完成,对方向我发送的iih机会携带对方的sys-id,还有自己的sys-id,此时,双向邻居关系建立完成。
DIS与DR区别
类别点 | DIS | DR |
---|---|---|
优先级 | 默认为64,为0页参与选举 | 默认为1,为0 不参与选举 |
选举时间 | 20s | 40s |
备份 | 无/具有抢占性 | BDR/无抢占性 |
邻居关系建立 | 与所有路由器建立邻居关系 | 只与BDR建立邻接关系 |
作用 | 减少LSA泛洪 | |
hello时间3/10s
dead时间10s.
优先级+mac地址
- 伪接节点,cir-id为0说明是dis产生的,
ISIS地址结构:
AFI
IDI
High Order DSP
- AREA -ID
sys-id
SEL
spf
ISIS路由器类型
路由器type | 作用 |
---|---|
Level-1 | 与同区域同类型的路由器建立level-1邻居关系,维护level-1类型的LSDB. |
Level-1-2 | 与不同区域不同类型的路由器建立level-1/level-2的邻居关系,维护level-1/level-2类型的LSDB. |
Level-2 | 与同区域同类型的路由器建立level-2邻居关系,维护level-2类型的LSDB. |
System-id | 唯一标识一台路由器 |
---|---|
Local Circuit ID | 链路状态ID(本地接口端口号) |
System-id{dis} | 标识DIS路由器(最后两位非0,就为DIS) |
点到点字段添加tlv字段,实现三次握手。
电路id:本地接口端口号
level-1设备会选择离他最近的level1-2
LSDB 同步更新过程:
-
广播网络:
-
新加入的设备产生有一个LSP后,会跟所有运行ISIS的接口扩散,网络范围内的所有人都可以收到,发送LSP没有确认机制,但是他可以通过DIS设备周期性的发送CSNP来进行确认,通过查看DIS发送的CSNP报文中是否存在自己的LSP,来确认DIS是否收到,若没有的话,就进行重新发送。
-
DIS设备会每10s周期的发送CSNP报文,里面携带的是LSP的摘要信息,其他路由器通过收到的CSNP报文,与自己本地LSDB做比较,检查不存在的LSP,然后通过发送PSNP请求该LSP
-
DIS设备收到PSNP请求后,会发送所请求的LSP,在发送之前,会在接口上设置一个SRM的标志,待LSP发送完成之后,就会清除该标志。因为MA网络中不需要PSNP确认,
-
-
P2P网络:
- 当邻居关系建立之后,设备产生新的LSP之后,A/B两端直接互相发送LSP报文,然后会在发送接口设置一个SRM的标志,只有收到PSNP确认报文后,才会清除该标志
- A/B两端收到LSP后,会在接收端口设置一个SSN的标志,而会回复一个PSNP确认报文,只有发出PSNP确认报文后,才会清楚该标志
- 收到PSNP确认后,才会认为对单已经收到了LSP,否则会5S重新发一次,LSP的发送时间间隔是5s
- 之后A/B双方会发送CSNP报文。
ISIS 泛洪机制:
-
路由器产生一条LSP后,会跟所有运行ISIS的接口进行扩散,路由器收到LSP后,会将这份LSP跟运行了ISIS接口的所有接口继续扩散,
-
路由器收到一条LSP后处理流程如下:
- ISIS路由器接收到一条LSP后,在本地LSDB中进行查找,看该LSP是否存在,若不存在,就将该LSP接受,并加入LSDB中,若存在,则进行比较:
- 比较seq,越大越新
- 比较剩余生存时间,
- 比较校验和,
- ISIS路由器接收到一条LSP后,在本地LSDB中进行查找,看该LSP是否存在,若不存在,就将该LSP接受,并加入LSDB中,若存在,则进行比较:
-
isis所有链路开销默认为10,
-
组播LSP,目的01-80-C1-00-00-14
NET 地址组成:
- 区域id-sysid-sel(1字节)
- 全16进制数。
- OL置为
- L1>L2>L1 ud置位。
- 接口认证:hello
- 区域认证:l1的报文
- 路由域认证l2的报文