第三章 ISIS 路由协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章IS-IS 路由协议
3.1 概述
在随着互联网的演化而出现的所有IP 路由协议中,只有3 种路由协议经受住了考验,这就是BGP、OSPF、IS-IS。

什么是IS-IS协议呢?
IS-IS就是Intermediate System-Intermediate System 就是中间系统-中间系统,当前的IS-IS规范中把网络节点叫做中间系统,其他协议比如OSPF把节点叫做路由器。

在IS-IS中,路由器被描述为是一个中间系统(Intermediate System,IS),主机被描述为端系统(End System,ES)。

因此提供主机和路由器之间的通信的协议即为ES-IS;而路由器之间的通信即为IS-IS。

国际标准化组织,也就是现在ITU 指定了OSI 七层模型,最初网络服务只定义了面向连接的通信服务(CONS),随后做了修订,定义了无连接通信的功能,叫CLNS;和面向连接服务CONS不同的是在转发数据包的网络设备间无需预先定义端到端的路径。

CLNS由CLNP、IS-IS、ES-IS等ISO 协议支持。

CLNS、ES-IS、IS-IS 等都是独立的网络层协议,与之形成对比的是TCP/IP协议,共存于OSI的第三层。

编码格式:
●CLNP:0x81
●ES-IS:0x82
●IS-IS:0x83
CLNP类似于IP协议,CLNP定义为独立于数据链路层。

IP 是TCP/IP协议族唯一的网络层协议,包括路由协议和用户数据都封装在IP 包内;而CLNP、ES-IS、IS-IS 协议都是网络层协议,分别被封装在数据链路层的帧内,这也是ISIS 比IP安全的一个重要原因。

看看数据包的格式图例:
其实简单的可以理解为:
●IP协议相当于CLNS 都是无连接的;
●IP包相当于CLNP包;
●OSPF为IP包进行路由、而ISIS则是为CLNP包提供路由服务。

什么是ES-IS?
ES-IS是终端系统-中间系统路由交换协议,使用同一网段或链路的ISO 终端系统和路由器之间自动交换信息,在后面的试验中将展示形成ES-IS邻接的过程。

路由器发送IS报文hello(ISH)主机发送ES报文hello(ESH)。

ES 主机(ES 是没有路由能力的))靠侦听IS 发的ISH 报文来发现最近的IS 路由器,当ES 要发送数据到其他的ES 的时候,它发送包到直连的IS(如果多个IS 的话,则随机选择一个IS),IS路由器查找目的地址然后转发数据。

ES和IS的通信可以叫做Level-0;
Level-1 是在多个IS路由器在相同区域中实现路由;
Level-2 是在多个IS路由器在不同区域中实现路由。

IS-IS也定义了2层区域的概念,和OSPF不同的是,OSPF的区域是以路由器为边界;而IS-IS中是以链路为边界,如下图:
连接不同区域的IS为Level 2(L2)路由器,或者是同时具有Level 1和Level 2的L1/L2路由器,L1/L2路由器要同时分别维持L1和L2的LSDB。

在IS-IS中,也有类似于RID的System ID。

由于IS-IS中Domain区域是以路由器为边界,因此,1个路由器的每个接口上的区域ID都是一样的。

在IS-IS中,1个路由器最多可以具有3个区域ID,这样对区域中的过渡是很有用的。

什么是Area 和Domain?
Area:这是在路由协议中的一个概念,为了划分层次,减少路由信息,减轻路由器的负担,降低路由震荡等等。

Domain:好像只在IS-IS中才有,在一个AS域中可以划分出好多Domain,每个Domain 可以应用不同的路由协议,Level-3 级路由就是可以在不同的Domain 中进行路由的相互引入。

IS-IS协议最初是为了用来路由CLNP数据包,但随着IP的流行,IETF修改IS-IS来进行IP包路由,所以说IS-IS 是双重的(也叫集成IS-IS),既可以路由CLNP 又可以路由IP 包,OSPF只能路由IP数据包。

3.2 IS-IS 寻址
每个节点都需要定义地址,在ISIS包中的地址为CLNP的NSAP格式。

3.2.1 NSAP格式
整个NSAP地址由两大部分组成:
●IDP(Inter-Domain Portion)域间部分,相当于TCP/IP地址中的主网络号。

