TCP/IP网络模式 路由器 pc叫终端
OSI七层网络模式 中间系统(IS) 终端(end system)
ISIS和OSPF是“同父异母兄弟”
共同点(父亲):同是用SPF算法,都是链路状态协议
母亲: ISIS最早开发出来时用于OSI7层网络模型用于支持CLNP网络环境
OSPF TCP/IP用于支持IP网络环境(设备寻址路由)
CLNP(无连接的网络层协议)是OSI模型中的网络层协议,ISIS最初为了支持CLNP。
由于CLNP没有流行所以ISIS早期发展比较缓慢,比较沉寂。
ISIS是一种工作在链路层之上的网络层协议,拓展性比较强。
OSPF是工作在网络层之上的路由协议,协议号89.
ISIS工程小组,后续对ISIS协议进行拓展,让它能够支持IPV4,IPV6,CLNP,所以现在ISIS被称为集成ISIS协议。
由于拓展性强,收敛快,工作机制简单,被ISP大量的部署。
面试题:路由协议工作在哪些层
应用层:RIP(UDP,端口号520),BGP(TCP,端口号179)
OSPF协议号89,运行在网络层之上和传输层在同一层
ISIS协议工作在链路层之上独立的网络层协议。
4.ISIS的地址结构
在IP协议中使用IP地址对接口进行编制
CLNP协议使用NSAP(网络服务访问点)地址进行设备编址。
NET地址(网络实体标识符)是一种特殊的NSAP地址,即SEL=0的NSAP地址,
在ISIS协议中由NET地址标识一台路由器。
OSPF协议使用区域ID+Router-ID标识一台路由器
IDP相当于IP地址中网络号。由AFI(用来标识地址分配机构和地址格式)IDI(用来标识域)组成
DSP相当于IP地址中的子网号和主机地址。由High Order DSP(用来分割区域)、system id(用来区分主机)和SEL(用来指示服务类型)三部分组成
Area Address:由IDP和DSP中的High order DSP组成,被称为区域地址。
System ID:用来在区域内标识主机或路由器。长度固定为48bit(6字节)。
在实际应用中一般RID和SYSID对应,假设路由器使用接口LOOKback0地址1.1.1.1作为RID,则在sysID中可以使用将IP地址中十进制都拓展3位,不足3位的在前面补0.得到001.001.001.001.然后将拓展的地址分为三部分,每部分4位数0010.0100.1001
SEL作用类似IP中的协议标识符,不同的传输协议对应不同的SEL。在IP上均为00.
5.ISIS报文类型
ISIS协议和IP协议是解耦的,无关联的独立的网络层协议,通过802.3以太网帧进行封装。
广播型链路上所有的L1的ISIS报文使用的DMAC:0180-C180-0014
广播型链路上所有的L2的ISIS报文使用的DMAC:0180-C180-0015
在以太网链路上如果链路类型被改为P2P类型,则发送的P2P的Hello包,LSP,CSNP,PSNP都还是分L1/L2。但是DMAC地址都为0900-2b00-0005
IIH:用来发现、建立、维护邻居关系的.
P2P网络中相对于广播网络中IIH,多了一个本地链路ID的local Circuit ID,缺少了广播网中DIS的priority字段以及表示DIS和伪节点system ID的LAN ID字段。
L1/2路由器:默认情况下在广播型链路上既发送L1的Hello,也发送L2的Hello。在广播型链路上发送的Hello包级别与接口的级别有关,和接口级别取交集。isis circuit-level 设置链路的级别
L1路由器:在广播型链路上只发L1的Hello,跟链路级别无关。
L2路由器:在广播型链路上只发L2的Hello,跟链路级别无关。
Hello报文中cirsuit type字段取值特点:
@如果路由器类型为L1,则取值为0x01,路由器类型为L2,则取值为0x02,与链路级别无关。
@如果路由器类型为L1/2,则与链路级别取交集,链路为L1时取值为0x01,链路为L2时取值为0x02。链路级别为L1/2则为0x03.
Holdding timer是告知邻居本端失效时间。
LSP----链路状态报文LSP(link state PDUs)用于交换链路状态信息。
从报文角度去看LSP分为 L1 LSP和L2 LSP两种。
从LSP用途去看LSP分为实节点LSP和伪节点LSP两种。
实节点LSP相当于OSPF的1类LSA,每台ISIS路由器都会产生用于描述自身直连链路状态。
伪节点LSP相当于OSPF的2类LSA,广播型链路上由DIS产生,用于描述广播型链路。
ISIS协议定义通过LSP ID唯一的区分一条LSP。
OSPF协议通过三要素区分LSA:1.LSA Type 2.LS ID 3.ADV Router
LSP ID8个字节长度,由3个部分组成。
LSP ID=System ID(6字节)-伪节点标识符(1字节)-分片标识符(1字节)
System ID 标识产生该LSP的路由器的System ID。
伪节点标识符取值0或非0 如果等于0,则代表该LSP是实节点路由器
如果非0,则代表该LSP是伪节点LSP,此时System ID为DIS的System ID
分片标识符:用于描述同一台路由器产生不同的LSP。
LSP的新旧判断机制
1.比较LSP Seq,越大越新
2.如果序列号一样,则比较剩余存活时间是否等于0,如果等于0则认为是最新的LSP,用于删除一条LSP,剩余存活时间初始值为1200s,每隔15分钟即900s,周期泛洪,更新LSP,同时seq+1.
3.如果剩余存活时间都不等于0,则比较checksum,越大越新。
4.如果checksum一样,则认为是相同的LSP。
LSP字段中主要字段如下:
ATT(骨干区域连接符)字段:
在ISIS中骨干区域访问非骨干区域是通过L1/2路由器将L1的路由作为自身直连的叶子进行描述,并通过L2的LSP携带在骨干区域泛洪。
在ISIS中默认情况下L1/2路由不会将L2的路由转化成L1的LSP在非骨干区域泛洪。所以ISIS非骨干区域天生类似OSPF的完全末梢区域,通过缺省路由访问骨干区域。这个缺省路由是由L1/2路由器产生的L1的LSP中通过ATTbit位来进行缺省路由的计算。
ATT=1用来表明该L1/2的路由器和骨干区域连接着,当L1/2路由器至少存在一个不在相同区域的L2的邻居时,ATT才会置位1。ATT比特位只有在L1的LSP中才会置位1.
缺省路由的计算
L1的路由器通过ATT置位1的LSP得知本区域有L1/2的路由器存在。由于L1的路由和L1/2的路由器同在一个区域,所以L1的路由器将自动在路由器中自动生成一条指向L1/2路由器的缺省路由。
该路由的下一跳为到L1/2路由器的下一跳,路由开销为到L1/2路由器的SPF树的开销。
同一个区域存在多个L1/2的路由器,彼此不进行缺省路由的计算,防止路由环路。
ATT bit的控制。
通过缺省路由访问骨干区域的优缺点。
优点:1.收敛快,无需维护明细路由表 2.节省设备资源 3.增强网络的稳定性
缺点:1.次优路径 2.无法感知明细路由的状态,明细路由存在或失效都通过缺省路由转发业务,导致带宽存在浪费。3.明细路由缺失,导致MPLS网络中LSP无法建立。
如何防止次优路径?
1.手动修改缺省路由的开销,通过修改链路开销实现。
2.通过路由泄露,将骨干区域的路由泄露到非骨干区域,泄露到非骨干区域的L2的路由会将DU bit置位1,标志该路由来自骨干区域,是泄露进非骨干区域的。(DU 置位是ISIS的防环机制,OSPF中也有。)
OL(LSDB Overload)字段:过载标志位 通过set-overload命令配置
其他路由器在执行SPF算法时不再沿着OL=1的路由继续往下计算SPF书,OL的路由器作为树上的末端节点。
注意:L1/2路由器设置OL bit后,将不再执行路由泄露功能,无论是否配置路由泄露
P:代表的是分区修复功能,即表示该路由器是否支持ISIS的虚链路,在cisco路由器上该标记永远为0,cisco中不支持ISIS中虚链路。
解释:ISIS不是TCP/IP环境的网络层协议,那么基于IP的网络中,无法实现跨链路建立ISIS邻居的功能,故无法为IP网络支持虚链路功能。
SNP:序列号报文SNP通过描述全部或部分数据库中LSP来同步LSDB,从而维护LSDB的完整与同步。
SNP包括全序列号报文CSNP和部分序列号报文PSNP,进一步又可分为四种
L1 CSNP
L2 CSNP ###在广播网络上CSNP由DIS定期发送(缺省发送周期为10s);在点到点网络上,CSNP只在第一次建立邻接关系时发送。
L1 PSNP
L2 PSNP ###PSNP报文中序列号为0的是请求报文,序列号非0是确认报文。
ISIS报文中的变长字段部分是多个TLV三元组
二、ISIS基本原理
1.ISIS邻居关系的建立
ISIS形成邻居的条件
1.路由器级别要一样
2.同一区域(L1级别要一样)
3.同一网段
4.L1.L2的邻居网络类型必须一致
ISIS协议邻居的状态:
Down 没有收到邻居的hello
init 收到邻居的Hello包,但是没有发现自身的MAC地址。
up收到邻居的Hello包,并且发现自己接口的MAC地址
广播型链路通过IS nei TLV来实现3次握手建立邻居
P2P链路上邻居关系的建立分为两次握手和三次握手(默认)并且三次握手兼容两次握手
P2P的链路通过P2P ADJ stata TLV来实现三次握手建立邻居。类似广播邻居建立。
两次握手机制:只要路由器收到对端发来的Hello包,就单方面宣布邻居为UP状态,建立邻居关系。
缺陷:如果使用命令ppp-negotiation 3-way only P2P链路上只采用3次握手建立局,不兼容2次握手。(如果对端是2-way则会出现单向邻居的现象)
2.ISIS的LSP的交互过程
LSP产生的原因:ISIS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP
邻居UP或Down
ISIS相关接口up或Down
引入的IP路由发生变化
区域间的IP路由发生变化
接口被赋予了新的Metric值
周期性更新
收到邻居新的LSP的处理过程
1.将接收的新的LSP合入到自己的LSDB数据库中,并标记为Flooding(泛洪)
2.发送新的LSP到除了收到该LSP的接口之外的接口
3.邻居在扩散到其他邻居。
LSP的泛洪:指的是一个router向相邻路由器通告自己的LSP后,相邻路由器再将同样的LSP报文传送到除发送该LSP的路由器之外的邻居,并且这样逐级,直到整个层次内每一个路由器就都可以拥有相同的LSP信息,并保持LSDB的同步。
LSP有一个表示自己的4字节的序列号,路由器发送的第一个序列号为1,以后再需要生成新的LSP时,序列号就+1.更高的序列号意味着更新的LSP。
广播链路中新加入路由器与DIS同步LSDB数据库的过程。
在DIS稳定的情况下:
新增路由器和DIS一旦建立邻居,会互相发送自身LSDB的LSP。
非DIS路由器会和新增路由器建立邻居关系,但不会向新增路由器发送自身LSDB中LSP,避免发送重复LSP。
非DIS路由器接收到新增路由器的LSP后,如果是新的LSP,则添加到自身的LSDB中,不会发送PSNP确认收到此LSP,并向其他链路上邻居泛洪这些LSP。
新增路由器收到DIS的CNSP后,根据比较自身的LSDB,发送相应的PSNP,DIS接收到此PSNP后,发送相应的LSP,新增路由器接受后,添加在自身LSDB中,不会发送PSNP确认收到这些LSP,同步过程结束,并向其他链路泛洪。
DIS每10s周期发送CSNP,维护此广播型网络上路由器的LSDB同步。
P2P链路上LSDB数据库的同步过程
A与B建立邻居关系
1.AB建立邻居后,会先发送CSNP给对端设备,如果对端设备的LSDB与CSNP没有同步,则发送PSNP请求LSP。
2.假设B向A请求对应的LSP,A给B发送请求的LSP的同时启动LSP重传定时器,并且等待B发送的PSNP作为LSP的确认。
3.如果在接口LSP重传定时器超时了,A还没收到B发送的PSNP报文作为应答,则重新发送该LSP直到周到PSNP报文。
IS-IS认证
ISIS协议认证是通过TLV进行携带的,默认不携带认证TLV。
根据报文的种类,认证可以分为以下三类:
接口认证:本质是对Hello报文进行认证
区域认证:本质是对L1的SNP/LSP报文做认证
路由域认证:本质是对L2的SNP/LSP报文做认证
根据报文的认证方式,可以分为以下三类;
明文认证:将配置的密码直接加入报文中,这种认证方式安全性不够。
MD5认证:通过将配置的密码进行MD5算法之后再加入报文中,这样提高了密码的安全性。
Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。
IS-IS路由渗透
L1区域的路由信息会通过L1/2路由器将学习到的L1 LSP变为L2 LSP泛洪给其他L2和L1/2路由器
因此L2和L1/2知道整个ISIS路由域的信息路由,但是在缺省情况下L1/2路由器并不将L2路由通报进L1.
而L1区域路由器不了解本区域以外的路由信息,可能导致与本区域之外的目的地址通信无法选择最佳路由。
将骨干区域的路由泄露到非骨干区域,泄露到给骨干区域的L2的路由会进行DU bit置位1,标志该路由来之骨干区域,是泄露进非骨干区域的。
为什么泄露到骨干区域的路由DU会置位1呢,而从非骨干区域传到骨干区域的路由DU不会置位1呢?
原因:由于L1的路由默认会转化到L2区域在骨干区域泛洪,为了防止L2的路由泄露到L1区域后,再次传回骨干区域。将该路由的DU bit置位1,L1/2的路由器不会将L1 DU=1的路由再次传回骨干区域。
如果管理员手动将L2路由泄露进L1的区域,那么这些路由会再次传回L1区域吗?
不会,因为L1的路由始终优于L2。这样L2的路由就无法再次泄露到骨干区域。
为了防止L1/2的路由优先选择DU=1的L1路由访问骨干区域,产生次优路径,所以ISIS在这种情况下。L2的路由优于L1 DU=1的路由。
即L1>L2>L1 DU
IS-IS快速收敛
ISIS快速收敛是为了提高路由的收敛速度而做的拓展特性。
增量最短路径优先算法I-SPF:是指当网络拓扑改变时,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算。
部分路由计算PRC:指当网络上路由发生变化的时候,只对发生变化的路由进行重新计算。PRC原理跟I-SPF相同,都是只处理变化的叶子信息。不同的是,PRC不需要计算节点路径,而是根据I-SPF算出来的SPT更新路由。
智能定时器:在进行SPF计算和产生LSP的时候用到的一种计时器。
LSP快速扩散:加快LSP的扩散速度。
按优先级收敛,可以通过命令配置,让某些重要业务路由,优先收敛。
ISIS Wide Metric
为什么目前在项目中建议使用款宽风格?
因为只有宽风格才支持给路由打Tag。
narrow(窄)类型下使用的TLV
128TLV:用来携带路由域内的ISIS路由信息
130TLV:用来携带路由域外的ISIS路由信息
2TLV:用来携带邻居信息
接口metric:6bit--------最大63
路由metric 10bit---------最大1023
wide类型下使用的TLV
135TLV:替换了 IP reachableility TLV,携带ISIS路由信息,它拓展了路由开销值的范围,并且可以携带sub TLV。
22 TLV:用来携带邻居信息。
接口metric:24bit
路由metric:32bit
cost-style wide 只计算wide风格的LSP的路由,发送wide的LSP路由
cost-style narrow 只计算narrow风格的LSP的路由,发送narrow风格的LSP
在SPF树上如果发现自身邻居节点的cost-style不一致,就不会沿着该邻居节点继续向下进行SPF的计算。
ISIS-LSP分片拓展
当ISIS发布的PDU中的信息量太大时,ISIS路由器将会生成多个LSP分片,用来携带更多的ISIS信息。
ISIS LSP分片由LSP ID中的number字段标识,这个字段长度是1字节,因此一个ISIS进程最多可以产生256个LSP分片,携带的信息有限。于是在RFC3786中规定,ISIS可以配置虚拟的systemid,并生成虚拟ISIS LSP报文来携带路由信息。
每一个系统可以产生256分片,最多可以配置50个虚拟系统,加上初始系统,一共可以产生51*256=13056个LSP分片。
两种工作模式
Mode-1 应用于网络中部分路由器不支持LSP分片的情况 此时虚拟路由器参与SPF计算
Mode-2 应用于网络中所有路由器都支持LSP分片拓展 此时虚拟路由器不参与SPF计算。
ISIS路由汇总
ISIS路由汇总在哪执行?
答:
1.L1、L2的路由器上执行汇总,但是只能对自身直连的路由汇总,无法对非直连的ISIS路由进行汇总。
2.级别L1/2的路由器上指定区域间的路由汇总,类似OSPF的ABR。
3.在ASBR上对引入的外部路由执行汇总,在L1/2路由器上引入外部路由指定引入时路由的级别,不受泄露机制的影响。引入L1外部路由是DU置位0.
4.汇总路由继承明细路由中的Cost值小的。
5.华为ISIS汇总路由的外部路由不用分片LSP描述,而是当成自身直连的路由进行描述。
6.当所有明细路由失效,汇总的路由才会失效。
ISIS产生缺省路由的方法
@ATT置位1
@命令下放缺省路由
ISIS中DIS与OSPF中DR的区别
ISIS协议中DIS的选举
1.接口优先级大的为最优
2.优先级相同则比较MAC地址,越大越优
3.默认优先级64,取值(0-127)
4.DIS可以抢占
5.DIS分级别,L1的邻居选举L1的DIS,L2的邻居选举L2的DIS。选举实现为两倍Hello时间(20s)
6.优先级=0的路由器也可以参与选举DIS。
7.没有备份DIS。
OSPF中DR/BDR的选举
1.优先级高的为DR/BDR
2.优先级一样就比较router-id大的
3.优先级默认为1 取值(0-255)
4.优先级为0不参与选举
5.DR/BDR不可抢占
6.DR-other之间建立2-way邻居关系,DR-other与DR/BDR建立Full邻接关系。
7.DR选举时间为4倍Hello时间。
DIS与DR的区别
1.DIS没有备份,DR有备份(BDR)
2.DIS支持抢占,DR不支持抢占
3.DIS优先级一样比较MAC地址(P2P中没有MAC地址则比较system-id),DR优先级一样比较Router-id
4.DIS优先级为0可以参与选举,OSPF中优先级为0不参与DR/BDR选举。
5.DR/BDR选举时间为40s(4倍hello时间),DIS选举时间为20s(2倍hello时间)
6.DR默认优先级1,DIS默认64.
7.MA网络中DR-other只与DR/BDR建立full,而DIS邻居关系都是UP。
8.DIShello时间为3秒,DR发hello包时间为10s
9.OSPF中DR-other直接传递LSA时通过DR,而ISIS中所有other直接传递LSP,DIS充当间接确认(CSNP10s周期更新一次)
为什么OSPF中DR/BDR不支持抢占?
答:主要是在广播型链路上邻居状态不一致。如果DR能够抢夺,将导致邻居状态发生大面积变化,影响设备很多。广播型链路上所有的路由器邻居状态都会改变。
ISIS中DIS支持抢夺,不会导致邻居状态发生变化,因为ISIS中邻居状态全部一致,稳定性更高。但是伪节点LSP会发生变化,对SPF算法产生一定影响。
ISIS的伪节点LSP是纯拓扑信息,不携带路由信息的。