0
点赞
收藏
分享

微信扫一扫

ISIS学习笔记

爱情锦囊 2022-02-27 阅读 68

Isis基础(中间系统到中间系统路由选择协议)

Isis的起源

Isis原本属于osi协议簇,为clnp协议工作,

Ospf属于tcp/ip协议簇,为ip协议工作

对比:

Tcp/ip协议簇   osi协议簇

Ip协议        clnp协议

Ospf协议      isis协议

在运营商中使用isis较多,运营商中与ospf五五开,适合用于扁平化网络环境

优势:isis是第一款能够同时支持ipv4和ipv6的协议

                                    

Isis基础特性

Igp协议

适合扁平化大型网络(中到大型运营商网络)因为isis网络优化特别好

交换lsp(链路状态pdu)

Tlv字段可以表示任何想要表达的一切东西(基本上来说)

Isis支持lsp切片,所以lsp可以无限大,所以想要表示什么东西都可以一条lsp搞定一切

Lsdb放拓扑信息和路由信息(链路状态数据库)

支持vlsm cidr和summary

优点:由于tlv字段存在,所以可扩展性极高,可以表示任何类型(这也是为什么这么容易从osi协议簇移植到tcp/ip协议簇的原因)其他所有协议都没有此字段。

缺点:只支持map2p网络,网络类型有限,isis不是一个灵活的路由选择协议。

算法:ispf  prc算法

Isis是最后一个加入tcp/ip协议簇的路由选择协议,确实最早支持ipv6的路由选择协议,也是由于tlv字段可以表示绝大多数想表达的东西

集成isis(双栈isis)支持clnp和ip协议(对比ospf进行学习)

树枝

树干

树叶

Ospf最大的缺陷就是针对树枝和树干节点都会进行ispf计算,比如一个还回口出现了变化,整个区域内就要重新计算拓扑,isis做出很大的优化,只针对树干执行ispf计算,树枝和树叶只会做prc计算

Ospf交互的是lsa,isis交互的是lsp

Ospf区域与isis层级比较

Level1   区域内(类似ospf的totally  nssa区域)

Level1-2  ABR

Level2   区域间

不同区域router只能建立level-2的邻居关系,相同区域则两种邻居关系都可以

Isis骨干链路:有连续的level-2和level1-2组成,纯level2只能在骨干链路区域

Isis层级特性

Level1路由器:只能发送和接收level1lsp,且只能与level1路由器建立邻居关系,类似ospf中的区域内路由,Level1 lsp只能获得区域内的拓扑信息,通过静态默认访问其他区域

Level1-2路由器:可以理解为既可以是level1路由器,也可以是level2路由器,既可以获得level1lsp,也可以收到level2lsp,只能收到路由,无拓扑信息,收集到level1的路由会转化为level-2形式发送给level-2邻居,但是收到level-2路由只会本地保存,Level-1-2路由器给区域内路由器发送level-1 lsp时会将ATT位置1,让其他的router知晓我是边界,并产生一条默认路由指向我。(注意:是由level1路由器产生,)当有多台边界路由器的时候,优先指向最近的边界路由器

Level2路由器:可以再区域内建立邻居,也可以在区域间建立邻居,但是一般来说都是与区域间建立邻居,类似于ospf中的骨干路由器。

默认情况下所有的router都是level1-2router

Isis中,一台路由器属于哪个区域属于哪个区域由net地址决定,一台路由器只能属于一个区域,但是不同区域可以建立邻居

为什么逻辑骨干区域只能由level2和level1-2路由器呢?

  1. level1路由器无法跨越区域建立邻居
  2. level1路由器无法接收level2的lsp(互连相当于端到端的通信中断)

Ospf router-id  X.X.X.X

Isis router-id (net网络实体标题)nesl为00的nsap地址

路由泄露 route-link

Lv2 泄露给lv1 可以做到数据层面的负载均衡

周期性更新lsp,当拓扑发生变化时,立即触发更新

Lsa老化计时器为一小时,30min发送一次

Lsp老化计时器为20min,15min发送一次(从1200S开始倒计时)

Metric(isis最大痛点)

默认为10,不看带宽延迟,控制层面所有入接口累加

Metric有两种类型

  1. narrow metric (窄度量值):接口6bit,链路10bit
  2. wide metric (宽度量值):接口24bit,链路32bit

兄弟协议es-is(终端到中间系统):让pc知道网络中有哪些网关(tcp/ip协议不支持此协议),es向is发送esh,is向es发送ish,通过这种不对等的hello来建立邻居。