●DSP(Domain Service Portion)域内服务标识部分,相当于TCP/IP地址中的子网号,
主机号外加端口号。

IDP由两部分组成:
●AFI(Authority and Format ID)机构与格式ID 用来表示地址格式或地址分配机构。

●IDI(Inter-Domain ID)域间ID 用来标识域。

DSP由三部分组成:
●HODSP(High Order DSP)DSP高位,用来分割区域,相当于TCP/IP地址中的子
网部分。

●SID(System ID)系统ID,用来区分主机,相当于TCP/IP地址中的主机部分。

●NSEL(NSAP-Selector)NSAP标识,用来指示选定的服务,相当于TCP/IP地址中
的端口号。

ISO-IGRP 路由采用三层体系:域(IDP,第三级),区域(HODSP,第二级)和系统ID(SystemID,第一级)。

ISIS 采用二层体系:区域ID(IDP+HODSP)+系统ID
现在我们来看一下NSAP地址中各部分的长度。

对于Cisco IS-IS 路由协议,NSEL 固定为一个字节,系统ID 固定为6 个字节,区域地址长度可由1-13字节构成,所以整个NSAP地址总长度为8-20字节。

对于Cisco ISO-IGRP路由协议,Area ID被分为Domain ID 和Area ID 两部分,Area ID 为2 个字节,Domain ID 最少一个字节,所以NSAP地址总长度为10-20字节AFI=39表示ISO数据国家代码。

AFI=47表示ISO国际代码指定
NET 地址必须以00结尾,且必须为整字节(偶数个十六进制数),中间以dot 分隔。

System ID 通常由MAC地址构成或由IP地址转换而来。

Domain ID 和Area ID 则通常在全网内统一指定。

例如:
3.2.2 NET(Network Entity Title)网络实体标识
NSEL 值定义了网络层服务的用户,路由层是特殊的网络层服务用户,它的SEL 值是0,也就是说我们在交换路由信息时将NSEL 固定为00,这样的NSAP 表示设备自身,我们称之为NET。

NSEL 帮助网络层数据发送到适当的应用程序或服务用户,根据OSI 方案,网络层服务上面是传输层,也就是说网络层是00,那么传输层就不是00了,如果要将数据提交到传输层的话就是0x21,表示DECNet Phase IV传输层,0x22表示传输层TP 4。

AFI=49 的地址为OSI 协议的私有地址,像TCP/IP中的10.0.0.0,172.16.0.0-172.31.0.0 和192.168.0.0,后面的实验中通常使用这样的地址。

如果你只想通过IS-IS 实现IP路由,用这个前缀就可以了。

System ID 定义:
Sysid长度在1-8字节之间,cisco遵从GOSIP2.0 标准,长度为6字节,与MAC地址一致,所以可以用路由器上一个LAN的MAC地址作为system id,不过用的最多的是将loopback地址作为system id,如:
Loopback 192.168.1.24
Net 49.0001.1921.6800.1024.00
3.2.3几条定址规则
1、位于同一区域内的路由器Area ID 必须相同。

2、同一区域内的Level-1 IS为了彼此区分必须有惟一的System ID。

(建议整个域内所
有IS都有惟一的System ID)
3、整个域内所有Level-2 IS 为了彼此区分必须有惟一的System ID。

4、包交换网络中,虚电路号或DLCI号码经常加在System ID 的后面构成LAN ID,
这主要是为了防止同时属于多个Area的IS 在不同的Area中有相同的System ID。

5、如果系统检测到System ID 重复,将会报告以下错误:
IS-IS: possible duplicate system ID <sys_id> detected
为单个ISIS进程配置多个NET
通常一个ISIS进程只需要一个NET,但可以通过定义多个区域ID 的NET可以将合并多个区域,如:
Net 49.0001.1921.6800.1024.00
Net 49.0002.1921.6800.1024.00
可以将49.0001层1中的lsp传递到49.0002中,从而可以合并2个层1区域。

一般配置多个NET 用于:
●区域合并
●区域分离
●重编址
NSAP到主机名的映射
NSAP地址很长为了便于使用,借鉴IP中域名的好处,可将NSAP映射到域名。

ISIS 支持动态主机名映射,也就是说可将主机名到nsap 的映射信息在isis 协议内传输,比手工配置方便多了。

