ISIS路由协议
1、物理层 1、物理层
2、数据链路层 2、数据链路层
3、网络层 CLNP 3、网络层 IP
4、传输层 4、传输层
5、会话层 5、应用层
6、表示层
7、应用层
CLNP:无连接网络协议,他是为了osI七层模型中网络层研发的协议
IP :他是为了TCP/IP模型中网络层研发的协议
ISIS路由协议最初是为了7层模型研发的,后来IETF对其做了扩充和修改,使其可以兼容TCP/IP模型,称为集成化的ISIS
在oSI参考模型中。将具有数据转发能力的节点叫做Is(中间系统intermediate system),类似于TCP/IP模型中的路由器
将不具有数据转发能力的节点叫做ES(端系统end system),类似于TCP/IP模型中的终端
提问:OSPF工作在哪一层?
OSPF是工作在网络层之上的路由协议。
ISIS工作在哪一层?
1、ISIS
1.1 管理区域:Area ID(基于路由器的)
1.2算法区域:骨干区域和非骨干区域
骨干区域:由连续的L2或者L1/2的路由器组成的逻辑区域
非骨干区域:由连续的L1或者L1/2的路由器组成的逻辑区域
注意:设计的时候一定要避免骨干区域被分割,ISIS不支持虚链路,没有补救措施
级别:
1、路由器级别
leve1-1路由器
leve1-2路由器
leve1-1/2路由器(缺省)
命令:[AR1-isis-1]is-level level-1 配置ISIS路由器级别。缺省是level-1/2
2、邻居级别
level-1:和相同区域的L1路由器建立L1邻居,和不同区域的L1路由器无法建立邻居
和相同区域的L2路由器无法建立邻居,和不同区域的L2路由器无法建立邻居
和相同区域的L1/2路由器建立L1邻居,和不同区域的L1/2路由器无法建立邻居
L1级别路由器只能和L1或者L1/2路由器建立L1级别邻居,且要求区域ID相同
level-2:和相同区域的L1路由器无法建立邻居,和不同区域的L1路由器无法建立邻局
和相同区域的L2路由器建立L2邻居,和不同区域的L2路由器建立L2邻居
和相同区域的L1/2路由器建立L2邻居,和不同区域的L1/2路由器建立L2邻居
L2级别路由器只能和L2或者L1/2路由器建立L2级别邻居,且不要求区域ID相同
level-1/2:和相同区域的L1路由器建立L1邻居,和不同区域的L1路由器无法建立邻居
和相同区域的L2路由器建立L2邻居,和不同区域的L2路由器建立L2邻居
和相同区域的L1/2路由器建立L1和L2邻居,和不同区域的L1/2路由器建立L2邻居
总结: L1的路由器只支持建立L1级别的邻居,且要求区域ID相同
L2的路由器只支持建立L2级别的邻居,不要求区域ID相同
L1/2的路由器既支持L1级别邻居又支持L2级别邻居
3、链路级别
ISIS的电路类型
1、广播
当链路层协议为以太网时,ISIS的电路类型默认为广播
2、点到点
当链路层协议为PPP或者HDLC,ISIS的电路类型默认为P2P
当电路类型为广播时(MA)需要选举DIS
DIS:伪节点
DIs的作用:
1、在SPF计算式,都会作为伪节点计算SPF树,将MA网络简单化计算
2、都是为了减少LSA的泛洪(在ISIS里叫做LSP)
3、在ISIS里,DIS在广播网络下用来保证LSDB同步的可靠性(新知识)
DIS的选举:
1、接口的DIS优先级 0~127 默认为64 越大越优
2、接口的MAC地址,越大越优
抢占问题:
1、邻居状态
OSPF的DR是不具备抢占的,MA网络下oSPF的路由器邻居状态有2way和full,一旦DR被抢占,那么full和2-way可能会大范围的改变,造成网络终端,0SPF重新收敛。
ISIS的DIS是支持抢占的,MA网络下ISIS的路由器邻居状态全部都是邻接,DIS的改变,不会造成邻接状态的改变
2、从算法角度讲
OSPF的DR可以看做是2类LSA,如果2类LSA被抢占了,那么会造成SPF树重新计算。
ISIS的DIS被抢占的话,伪节点的信息发生改变,会导致其他路由器重新计算。
ISIS和OSPF的区别
ISIS的常用命令:
1、is-level 1eve1-2 //修改路由器的ISIS级别先配置进程,后宣告接口
2、ISIS只支持接口宣告 isis enable 1 //顺序不能乱
3、修改ISIS接口的电路类型,缺省情况下是广播类型,通过命令可以配置成P2P
[AR1-GigabitEthernet0/0/0]isis circuit-type p2p
4、修改接口的DIS优先级 取值范围是0~127缺省值为64
[AR1-GigabitEthernet0/0/0]isis dis-priority 127
5、修改接口he11o时间 [AR1-GigabitEthernet0/0/0]isis timer hello XXX
报文
1、路由级别:L1 L2 L1/2
2、邻居级别:L1 L2
3、链路级别:L1 L2 L1/2
OSPF的报文:
1、hello DD LSR LSU LSACK
ISIS的9种报文
1、hello报文
L1 hello报文:用于在广播链路上建立L1级别邻居关系
L2 hello报文:用于在广播链路上建立L2级别邻居关系
P2P的hello报文:用于在点到点链路上建立ISIS邻居的报文
2、LSP报文:用于描述链路状态信息的,类似于OSPF的Lsu报文(LSA)
link state Ppu 链路状态协议数据单元
L1 LSP报文:用来描述L1的链路状态信息
L2 LSP报文:用来描述L2的链路状态信息
3、SNP报文:序列号报文。其中包括了完全序列号报文CSNP,部分序列号报文PSNP
L1 CSNP:类比OSPF的DD报文:用于描述L1的LSDB当中的所有LSP的摘要信息
L2 CSNP:类比OSPF的DD报文:用于描述L2的LSDB当中的所有LSP的摘要信息
L1 PSNP:类比OSPF的LSR和LSACK报文:用于请求LSP和确认作用
L2 PSNP:类比OSPF的LSR和LSAcK报文:用于请求LSP和确认作用
备注:当电路类型为广播时,PSNP报文只有请求作用,没有确认作用。当电路类型为P2P时,PSNP报文既有请求作用,也有确认作用
L1路由器只会维护L1级别的LSDB
L2路由器指挥维护L2级别的LSDB
L1/2路由器既维护L1的LSDB又维护L2的LSDB
ISIS的链路级别
1、L1的路由器,在广播链路上发送L1的he1lo报文,与链路级别无关,始终发送L1 he11o报文
2、L2的路由器,在广播链路上发送L2的he1lo报文,与链路级别无关,始终发送L2 he11o报文
3、L1/2的路由器,在广播链路上发送L1和L2的hello报文,与链路级别有关系,取交集发送
4、对于点到点链路,和广播链路是一致的
总结:对于仅支持一种级别的路由器来说,链路级别不起作用
对于支持两种级别的路由器来说,链路级别起作用,取交集发出
ISIS报文的发送:
广播链路上L1的报文发送目的组播MAC:01-80-c2-00-00-14
广播链路上L2的报文发送目的组播MAC:01-80-c2-00-00-15
如果在广播链路上修改电路类型为P2P后,那么发送报文的目的MAc地址:09-00-2B-00-00-05
ISIS报文
ISIS的报文分为3个部分:
1、通用报文头
intradomain routeing pro dis :域内路由协议鉴别符:0x83代表为ISIS协议
length :头部长度(包括了通用头部和专用头部)
version :版本信息 isis目前只有版本1
ID length :system-id长度
reserved :保留字段
PDU type :描述专用报文类型
version :版本信息
reserved :保留字段
Maximum :可以配置的区域ID最大数量
2、专用报文头
Circuit type :链路级别:用于描述这个路由器发出的这个报文能够建立的邻居级别
system-id :代表ISIS网络内的唯一 一台路由器
Holding timer :邻居保持时间(死亡时间)
PDu Length :报文长度
PRI :接口的DIS优先级 缺省为64,取值范围0~127 越大越优
systemid(dis) :用来描述广播链路中DIS信息
3、变长字段
ISIS路由协议的变长字段是基于TLv编码来携带各项属性的。T代表type,L代表length,v代表value属性值。
3.1 使用TLv来做报文编码的路由协议,发送报文时只携带需要携带的属性即可,不需要携带的属性可以不携带
3.2 OSPFv2不是TLV编码,所有的字段全部为固定字段,所以拓展性比较差
3.3 基于TLV编码的路由协议还有 BGP LDP EIGRP
在报文结尾处经常会看到很多的padding字段,用来作为填充字段,保证MTU=1500
MTU隐式检测:在建立邻居之初,会用填充字段来填充报文,填充到1500来作为隐式确认。
1、在广播链路上,建立完邻居以后,hello包会继续填充
2、在P2P链路上,建立完邻居以后,hello包不在继续填充
ISIS计算
一、LSP:1ink state PDu(链路状态协议数据单元)
1、R3从报文的角度来看,LSP可以分为L1级别的LSP和L2级别的LSP
2、从用途的角度来看,LSP可以分为
2.1 实节点LSP:用来描述路由器自身的链路状态(类比OSPF的1类LSA)
2.2 伪节点LSP:用来描述广播网络上的链路信息的(类比oSPF的2类LSA)
二、LSDB
路由器在运行OSPF时必须将接口宣告进OSPF进程,LSDB才会出现LSA,如果没有宣告任何接口,LSDB为空。
路由器在运行ISIS时,只要配置了NET地址,LSDB中就会产生一条LSP用来描述自身节点(这个LSP是实节点LSP)
三、如何识别唯一的一条LSP
OSPF中,使用LSA的3要素来识别唯一的一条LSA(type1s-id adv-rtr)
ISIS中,使用LSP-ID来识别唯一的一条LSP
LSPID是由3部分组成
a. system-id :用产生这条LSP的路由器的system-id充当
b. 伪节点标识符 :如果取值为00代表这是一条实节点LSP,如果取值为非00代表这是一条伪节点LSP
c. 分片识别符 :代表是否分片
四、如何判断一条LSP的新旧
1、序列号SEQ:也是越大越新,十六进制标识
2、剩余寿命:holdtime,一条LSP出生时1200s,每隔1s剩余寿命减1,直到减为0,LSP老化没了
如果一台路由器收到一条LSP中holdtime=0:代表删除这条LSP
3、校验和:校验和也是越大越优,十六进制。
五、ISIS的更新机制
1、触发更新:当链路发生变化时,将会触发更新自己产生的LSP,更新时序列号+1,校验和重新计算,剩余寿命重置为1200s
2、周期更新:isis路由器会每隔900s,周期向邻居更新自己产生的LSP,更新时序列号+1,校验和重新计算,剩余寿命重置为1200
每台ISIS路由器根据路由器级别不同,所维护的LSDB也不同:
L1级别的路由器只维护L1级别的LSDB
L2级别的路由器只维护L2级别的LSDB
L1/2级别的路由器既维护L1的LSDB,又维护L2的LSDB
报文
SOURCE 0000.0000.0004.00 源节点系统,用来描述产生这条LSP路由器的sys-id+伪节点标识符
NLPID IPV4 描述网络层协议
AREA ADDR 49.0001 产生这条LSP路由器所在的area-id
INTF ADDR 14.1.1.4 产生这条LSP路由器宣告进ISIS进程的接口IP
NBR ID 0000.0000.0001.00 COST:10 用于描述自己链接到一个P2P邻居,此时system-id为邻居路由器的sys-id
IP-Internal 14.1.1.0 255.255.255.0 COST:10 用于描述自己直连的路由信息(叶子信息),并标记了自己到达该路由的cost
SOURCE 0000.0000.0003.01 源节点系统,使用DIS所在路由器的system-id来描述,01代表这是伪节点LSP
NLPID IPV4 网络层协议
多区域ISIS路由计算:
1、骨干区域是如何访问非骨干区域?
1.1 默认情况下,L1/2的路由器会将L1级别LSDB中的叶子信息,添加到L2级别自己实节点的LSP中
2、OSPF和ISIS计算域间路由的区别
OSPF是将隔壁区域的1类和2类LSA计算出来的最优路由以3类LSA方式传递到直连区域,3类LSA是路由信息
所以OSPF计算域间路由时:自身路由器到达ABR的链路状态+3类LSA的路由信息
ISIS是将非骨干区域的叶子信息直接放到骨干区域自己产生的实节点LSP中,作为叶子信息存在。
所以ISIS的骨干区域计算费骨干区域路由时,是通过L1/2路由器的叶子信息计算
3、ISIS的cost
在HCIP阶段,ISIS使用默认cost,即每个接口的cost固定为10
4、非骨干区域是如何访问骨于区域的?
默认情况下,L1/2路由器不会将L2的叶子信息添加到L1级别LSP中。
此时,非骨干如果想要访问骨干,将通过费骨干区域的缺省路由访问,类似于OSPF的末节区域
如何产生的缺省路由:
!!!L1/2路由器在直连了骨干区域和非骨干区域时,在传递L1实节点LSP时,将ATT置位1
ATT:标识骨干区域连接符:用于表明该L1/2路由器和骨干区域直连,用于指导非骨千区域访问骨干区域
5、ISIS路由泄露
在L1/2路由器配置:[AR1-isis-1]import-route isis level-2 into level-1
手动将骨干区域的叶子泄露给非骨干区域路由器
6、DU bit(down/up)比特位
当骨干区域的叶子信息手动泄露到非骨干后,就会讲Du bit置位1,代表:路由优先级