Ospf与isis的相似之处

  1. ls协议
  2. 同步机制
  3. 都是周期加触发更新
  4. 收到的lsp和lsa都是放在lsdb
  5. Spf算法
  6. 更新泛洪方式一致
  7. 支持vlsm和cidr
  8. 都有较大的扩展性,适合中到大型网络

Ospf与isis的不同之处

  1. ospf使用接口划分区域,isis使用本身net划分区域
  2. lsa有多种类型,lsp只有level1和level2(tlv包罗万象)
  3. isis只支持p2p和ma网络,ospf支持多种网络
  4. metric计算方式不相同

isis高级特性

clnp使用nsap地址,集成isis需要使用net地址和IP地址

osi协议簇中nsap表示的节点是设备本身

nsel为全0时表示节点本身,不为0时表示该节点上跑的应用

nsel为全0时这个nsap就是一个net地址(最多可配置三个)

nsap地址(最短8字节,最长20字节,该地址不是用来宣告的,不要求可达)

继承isis将nsap地址当做一个router-id,并没有实际标识设备本身,一般固定长度为10字节

Nsap地址结构详见书本笔记

IDP高位(初始域):由AFI IDI组成

DSP低位(域指定部分):由hodsp,system id ,nsel组成

*AFI:(1字节)所属的组织(一般使用49,49相当于私有AFI,无需购买租赁)

IDI:(可变长字段,与hodsp最多一共12字节)AFI的扩展字段(AFI的子域可以理解为)

*HODSP:(可变长字段,与idi最多一共12字节)描述节点所属区域(area,isis中一般都会包含此字段,使用两个字节)

*System-id:(6字节)系统标识符,标识节点本身,(6字节,十六进制位)

*NSEL(1字节):nsap的选择器,用来标识节点上的上层应用,net地址为全0

Isis 的net地址=AFI(1字节)+hodsp(2字节)+system id(6字节)+nsel(1字节)=10字节

Circuit id:(电路id)用以标识接口

Snpa:根据实际的二层地址转换而得,用以描述接口是什么类型的接口

System id+circuit id=描述接口本身

Level 2数据库也有区域内路由(若两个同区域的level2路由器互连)

当两台属于相同区域的level1-2路由器互连时,在level1和level2 lsp数据库中都会产生一条一样的lsp,优先使用level1 lsp来传路由,(此时消耗资源较大,要同时维护两个链路状态数据库)

Isis net地址识别原则

区域内只看system id,不看area

区域间只看area号,不看system id

有时由于有多台ABR,且路径长度不一致,且内网路由器没有明细路由,此时level1路由器产生的默认路由会优先指向离他最近的ABR,有时会产生非对称路由

解决方式:通过路由泄露将level2路由泄露到level1路由器中,实现数据层面负载均衡,泄露的路由up/down位会置1,其他的ABR收到此路由后,不会计算相关路由,只会将该lsp放入链路状态数据库中(防止产生次优路径,因为该边界路由器同时收到level1level2路由时,会优先使用level1路由进行数据传输。)

Isis报文

  1. hello:(esh,ish,iih)esh是终端发送给路由器的hello,让路由器知道有这么一个节点,ish是路由器发送给终端的,让终端知道谁是网络出口,谁是网关,其中isis协议使用的是iih,ma网络中分为level1和level2两种,p2p单独有一种hello  hello时间为10s,dead time为30s,dis为3.3s,dead时间为10s
  2. lsp:类似lsa,seq从1开始,用来传递路由信息和拓扑信息,也有level1和level2两种
  3. psnp:ma中类似于ospf的lsr,p2p中类似于lsack,也分level1和level2两种
  4. csnp:类似于ospf中的dbd,也分为level1和level2两种

无论那种报文封装格式都如下:

二层帧头——data——fcs

hello报文:

广播网络:3次握手(通过neighbor字段实现,和ospf一样)

P2p网络:2次握手(收到hello则认为对方是自己的邻居)可通过配置将其修改为三次握手,但是不能在广播网络中将三次握手更改为两次握手。

Lsp报文:

报头——tlv——tlv………..

报头中包含:

  1. system-id
  2. pdu
  3. lsp-id
  4. seq
  5. remanding计时器(从1200s开始倒数,ospf从0开始正数)
  6. 长度字段

Isis几个典型问题

  1. 什么情况下的level1 lsp会使ATT位置1