实现此功能的tlv是137 类型,承载于参与动态映射的路由器的lsp中。

3.2.4 集成IS-IS 路由协议
集成ISIS路由就是说同时支持IP和CLNP路由。

根据ISO10589 标准,ISIS协议支持2 层分层体系。

ISIS即使在IP环境中也要用CLNP节点地址标识路由器,CLNP地址也就是NSAP (NetworkService Access Points,网络服务访问点)。

一共有三部分组成:
●区域标识符
●系统标识符
●N选择符:这个是表示网络服务用户,可以是传输层,可以是路由层,和TCP Port
差不多,一般N 选择符都为0,表示将数据提交到网络层,也就是路由器本身。

这个N 选择符为0 的NSAP地址可以简单的叫做NET地址
区域标识符:如果这个标识符号一样就表示路由器在同一个域中。

实际上一台路由器可以同时属于多个区域,也就是说区域符不一样,但系统标识符必须相同。

属于同一区域并且为层1 的路由器叫层1 路由器,属于不同区域的路由器通过层2 邻接来交换路由信息。

层2 路由器也叫主干路由器,和OSPF的Area 0 路由器差不多。

路由器可以是层1,也可以是层2,也可以同时为层1-2 路由器,cisco 路由器默认为层1-2。

层1-2 路由器相当于OSPF 中的Abr 路由器,可以为层1 域的路由器提供区域连接,把层1 的路由信息发往主干。

Cisco 也支持把层2 的路由引入到层1 中,以次来消除isis 次优路径选择的问题。

次优路径选择:
R1 发往R2 的数据是蓝色线,红色线是返回路径,从R2 发会给R1 的路径为什么选择那条度量总值为50的而不选择蓝色的那条45的呢?因为R2 发给不知道主干的路由,所以只把数据发给默认的本地的层2 路由器,所以选择了一条度量为10 的最近的层2 路由器。

层2 区域必须是连续的,所有路由器必须完全互连,Cisco不支持像OSPF那样的虚链路。

层1 域中的路由器只关心本域中的网络,层1-2 路由器可以发一条默认路由到层1 域,这样层1 的路由器可以未知数据统统发往层1-2 路由器。

ISIS 层次:
●Level-1:相当于单个区域的概念,由本区域中的所有level-1 路由器组成,本区域
所有的路由信息将发往backbone中。

●Level-2:骨干Backbone,由所有的L2(含L1-L2)路由器组成,backbone必须是
连续的。

3.3 ISIS 数据包
在CLNP中数据包叫做PDU。

ISIS数据包分成3 类:
●Hello:用来建立和维护邻接;
●链路状态数据包:用户在isis节点间发布路由信息;
●序列号数据包:用户控制数据包链路状态数据包的发布,提供lsdb 的同步机制。

hello包又分了3 类:
●LAN 层1 hello数据包
●LAN 层2 hello 数据包
●点到点hello数据包,P2P只有这一种类型
链路状态数据包分2 类:
●层1 链路状态数据包
●层2 链路状态数据包
序列号数据包分4 类:
●层1 完全序列号数据包(层1CSNP)
●层2完全序列号数据包(层2 CSNP)
●层1 部分序列号数据包(层1 PSNP)
●层2部分序列号数据包(层2 PSNP)
数据包的格式:
每种类型的isis数据包都由包头和还有tlv组成。

不同类型的isis数据包头字段稍有不同,OSPF中包头都是一样的都是24 字节。

ISIS 数据包头前8 个字段在所有的ISIS 数据包中相同,接下来每种类型数据包都有自己的一套附加的包头字段,然后是TLV字段,各种类型的数据包,长度都有差异。

每种类型的数据包仅支持某种特定的TLV字段。

ISIS协议设计的关键在于方便的引入新的TLV 值,而不是引入新的数据包格式。

ISIS 的网络类型:
在ISIS网络中只有2 种类型,一种是点到点,一种是广播链路。

Cisco基于FR和A TM 等这些NBMA的ISIS中,当配置在多点模式中,工作在广播模式(建立紧接的时候要发LAN 1 和LAN2的Hello包),需要全连通环境,建议在这类环境中配置成点到点类型。

3.3.1 ISIS 邻接
伪节点:
同一LAN 上所有的ISIS路由器彼此形成邻接关系,OSPF是只和DR和BDR形成邻接。

