导图社区 中间系统中间系统
链路状态协议,通过路由器生成LSP,通过邻接关系,完成LSDB信息的同步,通过SPF算法对LSDB计算路由,通过计算出的ISIS路由放到IP路由表,来指导报文的转发。
编辑于2021-03-24 20:52:03IS-IS
一、基本概念
基本原理
链路状态协议,通过路由器生成LSP,通过邻接关系,完成LSDB信息的同步,通过SPF算法对LSDB计算路由,通过计算出的ISIS路由放到IP路由表,来指导报文的转发。
整体拓扑
ISIS与OSPF之间的区别: ①在OSPF中,每个链路只属于一个区域;而IS-IS,每个链路可属于不同的区域; ②IS-IS中,单个区域没有骨干与非骨干区域的概念;OSPF中,Area0被定义 为骨干区域。 ③IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,生成最短路径树; OSPF只在同一个区域内才使用SPF算法,区域之间的路由通过骨干区域转发。
路由器分类
L1、L2、L1-L2级别路由器
地址结构
由区域ID+System ID+SEL组成 (共计20字节)
Area Address
标识区域(1到13字节不定长),可以最多配置3个区域地址,用于区域平滑迁移
System ID
标识主机或路由器,6字节长度,System id不能冲突
SEL
协议标识(1字节),用于标识不同的协议,IP则标识为00
网络类型
支持的网络类型
①广播,如Ethernet链路
②P2P,如PPP、HDLC链路
DIS和伪节点
广播网络需要选DIS,用于创建和更新伪节点,生成伪节点的链路状态协议数据单元LSP 路由器之间形成邻接关系,LSDB同步依靠DIS保证
DIS与OSPF中DR的区别
①从选举角度:ISIS 中优先级为0也能参与DIS选举,OSPF中优先级为0不能参与DR选举 ②从稳定性角度:DIS具有抢占特性,OSPF没有抢占特性 ③从邻接关系的角度:同网段同一级别的路由器都形成邻接关系,而OSPF中路由器只和DR、BDR建邻接关系
注意
对于NBMA网络,需要配置子接口且接口类型为P2P ISIS不支持P2MP链路
报文类型 (细分9种)
Hello PDU(3种)
用途:建立和维护邻居关系
分类
①广播 L1 IIH
②广播 L2 IIH
③P2P IIH
LSP(2种) 类似OSPF中的LSU
用途:用于交换链路状态信息
分类
L1 LSP
L2 LSP
LSP报文中重要字段
ATT字段:用于告知L1通过本L1/L2路由器去访问外部网络
OL字段:过载字段,收到该位置位的LSP时,计算路由时不采用过载路由器
IS Type字段:指明生成L1是L2的LSP,值01为L1,11为L2
SNP(4种)
用途:全部或部分的LSP,用来同步LSDB信息
分类
CSNP(全部序列号报文) 所有LSDB中LSP的摘要信息 (类似OSPF的LSR和LSAck)
L1 CSNP
L2 CSNP
注:广播网络上,CSNP由DIS定期发送(10s) P2P链路上,CSNP只在第一次建立邻接关系时发送
PSNP(部分序列号报文) 类似于 OSPF 中的 DBD
L1 PSNP
L2 PSNP
注:PSNP只列举最近收到的一个或多个LSP序列号,一次对多个LSP进行确认 LSDB不同步时,用PSNP来同步LSDB
二、邻居关系
影响邻居建立的因素
①区域,L1邻居区域必须一致
②路由器级别
③广播型网络要求掩码一致,P2P不要求掩码一致
④接口网络类型,网络类型了、链路层协议必须一致
⑤认证必须一致
⑥System id 不能冲突
广播链路 (选DIS)
邻居建立的过程: ①A广播发送LAN Hello,报文中无邻居标识。 ②B收到报文后, B干两件事:第一,标识和A邻居状态为Initial。 第二,B回复LAN Hello报文,报文中标识邻居为A。 ③A收到B的LAN Hello报文后, A干两件事: 第一,将与B的邻居状态标为Up。 第二,向B回复LAN Hello报文,报文中标识邻居为B。 ④B收到报文后,将与A的邻居状态标为Up。两个路由器建立了邻居关系。 注:Hello包中用system id标识对方
邻居建立后需要选DIS,会等待两个Hello报文间隔进行DIS选举
DIS选举机制, ①优先级值越高越优先,(缺省为64,范围是0-127) ②优先级相同,接口MAC大的优先。 注:PPP网络中没有MAC地址,则比较system-id,值越大越优先。
DIS特点: 作用:周期性(10s)通告LSDB摘要信息CSNP ①可分为L1、L2的DIS ②优先级为 0 时可以参与选举 ③无备份DIS,DIS有抢占特性(不会影响邻居间的状态,对路由计算有影响) ④其他路由器和 DIS 建立全互连的邻居关系 ⑤邻居建立后 2 倍的 hello 时间竞选DIS。
P2P链路 (默认3次握手)
两次握手机制: 路由器收到对端的 P2P Hello报文,就把邻居的状态标记为UP,完成邻居的建立。
三次握手机制: 通过P2P Hello 完成三次握手建立邻居关系,类似广播邻居关系的建立
IS-IS建立邻居关系的原则 (4原则)
①同一层次的相邻路由器才有可能成为邻居。 ②Level-1路由器,区域号必须一致。 ③接口的网络类型必须一致。 注:以太网接口模拟成P2P接口,可以建立P2P链路邻居关系 ④接口地址必须处于同一网段。 注:如果不在同一个网段,可配置Hello报文不做IP地址检查,也能建立邻居。 对于P2P接口只需将接口配置忽略IP地址检查; 对于以太网接口,需要模拟成P2P接口,再配忽略IP地址检查。
LSP的交互过程
LSP的产生原因
①邻居Up或Down ②IS-IS相关接口Up或Down ③引入的IP路由发生变化 ④区域间的IP路由发生变化 ⑤接口被赋了新的metric值 ⑥周期性更新
LSP的处理过程
①接收的新的LSP放到自己的LSDB数据库中,并标记为flooding。 ②发送新的LSP到除了收到该LSP的接口之外的接口。 ③邻居再扩散到其他邻居。
LSP的“泛洪”
指当一个路由器向相邻路由器通告自己的LSP后,相邻路由器再将此LSP报文传送到除发送该LSP的路由器外的其它邻居,并这样逐级将LSP传送到整个层次内所有路由器的一种方式。
LSDB的同步
广播链路上LSDB的同步
同步过程 BMA网络在选出DIS后进行LSDB的同步,DIS周期10s发送CSNP报文,包含LSDB中摘要信息。 步骤1:新加入的路由器C首先发送Hello报文,与其他路由器建立邻居关系。 步骤2:建立邻居关系之后,C等待LSP刷新定时器超时,以组播方式发LSP。所有的邻居都将收到该LSP。 注:组地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15) 步骤3:然后DIS把C的LSP放到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文,进行LSDB的同步。 步骤4:C收到DIS发来的CSNP报文,对比LSDB信息,向DIS发送PSNP报文请求自己没有的LSP。 步骤5:DIS向C发送对应的LSP进行LSDB的同步。
DIS的LSDB更新过程
收到的LSP在自身LSDB中的情况: ①DIS收到LSP,在LSDB中查找是否有该LSP信息。若没有,则放到LSDB中并组播更新。 收到的LSP在自身LSDB中时: ②比较LSP序列号。 若收到的LSP序列号大,就把收到LSP放入LSDB中,并组播更新。 若本地LSP序列号大,就向对端发送本地LSP报文。 ③若序列号相同,则比较“剩余存活时间”。 若收到的“剩余存活时间”小,就把收到的LSP放到LSDB中,并组播更新LSDB。 若本地LSP报文的“剩余存活时间”小,就向对端发送本地LSP报文。 ④若序列号和“剩余存活时间”都相等,则比较“校验和”。 若收到的LSP的“校验和”大,则把收到的LSP放入LSDB中,并组播更新LSDB。 若本地的LSP“校验和”大,就向对端发送本地LSP报文。 ⑤序列号、剩余存活时间”和“校验和”都相等,则不转发该报文。
P2P链路上LSDB的同步
同步过程 前提:A先与B完成邻居关系的建立。 步骤1:A与B互发CSNP给对端设备,报文中包含各自的LSP摘要信息。双方根据收到CSNP报文会和自身的LSDB做比较, 对比自身缺少的LSP,则发送PSNP请求相应的LSP。 步骤2:假定B向A请求相应的LSP。A回复B请求的LSP的同时启动LSP重传定时器,并等待B发送PSNP对收到LSP做确认。 步骤3:如果A在重传定时器超时后,A依然没收到B发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。
注意!!! 在P2P链路上PSNP有两种作用: ①作为Ack应答以确认收到的LSP。 ②用来请求所需的LSP。
P2P链路LSDB更新过程
①若收到的LSP序列号大,则将收到的LSP放到LSDB中,并回复PSNP报文, 并将LSP发送给其他邻居 若本地的LSP序列号大,则向对端发送本地的LSP,等待对方PSNP报文确认; ②若序列号相同,则比较“剩余存活时间”。 若收到的LSP“剩余存活时间”小,则将收到的LSP放到LSDB中并发送PSNP确认, 将该LSP发送给其他邻居 若本地LSP“剩余存活时间”小,则向对端发送本地的LSP,并等待对方的PSNP确认。 ③若序列号“剩余存活时间”一样,则比“校验和”。 若收到LSP的“校验和”大,则将收到的LSP放入LSDB中并发送PSNP做确认, 将该LSP发送给其他邻居 若本地LSP的“校验和”大,则向对端发送本地的LSP,并等待对方发PSNP确认。 ④若序列号、“剩余存活时间”和“校验和”都相同,则不转发该报文。
LSP解析
LSP实例
LSP内容说明
①LSPID
System id
产生 LSP 的路由器的 system-id
伪节点标识符
值为0,则表示是路由器LSP(类似OSPF中1类LSA), 值为非0,则表示是伪节点LSP,标识一个广播型网络及连接着哪些路由器 (伪节点连着哪些伪节点。查看详细信息就有该伪节点连接的这个广播型网络所有设备的system-id) DIS产生,类似OSPF 2类LSA
分片标识符
值为0,表示该LSP没有分片 值为非0,表示该LSP分片了
②序列号(Seq Num)
每生成一条 LSP 时 LSP 的序列号加 1,序列号越大越新 。
③校验和(Cheksum)
对LSP 做校验。LSP携带的校验和本地计算的校验不一致,则认为这条LSP不能用,并发送一条保持时间为0的通知删除该LSP
④保持时间(Holdtime)
从 1200s 按照时间递减,每隔 900s 泛洪一次 LSP。生存时间=1200s-保持时间, 生存时间为 1200s 的 LSP 是一条最新的 LSP。
⑤ATT/P/OL
ATT
告知L1路由器生成缺省路由,访问L2(其他外部)路由
L1/L2路由器在L1区域中携带
P
分区修复,用于实现 ISIS 中的虚链路,华为设备上没有实现该功能,所以 P 位永久置 0。
OL
说明什么: 说明该 LSP 的始发路由器的 LSDB已经超载,没有足够的资源计算路由
其他路由器会怎么做? 其它路由器在进行SPF计算时不使用这台路由器做转发,只计算该节点上的直连路由。
注意!!! OL和ATT不能同时置位。
四、ISIS路由
4.1 计算路由
总述
在 ISIS 中,拓扑信息和路由信息是分离的。 使用 system-id 表标识路由器(节点信息), 使用伪节点标识符标识伪节点信息, 使用 IPv4 的路由信息表示 SPF 中的叶子信息。 以路由器为节点采用 SPF 算法进行拓扑计算,不关心网络层协议。 路由信息以叶子的形式挂载在节点上。
LSP
路由器LSP (伪节点标识符值为0)
谁产生? 每台 ISIS 路由器都会在自身区域产生。 用途? 描述自身所连接的网络。 重要参数: NBR ID : 描述了自身连接的P2P邻居或伪节点 IP-Internal : 描述的内部路由信息
伪节点LSP (伪节点标识符值为非0)
谁产生? DIS产生。 用途? 描述广播型网段连接了哪些路由器,用system-id描述。 重要参数: SOURCE:伪节点的ID NBR-ID:伪节点连接的路由器
路由
区域内
采用 SPF 算法计算最短路径,区域内要求 LSDB 同步, L1的区域形成L1邻居关系; L2的区域形成L2邻居关系; L1/2 的路由器用于连接 L1 区域和L2 区域,会同时维护 L1 的 LSDB 和 L2 的 LSDB。
区域间
思考1:L2区域如何访问L1区域? 第一:L1/L2路由器做如下事件: L1/2 的路由器将L1 区域的路由,以叶子的形式挂载在自身节点上,向 L2 区域产生路由器LSP 描述自身链接有 L1 区域的路由, L2 区域的路由器通过该 LSP 计算去往 L1 区域的明细路由。
思考1:L1区域如何访问L2区域路由? 缺省情况,L1 的路由器访问 L2 区域的路由,使用缺省路由访问。 (L1区域类似OSPF特殊区域中的完全NSSA) 思考2:缺省路由如何产生的? 缺省情况,在 L1/2的路由器向 L1 区域产生的“路由器 LSP” 中会将 ATT 位置 1, L1 的路由器在收到 ATT位置1 的“路由器 LSP ”后,自动产生下一跳为L1/2 路由器的缺省路由, 开销值为自身去往该 L1/2 路由器的开销。 思考3:L1区域通过缺省路由访问L2区域的优缺点? 优点:减少 LSP 的大小,提高 L1区域路由器的处理效率 缺点:如存在多台L1/L2的路由器,容易产生次优路径。 思考4:针对L1区域是否还有其他方法访问L2区域的路由? 路由泄露。在 L1/2 路由器上配置路由泄露,将 L2 区域的路由引入 L1 区域,使得 L1 区域的路由器能够通过明细路由访问L2 的区域,防止次优路径,如多台L1/L2路由器则需要同时配置。
4.2 路由汇总
可以在什么设备上做汇总?能在L1/L2、L1、L2上做汇总, 在L1、L2上汇总只能汇总汇总路由器的直连路由(意义不大)。
4.3 路由引入
场景1:有两个L1/L2时: 在L1/L2上引入外部路由并且汇总时,建议以L1/L2方式引入进来并且加avoid-feedback、generate_null0_route, 防止次优路径和环路。 场景2:存在同区域的两台L1/L2路由器时, 在L1/L2上引入直连路由到L1且汇总到L1时,请加avoid-feedback防环。 汇总路由的开销值如何确定? ①ISIS汇总路由Cost值继承明细路由中Cost值最小的。 ②汇总路由的外部路由不用分片LSP描述,而是作为自身直连路由做描述 ③外网路由在L2路由器上引入时DU置0 isis引入外部路由时,必须遵守的规则: 任何级别的路由器,引入外部路由默认引入到级别2的区域 1.在级别1的路由器上引入外部路由,需要引入到级别1的区域,即import-route static level-1 2.在级别2的路由器上引入外部路由,需要引入到级别2的区域,即import-route static level-2 3.在级别1-2的路由器上引入外部路由,需要引入到级别1-2的区域,即import-route static level-1-2
4.4 路由过滤
①通过Filter-Policy 方式进行路由过滤。 ②通过Router-Policy方式进行路由过滤 2.在L1/L2路由器上做路由过滤 3.接收路由时做路由过滤 注:是对自身路由表做过滤,无法过滤LSP,其他路由器可以有该路由
计算路由时 filter-policy import 引入路由时 route-policy 将已引入的外部路由向外发布时 filter-policy export
4.5 缺省路由
缺省路由的产生方式: ①强制产生缺省路由 ②使用策略“条件式”产生缺省路由 参数:可以配置缺省路由的开销、Tag、发布缺省路由的级别 avoid-learning参数:不把其他协议或其他ISIS进程产生缺省路由放入本地路由表。(防环) 缺省路由的优选原则: ②有其他协议或其他ISIS进程的缺省路由时,下发缺省路由。 当ISIS协议下发缺省路由且比其他协议,
ISIS开销类型
narrow ①接口metric:6bit---63 ②路由metric: 10bit---1023 narrow类型下使用的TLV: 128号TLV:携带域内的IS-IS路由信息。 130号TLV:携带域外的IS-IS路由信息。 2号TLV:携带邻居信息。
wide ①接口metric:24bit ②路由metric: 32bit 135号TLV:携带IS-IS路由信息,扩展了路由开销值的范围,可携带sub TLV。 22号TLV:携带邻居信息。
五、选路原则
L1>L2>泄露L1(L2路由泄露到L1时,UD置位)
六、防环机制
当 L1 的区域存在多台 L1/2 的路由器,如果其中一台 L1/2 路由器失去了所有的 L2的邻居关系, 那么它也不会使用其他 L1/2 路由器产生的 ATT 位置 1 的 LSP。 如果此时在其他某台路由器上配置了 L2 的路由泄露进 L1,那么这台失去所有 L2 邻居的 L1/2 路由器可 以使用泄露的 L2 区域的明细访问 L2 区域的路由。
如何防止L1区域的环路
缺省情况下: L1 区域的路由会泄露到 L2 的区域中,不会再泄露回 L1 的区域。
如何防止L2区域的环路
L1/L2路由器把L2路由泄露到L1区域,U/D置位,其他L1/L2路由器不使用L1的LSP,泄露到L1区域的路由不会回到L2区域 注:当L1/L2路由器没有所有L2的邻居,则可以使用U/D置位的LSP
区域间防环
L1>L2>泄露L1(L2路由泄露到L1时,UD置位)
七、认证
认证分类
接口认证
对 L1、L2 、P2P的 hello 报文做认证,其他报文不做认证 缺省情况,发送报文携带认证,接受时,对报文做认证; 参数 send-only 指发送时携带认证,接收时忽略认证。
区域认证
对 L1 的 LSP、SNP(CS/PS)做认证
路由域认证
对 L2 的 LSP、SNP(CS/PS) 做认证 (注意如果配置了路由域认证,则整个路由域的路由器都要配置)
OSPF、ISIS 和 PPP 认证
共同点
①用于检验报文来源的合法性 ②可以支持多种认证类型,比如md5、明文
不同点
ISIS:接口,区域,路由域3种认证,针对不同报文做认证
OSPF:接口认证和区域认证,都是对所有报文做认证,接口和区域的区别就是认证的范围
PPP:分为 PAP 和 CHAP,一次认证,成功后就无需再次认证, PPP使用专用的认证报文实现,ISIS 和 OSPF 的认证信息直接携带在其他报文中。
默认情况下ISIS协议没有启用认证,则忽略对认证TLV的处理。
八、收敛特性
快速收敛机制
从计算拓扑和路由的角度: ①SPF:首次收敛时全网使用SPF。 ②增量最短路径优先算法I-SPF,对变化节点进行路由计算,加快路由收敛。 ③部分路由计算PRC,对发生变化的“路由”进行重新计算
从LSP的角度: ①LSP 快速扩散 ②智能定时器
按优先级收敛
九、特性支持
ISIS报文变长字段TLV
TLV三要素
ISIS、BGP、EIGRP等路由协议支持TLV,扩展性好。 当需要支持新功能或新协议时,只需定义新的TLV来支持即可。 协议可以根据需要携带TLV,协议也可以根据需要是否处理这些TLV
LSP分片扩展
IS-IS通过泛洪LSP来宣告链路状态信息,由于一个LSP能够承载的信息量有限,IS-IS将对LSP进行分片。
模式
Mode-1 用于部分路由器不支持LSP分片的情况
Mode-2 用于路由器都支持LSP分片的情况
ISIS主机名的映射
目标:方便对IS-IS网络的维护和管理
3种情况将System ID替换为主机名: ①显示IS-IS邻居时; ②显示LSDB中的LSP时; ③显示LSDB的详细信息时。
映射方式: 动态主机名映射 静态主机名映射
管理标记
RIPv1 不支持tag,V2支持。 OSPF只有5类、7类LSA支持tag ISIS支持tag
标记在什么情况下携带? 在宽度量风格下携带。
管理标记如何做?
ISIS开销
narrow 路由信息: 128 TLV 表示 域内路由信息 130 TLV 表示域外路由信息 邻居信息: 2号TLV 携带邻居信息
wrid 路由信息: 135 TLV 表示路由信息 邻居信息: 22号TLV 携带邻居信息
两端的开销风格不一样,邻居可以建立,路由不能计算的。
基本特点
IS-IS路由渗透
IS-IS路由过载
IPv6 ISIS
新增两种TLV
236 TLV 描述可达的IPv6前缀信息 IPv4中有IPv4内部可达性TLV和IPv4外部可达性TLV,在IPv6的扩展中使用“X”bit来区分“内部”和“外部”。
232 TLV IPv6 Interface Address “接口地址TLV”只包含发送hello包的接口的Link-local地址
IPv6 Reachability TLV
U:up/down bit ,标识这个前缀是否是从高level通告下来的(用来防环路)。
X:external original bit ,标识这个前缀是否是从其他路由协议中引入过来的。
S:subtlv present bit,子TLV标识位。(可选)
ST单拓扑的不足
必须同时运行IS-IS IPv4和IS-IS IPv6,部署不灵活。
IPv4区域来链接不同的IPv6区域,会丢弃IPv6的流量
MT(多拓扑)
邻居的建立,
路由可达(Prefix Reachable)与路由器可达(IS Reachable)的发布,
SPF计算以及路由计算。
四种新的TLV
TLV 229 – Multi-Topology Identifier
TLV 222 – Multi-Topologies Intermediate System
TLV 235 – Multi-Topologies Reachable IPv4 Prefixes
TLV 237 – Multi-Topologies Reachable IPv6 Prefixes
ISIS 规划
区域规划
ISIS Cost 设计
可以根据链路物理带宽设计
Cost的设计决定网络流量的走向
设置Cost值的3种方法: 在接口视图下设置接口的Cost值 在系统视图下设置ISIS实例下所有接口Cost值 在系统视图下根据带宽自动计算Cost值
ISIS 收敛规划
BFD For ISIS:链路故障快速检测
ISPF:加快路由收敛(缺省支持)
PRC:加快路由收敛(缺省支持)
LSP 快速扩散:加快LSDB同步
智能定时器:加快路由收敛,增强网络稳定性
安全规划
ISIS支持三种认证方式:接口认证;区域认证;域认证;
十、OSPF与ISIS之间的区别
①基本比较
相同点
均为IGP协议,且应用广泛
均支持IP环境
均采用分层设计和分区域设计
不同点
OSPF仅支持IP;IS-IS及支持IP,又支持CLNP
OSPF支持的网络类型丰富;IS-IS仅支持两种网络类型
OSPF支持虚连接;IS-IS虽然有类似功能,但是多数厂商不支持
OSPF工作在IP之上;IS-IS工作在数据链之上
OSPF基于接口划分区域;IS-IS基于链路划分区域
②邻接关系比较
相同点
均通过Hello建立和维护邻居关系
多点访问网络均选举DR/DIS
不同点
OSPF建立邻居关系条件相对苛刻;IS-IS的要求则相对宽松
OSPF建立邻居需要检查Hello报文中的掩码、认证、hello/dead时间间隔、区域等信息。而IS-IS形成邻居关系条件比较宽松。
OSPF点对点链路形成邻居关系比较可靠;IS-IS可靠性相对较弱
OSPF邻居关系不分层次;IS-IS邻居关系分两个层次
IS-IS邻居关系分为层1和层2
OSPF处理DR/BDR和IS-IS处理DIS方式不同
③数据库同步比较
相同点
均需形成统一的LSDB
不同点
OSPF LSA种类繁多;IS-IS LSP种类较少
OSPF与IS-IS数据库同步过程不同
OSPF LSA生存时间从零递增;IS-IS LSP生存时间从最大值递减
④其他比较
相同点
均使用SPF算法计算路由
无环路,收敛快,支持大规模网络部署
不同点
OSPF开销类型较为简单;IS-IS开销类型相对较复杂
OSPF支持按需拨号网络;IS-IS无此特性