前提

  1. 起源路由器是一个level1-2
  2. 拥有level2路由器邻居
  3. Lsdb中有其他区域的level2路由

  1. 什么样的路由器接收到level1 ATT位置1的路由会产生静态默认?
  1. 纯level1才会(默认路由会指向最近的边界)
  2. Level2或level1-2的路由器会有全路由

3、level1和level2 lsp的区别

   1、level1 lsp包含拓扑信息

   2、level2 lsp只包含路由信息

Isis网络类型

  1. ma网络
  2. p2p网络

  1. ma网络中:
  1. 三次握手交互hello开始选举dis,瞬间选举

Dis:(指定中间系统)相当于ospf的dr,但是并不如dr那么重要,不进行实际lsp传输,只是作为参照物,也不需要备份

选举方式:

  1. 比较优先级,默认64,优先级越大越优
  2. 比较snpa(mac地址)也是优先级越大越优

Ps:1、dis默认开启抢占

  1. dis在level1和level2 中分开进行选举
  2. 无备份(无bdis)
  3. Dis的hello time为3.3s一次,10s未收到hello则down邻居
  4. Dis会产生伪节点lsp,类似2类lsa,用以告诉其他邻居,这个ma网络中的成员信息,便于做spf计算画拓扑。普通节点的lsp-id都为0,伪节点不是全0

Dis功能:

  1. 周期性传送csnp,保证该网络中的所有路由器database保持同步,作为lsp的确认机制
  2. 发送伪节点lsp,便于邻居发现网络中的其他成员

为什么dis不需要备份?

因为在ospf中,dr,bdr选举需要40s,并达到领接状态,达到传送lsa的条件,若没有bdr,当dr down掉时,重新选举dr需要40s的时间,影响了网络稳定性,因为dr时反射所有给他的lsa,所以dr是十分重要的,而dis是否选举大家都是邻接状态,是可以直接相互交互lsp的,dis只是作为一个参考,作为lsp可靠传输的确认机制,大家都要与dis比较dbd,dis会每10s发送一个csnp(类似ospf中的dbd),大家与之进行比较,我少了则发送psnp向dis请求这条lsp,我多了则直接将此lsp发送给dis,所以dis可以随时选举,且不会影响网络稳定性

不同级别的dis单独选举,可以是同一路由器,也可以不是同一路由器

任何路由器收到任何lsp无需进行确认,因为dis 10S发送一次csnp

Isis ma网络中交互lsp过程

  1. 交互hello,三次握手建立邻居关系,如果在接收到的iih报文中,看到自己接口的mac地址,说明邻居已经接收到并进行确认了自己发送的iih报文,则本地维护地邻居关系转换为up状态。
  2. 同一网络中,每台路由器向组播地址通告自己的lsplevel1的组播地址为01-80-c2-00-00-14,level2的地址为01-80-c2-00-00-15
  3. 选举完dis后,由dis收集lsp,并每隔10s发送csnp,所有网络中的成员进行比对csnp和自己的数据库,少了发送psnp进行请求,多了发送lspdis,最终达到链路状态数据库实现同步。(csnp10s发送一次,所以收到lsp不需要进行确认,反正10s后还会再发,在进行比对即可。)

上述过程中所有的报文都是组播方式交互的。

  1. p2p网络中

isis p2p网络中的lsp交互过程

1、使用p2p hello进行两次握手建立邻居

2、建立邻居后互相发送一个csnp报文(只在建立邻居时发送,只发一次)

3、比对自己没有的lsp,然后针对没有的lsp发送psnp给对方进行请求

4、收到psnp请求后,回复lsp

5、收到lsp报文后,回复一个psnp作为ack代表我收到了你发送给我的lsp

Ps:若在发送csnp过程中丢包了,则对方假定你没有任何lsp,对你进行倾囊相授,所以丢包了也不会影响。

相关术语

IS:中间系统,相当于tcp/ip中的路由器,是isis协议中生成路由和传播路由信息的基本单元。

ES:终端系统,相当于TCP/IP中的主机系统,ES不参与isis路由选择协议的处理,iso使用专门的es-is协议定义终端系统与中间系统间的通信。

伪节点:是用来模拟广播网络的一个虚拟节点,并非真实的路由器,在isis中,伪节点用dis的system-id和一个字节的circuit-id(必须是非0的值)来标识,使用伪节点可以简化网络拓扑,使路由器产生的lsp长度较小,另外,当网络拓扑发生变化时,需要产生lsp数量也会较少,减少spf的资源消耗。

举报

相关推荐

0 条评论