为了减少LAN 邻接的复杂性和高效扩散LSP,ISIS把广播链路模拟为节点,也就是伪节点。

在LAN 上选举一个DIS(指定中间系统)和本网络中所有路由器建立联系。

选举DIS基于SNPA地址(MAC)和接口优先级,cisco默认为64。

(OSPF默认优先级是1)LAN 只有DIS,没有备份的DIS,因为当DIS失效的时候,另一台会马上被选举成DIS,不会影响邻接,DIS发送hello包的频率是其他路由器的3 倍,DIS默认的hello间隔是3.3 秒,其他是10 秒,所以DIS down会很快进行选举。

不像OSPF,如果没有BDR的话,那么DR down的话所有的邻接关系会中断。

DIS负责生成伪节点LSP,伪节点和本网络中的所有路由器建立联系,并且不允许它们之间直接联系。

只有在广播和nbma 网络接口上才会选举DIS,P2P类型接口无需选举DIS。

如果有一台具有较高优先级的路由器加进来的话,它就会被选举成DIS,所有的路由器都能参加选举,不像OSPF中如果把优先级设置为0 的话就不能参加选举,ISIS没有这个功能。

不过,可以修改优先级变小以使路由器不成为DIS。

LAN 层1 和层2 DIS的功能:
●生成伪节点链路状态数据包,向所有路由器通告链路状态
●行使LAN 上相应路由选择层次上的扩散功能
看看伪节点的图示:
ISIS邻接靠3 种类型的IIH(IS-IS Hello):
●点到点IIH――――――在点到点链路
●层1 LAN IIH―――――广播链路形成层1 邻接
●层2 LAN IIH―――――广播链路形成层2 邻接
要交换什么路由信息,要看建立了什么邻接,同一个区域内的路由器至少可以形成层1 邻接。

在cisco路由器上路由器默认为层1-2,也就是说如果2 台cisco路由器在同一区域中,可以形成层1 和层2 邻接。

不同区域只能形成层2 邻接。

R1 和R2,R3 和R4 在同一区域中,所以形成L1 邻接,R2 和R3 在不同域中所以形成L2邻接。

在看看这2 张图,自己分析一下每一台路由器形成哪层邻接:
再看下面这张,看看邻接关系:
邻接计时器:
Hello 间隔:hello 包默认间隔10 秒发给邻居,在DIS 中间隔默认是3.3 秒(为什么快是为了如果DIS down掉可以尽快选一个)。

Holdtime:默认是hello包的3 倍,(OSPF是4 倍)也就是30 秒收不到hello就要中断邻接。

ISIS点到点邻接:
点到点邻接是通过ES-IS协议接收的ISH 报文来完成初始化,接下来开始交换点到点IIH 报文。

ISIS点到点邻接采用三步握手机制。

当路由器收到ISP 包后,路由器先检查与发送者的邻接状态,如果没有邻接,接收端路由器创建邻接关系并设置为初始化状态,接着路由器发送IIH 报文回应,知道路由器从这一新邻居收到的下一个IIH 包才建立邻接关系。

在这个过程中,本地路由器不能决定它发送的hello 包是否已达到对方,有可能造成一端为up,一端为down,为了解决这个问题,引入TLV240 形成三步握手机制,这样本地路由器发送的IIH 报文到达对方,对方在发送类型240的hello包,包含邻居系统ID 等字段,这样就可确认本地的hello到达对方了,形
成可靠邻接。

默认情况下IIH 被填充到出口的MTU 大小,路由器对比收到IIH 和本地的MTU 大小,确保形成邻接前能处理邻接点最大的MTU 。

路由器的区域地址数目必须与邻居一致,默认cisco 路由器最多支持3 个区域地址,最新的IOS 可以设置为255,邻接路由器支持的最多区域地址数目的不一致将导致IIH 丢弃。

ISIS 目前仅支持纯文本的明文密码,点到点连接的交换lsp 的时候都是用单播的地址,也就是对方的2层链路地址(local ciruit ID )。

ISIS 广播链路邻接:
上图是在广播链路上形成邻接的过程:
1、RTA 在接口启用isis ,开始使用组播地址发送hello 报文,此时RTA 没有发现任何邻居,所以邻居字段为空。

