目录
IS-IS基本信息
IS-IS指的是什么
OSI模型与TCP/IP模型的网络层协议
IS-IS与OSPF
IS-IS工作过程
第一步 建立邻居关系
第二步 同步LSDB数据库
第三步 进行SPF路由计算
邻居状态
二次握手
三次握手
IS 指的是中间系统(路由器、运行了IS-IS协议的设备)
ES 指的是终端系统(PC、平板、打印机等)
IS-IS指的就是中间系统与中间系统进行路由信息的交换方式
网络层作用:用于网络罗设备的编址以及寻址
OSI模型: 网络层是CLNP协议(无连接网络协议)
TCP/IP模型: 网络层是IP协议
IS-IS最初就是为CLNP协议设计的一种基于链路状态的使用最短路径算的动态路由协议
- 即IS-IS最先是为OSI模型服务的,不过由于IS-IS扩展性强的原因,通过扩展,能够支持IP协议。
- 现在IS-IS成为集成IS-IS,是多栈路由协议,它支持CLNP,IPv4、Pv6
- IS-IS由于节省设备资源、扩展性强,学习难度低,很快再ISP市场得到了很多应用
路由计算算法
IS-IS与OSPF都使用SPF算法
为谁工作
IS-IS最初是为CLNP协议工作,现在也可以为IP协议工作
OSPF只是为IP协议工作
所属层次
IS-IS是工作在链路层之上的网络层协议(即IS-IS相对于网络层是独立的一个协议)
OSPF是工作在网络层之上的路由协议(即OSPF是基于网路层封装的,不过不能说是传输层协议,只能说和传输层一个层次。)
应用场景
IS-IS——图解9种报文_多谢思考的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/126069383?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126069383%22%2C%22source%22%3A%22m0_49864110%22%7D&ctrtid=PgrMN
IS-IS如何标识网络设备
OSPF协议是通过 area id+router id对设备进行标识的
IS-IS协议则通过NET地址(area id+system id+00)来对设备进行标识
NET地址(网络实体标识符)
IP协议是通过IP地址进行网络服务访问的,NSAP协议是通过NSAP地址进行网络访问的
而NET地址就是一类特殊的NASP(即SEL=00的NSAP地址就代表NET地址,用来标识IS-IS设备)
注意:在配置IS-IS过程中,NET最多配置3个,并且它们的System ID都要相同
路由器的分类/角色
IS-IS中路由器分为三类(作用类似于OSPF中的骨干区域和非骨干区域)
L1路由器 相当于OSPF的非骨干区域的IR(所有接口都运行在同一区域)路由器
只维护L1的LSDB(相当于非骨干区域的LSA)
L2路由器 相当于OSPF的骨干区域的IR路由器
只维护L2的LSDB(相当非骨干区域的LSA)
L12路由器 相当于OSPF的ABR路由器
维护L1的LSDB,也维护L2的LSDB
注意:
- 华为设备默认路由器为L12
- L1的邻居建立前提,区域ID必须一致
- L2的邻居对区域ID不做要求(一致、不一致都可以)
IS-IS网络类型
IS-IS只支持2中网路类型,P2P,广播
PPP,HDLC链路默认是P2P链路
发送的所有报文的目的地址都是组播地址09:00:2B:00:00:05
以太网、FDDI链路默认是广播链路
发送的所有报文的目的地址都是组播地址
L1路由器发送的地址为01:80:C2:00:00:14
L2路由器发送的地址为01:80:C2:00:00:15。
邻居建立——Hello报文
Hello报文细分为三种类型
P2P Hello报文 在P2P链路上建立L1/L2邻居关系
L1 Hello报文 在广播链路上建立L1的邻居关系
L2 Hello报文 在广播链路上建立L2的邻居关系
Hello间隔
- 10s发送一次,邻居失效时间为3倍的发送间隔(30s)
- 但是当选举DIS后,DIS路由器回10/3s周期性发送Hello报文,非DIS路由器还是10s发送一次
- 当非DIS路由器在10s没有收到DIS发的Hello报文,则认为DIS失效
- 当DIS路由器/非DIS路由器在30s没有收到非DIS路由器发送的Hello报文,则认为邻居失效
邻居建立过程——IS-IS状态
P2P建立邻居由2种方式:2次握手和三次握手(默认使用3次握手,兼容两次握手)
2次握手只要收到对端的Hello报文,就单方面宣布自己为up状态,容易造成单项邻居,出现路由单通
广播链路仅使用3次握手(同P2P的三次握手)
3次握手,当邻居发送的Hello报文中没有自己的System ID,状态进入initialized
当邻居发送的Hello报文中有自己的System ID,状态进入up
影响邻居建立的因素
- 对于L1路由器来说,区域号必须一致
- 链路两端ISIS接口的网络类型必须一致
- 认证必须一致
- 链路两端ISIS接口的地址必须处于同一网段
当邻居状态UP后,开始进行LSDB同步,发送以下报文
LSDB同步报文1——CSNP报文(类似OSPF的DD报文)
分为L1 CSNP、L2 CSNP两种类型
主要用于通告链路状态数据库(LSDB)摘要
CSNP发送间隔
在广播网络中,CSNP由DIS周期发送,每10s发送一次
在P2P网络中,CSNP只发送一次,邻居状态UP后发送一次
LSDB同步报文2——PSNP报文(类似OSPF的LSR或者LSACK)
分为L1 PSNP、L2 PSNP两种类型
用于请求和确认链路状态信息
LSDB同步报文3——LSP报文(类似OSPF的LSU)
分为L1 LSP(L1 邻居之间发送)、L2 LSP(L2 邻居之间发送)两种类型
用于邻居之间交换链路状态信息(携带完整信息)
IS-IS同步——DIS(类似于OSPF的DR,不过作用不同)
IS-IS在广播型链路上会进行DIS选举(DIS在邻居建立之后进行)
DIS类似于OSPF的DR,没有BDIS
DIS分类
DIS分为L1 DIS 和 L2 DIS(L1路由器之间选举L1 DIS,L2路由器之间选举L2 DIS)
DIS如何选举
- DIS优先级的取值范围为0~127,默认是64,越大越优先为DIS(0可以参与选举)
- DIS相同,比较接口的MAC地址,MAC地址大的成为DIS
P2P链路LSDB同步过程
此处讲的是RTA到RTB的过程,RTB到RTA的过程类似
- 两台邻居UP后,会互相发送CSNP报文携带自身LSDB的全部LSP摘要给对方
- RTA发往RTB的CSNP收到后,RTB检查自身LSDB中LSP新旧判断,RTB发送PSNP,携带自己想要的LSP摘要以及需要更新的LSP摘要
- RTA收到PSNP后,根据摘要通过LSP报文发送完整的链路状态信息
- 如果RTB没有发送PSNP对LSP做确认
- 5s后RTA会对LSP会重新传送
- RTB收到后再回复PSNP做确认
广播链路LSDB同步过程
在DIS稳定的情况下,新增RTC与DIS建立邻居进行LSDB同步的过程(此时RTA已经与RTB建立邻居,LSDB完成同步) 以下讲解的是RTC发送LSP的过程
- RTC与RTB建立邻居UP后,直接发送LSP报文(非DIS路由器收到此LSP后,如果是新的LSP,则添加到自身的LSDB中,但是不会发送PSNP做确认,之后会向其它链路上的邻居泛洪这些LSP)
- RTB收到LSP后,发送CSNP报文携带LSDB的全部摘要(此时RTA发现LSDB一样,就不回复)
- RTC收到后,根据比较自身LSDB,发送相应的PSNP进行请求
- RTB收到后发送LSP,RTC收到后不用做回复,并向其它链路上的邻居泛洪这些LSP(因为DIS会周期发送CSNP,如果没有同步的话会再次发PSNP请求)
注意:
- 新增路由器和DIS一旦建立邻居,会互相发送自身LSDB的LSP
- 非DIS路由器会和新增路由器建立邻居关系,但不会向新增的路由器发自身LSDB中的LSP,避免重复发送LSP
路由开销计算
运行ISIS的设备默认接口开销都是10(环回口为0)
SPF计算过程
- 单区域LSDB同步完成
- 生成全网拓扑结构图
- 以本节点为根生成最短路径树
Down——初始状态
UP—— 收到对方发来的Hello包(无论邻居列表是否有自己的System id)
Down——初始状态
Init —— 收到Hello包,但邻居列表无自己的System id
Up —— 收到Hello包,邻居列表有自己的System id