LAN 层2的广播地址:
01-80-c2-00-00-15 (所有L2 IS)
LAN 层1的广播地址
01-80-c2-00-00-14(所有L1 IS )
2、RTB 收到RTA 发送的Hello 报文后,为RTA 创建一个邻居数据结构,并且将邻居的状态设置为init ,RTB 发送一个hello 报文给RTA ,并且在将RTA 的MAC 地址包含在报文的邻居字段中,表明RTB 已经收到来自RTA 的hello 报文。

3、RTA 接收到RTB 的hello 后,同样为RTB 创建一个邻居数据结构,并且将邻居的状态设置为init ,RTA 再发送一个hello 包给RTB ,并且将RTB 的MAC 地址包含在报文的邻居字段中,表明RTA 已经收到来自RTB 的hello 报文。

4、当RTB 再次接收到RTA 发送的Hello 报文后,检查本地已有的RTA 的邻居数据结构了,表明之前已经收到来自邻居的hello 报文,同时检测到所接收到的邻居报文的邻居字段中有本地路由器的MAC 地址,表明对端已经接收到本端的Hello 报文,经过双方的检测后将邻居状态设为UP ,下一步双方开始发送各自的链路状态数据库。

L1:
L1:
5、双方建立邻居关系后,DIS也同时选举出来(发送2 个Hello报文后),双方开始向对端发送本地的链路状态报文(LSP)。

为了保证同步和减少报文流量,每个路由器并不与广播网上每一台路由器同步数据库,而是只与DIS同步。

6、当DIS选举出来并且经过交换LSP报文后,DIS将发送CSNP报文,该报文只包括本地数据库中LSP摘要信息(并不包含实际LSP),每一条摘要信息用LSPID 标识一条LSP。

7、当接收到CSNP 报文后,将和本地数据库中的LSP 对比,如果有缺少的那么将用PSNP向DIS请求,如果本地有更多的LSP,则直接发送该LSP给DIS。

8、当DIS接收到PSNP后,发送该PSNP请求的LSP来同步数据库。

经过一定时间后,整个网络的LSDB完全同步,网络处于稳定状态,只定时发送hello 报文。

3.3.2 ISIS 链路数据库
存储在ISIS链路状态数据库中的信息元素叫做链路状态数据包,就是LSP。

LSP包含了由ISIS路由器产生的描述其周围环境的路由信息。

Lsp头主要包含:
●区域信息
●邻接路由器
●IP子网
●度量信息
●认证信息
区域内路由器交换lsp的进程叫做扩散(flooding)区域内所有路由器都接收区域内lsp 并将它们汇聚起来。

ISIS 的LSP数据格式:
层1 和层2 各自封装了ISIS不同层次的路由信息,但它们的数据包格式相同。

层1 和层2的ISIS数据包都有一个包头到pdu长度字段前8 个字节是相同的,后面是tlv字段。

在pdu和tlv之间有几个字段比较重要:
剩余生存时间字段:lsp到期前的生存时间。

区域关联位:第4-7 位,表示改lsp 与带有如下可用度量的另一个区域的关联关系,第4位默认,第五位延迟,第六位开销,第七位误差。

超载位:第3 位,如果此位设置表示路由器超载,不能转发数据。

中间系统类型:第1,2 位,表示路由器的类型是层1 还是层2。

区域关联位+超载位+中间系统类型+区域修复字段=1 个字节。

LSP的剩余生存时间:
LSP剩余生存时间有2 个重要的值,一个是最大生存时间,一个是刷新间隔;
最大生存时间ISO 10589 指定值为20 分钟(1200秒),而且是从1200 一直倒数到0。

当lsp 的间隔到达刷新间隔的时候,该lsp 就会被源路由器重新生成,否则直到生存时间为0 就会被清除掉。

刷新间隔被定义为15 分钟(900 秒),
如果lsp 到生存时间都没有刷新包到来,那么这个包的生存时间到0 以后,那么IS 将出去LSP内容,只保留LSP Header 将Lifetime置0 洪泛出去,所有收到为0的lsp路由器在60秒后将从库中清除此lsp;这叫做零寿命生存时间,在cisco 中不可配置此参数。

收到新的LSP则重置生存时间。

在OSPF中只有LSA的生成者来清除LSA而ISIS是谁最早发现谁就发起清除。

链路状态数据包标识符:
●LSPID 由几部分组成:
●系统标识符(Sys ID)
●伪节点标识符(PSN ID)
●LSP编号(LSP number)
一个伪节点的链路状态数据包与一个多路访问的链路有关,并且由该链路DIS 产生。

路由器产生的常规LSP的PSN ID 地段是0,伪节点为非0 值。

LSP编号用于指示LSP片断,第一段的编号为0,如果一条较大的lsp的某一段在传输中丢失,那么接收端路由器就会丢弃其他段,整个lsp重传。

所有的路由信息都被捆绑进一个lsp中,该lsp可以根据需要分成多个片断。

单个lsp的最大长度是1492 字节(还有8 个字节isis包头)。

链路状态数据包序列号:
lsp序列号共4 个字节,最大为2 的32 次方减1 等于4,294,967,295,最小lsp再生间隔为30秒,那么4 个字节的序列号最大可以用4085.77 年。

序列号可以通过周期性的更新(增加序列号)用来保持LSP都是最新的而且是正确的。

链路状态包校验和:
如果路由器收到一条坏的lsp,那么路由器将此lsp清除,并且向网络发送一条那个lsp 的新条目,序列号比坏的那个要大,其他路由器收到后也清除坏的lsp。

如果lsp 被连续破坏,那么路由器会不断的清除,这样会引起lsp 破坏风暴,严重影响网络活动,甚至网络崩溃。

LSP包其他信息:总共1个字节
P(区域修复)字段:1 个bit位。

A TT(区域关联):占4bit,由层1-2 路由器产生,层1-2 路由器通过设置该位可向层
1 区域表明自己与主干相连,也就是可向区域内发一条默认路由。

如果L1 发现有多个L1-
2 路由有默认路由,那么将选择一个离自己最近的一个。

超载位:1bit表示路由器资源的可用状态,如果设置此位,那么路由器超载,路由器的LSP不会扩散,对于其他路由器来说,设置了超载位的路由器要绕过去。

例如:ISIS和BGP配合使用,当BGP还没有收敛起来的时候,路由器还没有准备好发送所有报文,可以设置这个超载位,可以指定时间一般为2-5 分钟,如果没有指定默认10分钟后清除此位,BGP收敛后自动通知路由器取消此位。

还有如果当IS 路由器内存不足的时候或其他问题,不能装在过多的LSDB 的时候也可以设置此位,用来表明自己的LSDB 不完整,因此警告别的IS,不能信任自己,当别的路由器收到它的时候,只计算设置过载位的路由器的直连连接的路由,不计算通过它到达其他路由的信息。

LSP中各类TLV字段:
完整lsp包是由lsp 包头+tlv 字段组成,lsp 包头介绍完了,那么看看TLV 中都有些什么东东吧。

TLV是一种高效率,扩展性好的协议报文编码格式。

T-Type:表示不同类型
C-Code:代码,和T一样
L-Lenth:整个TLV 的长度
V-V alue:本TLV 的实际内容,是最重要的内容,IP路由信息都在这里。

TLV 的好处是扩展性好,如果想增加新的支持能力,只要扩展一种新的TLV类型就可以了。

层1 的TLV字段和层2 的有区别,先看看层1 的TLV字段:
层1 tlv有个字段是类型3的叫做终端系统邻接路由器,是层1 路由器特有的。

还有类型128是ip内部可达信息,就是路由器直连网段地址,这个类型的tlv结构是:类型是―――128
长度――――1 字节
值:多个取值,4 字节的度量信息,4 字节的ip前缀,4 字节掩码。

层2 路由LSP中的TLV字段:
和层1 的差别在于,类型130 表示外部路由信息,没有终端系统邻接路由器类型字段。

如何推算出一个LSP可以通告的IP前缀数目:
LSP的最大长度是1492 字节
LSP包头占27 字节
LSP的TLV 最大长度为255 字节
一个LSP可以划分的最大片段数为256
LSP中TLV字段的可用空间=1492-27=1465
可插入的TLV 数目为1465/255=5.7 大约等于6,假定每个TLV前面有一个1 字节长的类型字段和1 个字节的长度字段,总共为6×2=12 字节。

IP地址可用空间为1465-12 的TLV 头=1453 字节
TLV 中可包含的IP前缀为1453/12=121.08 ,每个前缀长12 字节(IP地址+掩码+度量)每个LSP大约可包含121 个IP前缀。

加上lsp可以分成256 个片段,那么总共为30,976 个IP前缀。

ISIS度量:
在层1 和层2 的TLV类型128 中,为每个ip网段都分配了4 个字节度量值。

每个度量的第8bit表示所支持的度量类型,如果是默认度量的话设置为0,第7bit表示是内部度量还是外部度量,那么只有6bit来表示度量值,也就是最大的度量值只能是63 了。

ISIS宽度量:
以上的问题,在最近的LSP 中得到解决,新型的TLV 可以支持宽度量,类型135(用来代的128)和类型22,以前的度量只有6bit,由于cisco 只支持默认度量那么可以把其他的度量字段拿来使用,也就是可以有32 个bit 来表示度量值,从而允许更大的度量。

序列号数据包:
分为:
●CSNP(Complete sequence number packets)完全序列号数据包
●PSNP(Partial sequence number packets)部分序列号数据包
它们都具有相同的数据包格式,并且各自携带了lsp 摘要信息集合,累似于ospf 的lsdb 报文。

区别是csnp携带了路由器lsdb中所有的摘要,而psnp是携带的部分摘要。

路由器产生层1 和层2 路由器个子独立的摘要信息。

CSNP:
路由器在点到点链路和广播网络中用csnp来检查lsdb的一致性。

在点到点链路上如果邻接关系建立,那么路由器会一次性发送所有csnp。

而在广播链路上DIS会周期性广播csnp。

CSNP包头重要字段:
源路由器ID――产生CSNP路由器的System ID
起始LSP ID―――TLV字段中LSP条目中的第一个LSP的LSP ID
结束LSP ID―――TLV字段中LSP条目中的最后一个LSP的LSP ID
PSNP数据包:
PSNP主要实现:
在点到点链路中确认多个lsp中一个的接收。

路由器使用psnp来请求lsp的最新版本或者丢失的lsp,适用于点到点和广播。

3.3.3 路由选择信息扩散和链路状态数据库同步
ISIS和OSPF相同点在于:区域内所有节点都存储同一张拓扑表,然后通过spf算法计算出路由。

每个路由器都维护自己周边的链路信息和状态,最初只知道自己的一点点拓扑信息,然后通过flooding的方法得到整个网络的拓扑信息。

SRM和SSN 标志:
SRM和SSN 标志在路由选择信息扩散与数据库同步中具有重要作用。

更新进程用SRM标志来控制LSP传递到邻接路由器。

SSN 用于:
确认在点到点链路上可靠扩散接收到的LSP
广播链路上数据库同步时用于请求完整的LSP信息
路由器从一个接口收到lsp 后,它又会通过除收到lsp 的这个接口之外的所有接口扩散lsp的拷贝,为了扩散一个lsp,路由器首先为每个目标接口分别设置SRM标志,然后在成功传递时清除此标志。

在点到点链路上时通过psnp 来确认lsp 成功传递。

广播链路不需要确认信息。

点到点链路中路由选择信息扩散:
点到点的lsp是可靠的,因为又psnp来进行确认。

当两个相互连接的路由器建立邻接时,点到点链路所有csnp 一次性交换(2 台路由器都发送csnp信息)如果某台路由器发现邻接路由器没有某些lsp 时,它可以主动扩散这些lsp,也可用psnp请求。

SSN 标志用来在一些接收lsp的点到点链路上被设置用来表示需要发送一条psnp确认消息。

上面的图是显示了点对点链路信息的扩散过程,R2 和R3 的链路down 掉,R2 会产生一个新的LSP发往R1,R1 收到后会发送PSNP信息给R2,确认收到。

广播链路路由的扩散:
在广播链路中lsp通过组播地址:
ALL Level 1 IS (01-80-c2-00-00-14)
ALL Level 2 IS (01-80-c2-00-00-15)
分别扩散路由信息,并不需要点到点链路的确认信息。

为了弥补不可靠的扩散,DIS周期性发送csnp来实现广播链路的数据库同步。

每个csnp的周期为10 秒。

下面看看扩散的过程:。

相关文档
最新文档