大数跨境
0
0

ISIS路由协议

ISIS路由协议 丰沃创新
2021-01-30
1
导读:路由器类型· level1角色路由器level1角色路由器与level1角色路由器或者level1/2路由器

路由器类型

· level1角色路由器

level1角色路由器与level1角色路由器或者level1/2路由器角色形成level1的邻居关系。他们直接形成邻居关系必须属于相同Area,该Area为非骨干区域。

level1设备会维护Level1的LSDB数据库,根据SPF算法生产level1路由条目插入路由表。

· level2角色路由器

level2角色路由器与level2角色路由器或者level1/2角色路由器形成level2的邻居关系。level2角色路由器建立邻居可以属于不同的Area区域,又连续level2角色路由器形成的邻居关系的区域,我们称为骨干区域,类似OSPF的Area0区域。

level2的骨干区域不能被分割,必须连续。level2角色路由器维护level2的LSDB数据库,根据SPF算法产生level2的路由条目插入路由表。

· level1-2角色路由器

类似OSPF的ABR概念,它有接口连接到由level2组成的骨干区域并形成level2的邻居关系,也有level1的接口连接到由level1组成的非骨干区域并形成level1的邻居关系。

因此L1-2路由器维护了两张LSDB表,Level1的LSDB和Level2的LSDB。level1的非骨干区域想要访问骨干区域或者其他area的level1区域时,通过该Level1-2的边界路由器访问。

华为设备默认路由器角色为level1-2,可以通过命令进行修改。

isis 1

is-level level-1 //进程下修改路由器角色。

ISIS区域

OSPF和ISIS都是存在区域的概念,ISIS存在两种区域进行分层,骨干区域和非骨干区域。非骨干区域连接着骨干区域。

骨干区域由Level2和Level1-2的路由器形成Level2邻居关系,建立邻居关系时无需关心Area是否相同。她们之间维护着Level2的数据库,有全网最全的LSDB数据库,并通过该数据库信息生产路由表中的路由。

非骨干区域由Level1和Level1-2的路由器形成Level1邻居关系,Level1的所有接口必须属于相同Area中。他们通过L1-2路由器去往其他区域。

ISIS区域参考图:

配置路由器Area及System-ID:

isis 1

is-level level-1

network-entity 56.7777.7777.7777.00 ------注意这里是16进制表示

  • 56表示区域,level1必须属于相同区域

  • 7777.7777.7777为System-ID,共6个字节,全网不能唯一

  • 00表示协议标识号,在IP上固定值00

网络类型

ISIS中,只有两种网络类型,广播和P2P。它不像OSPF一样有丰富的网络类型,ISIS是没有P2MP和NBMA网络类型。

· 广播链路:如Ethernet、Token-Ring等。

· 点到点链路:如PPP、HDLC等。

对于 NBMA 网络(比如ATM ,帧中继) ,需要配置子接口,并且是点对点的子接口才能支持 IS-IS 协议, IS-IS协议是不支持点对多点子接口的 。如果网络中存在这些物理网络类型,建议还是使用OSPF吧。随着网络的发展,使用ATM和帧中继的网络也会越来越少,就向现在的HCIE数通的考试,也已经不考帧中继了。

将以太网的广播类型修改为P2P网络类型:

interface gigabitethernet 1/0/0

isis circuit-type p2p ----将广播网络类型修改为P2P类型

ISIS建立邻居过程

ISIS建立邻居过程使用了三种类型的Hello数据包:

P2P IIH:用于P2P网络建立level1或level2的邻居时使用

L1 LAN IIH: 用于广播网络 Level-1邻接

L2 LAN IIH: 用于广播网络 Level-2邻接

在不同的网络类型和level2直接建立邻居关系使用的hello数据包类型也是不一样的,P2P网络只使用一种类型。而在广播网络类型时,不同level路由器之间建立邻居使用类型也不同。

这里强调一下,ISIS的level是层级的概念,在LAN网络上,不同的层级使用不同Level Hello建立邻居关系。

ISIS建立邻居时注意以下条件:

· Level1之间必须属于相同Aare,Level2无所谓

· Level1-2和Level1形成邻居关系时,Level1-2必须属于相同Area

· 邻居建立时,网络接口类型要一致

· 邻居之间IP必须属于相同子网

· 认证能通过

· 设备之间互连接口MTU要一致

ISIS建立邻居和OSPF建立邻居有些相似,在LAN网络中,使用三次握手来建立邻居关系。其状态只有initialize和up两个状态,不像OSPF一样有许多不同的状态。

LAN网络建立过程参考图:

· R1设备启动后,向启用ISIS的接口发送hello报文,该hello报文中包含了自己的system-ID和邻居列表(邻居列表像极了OSPF)。

· R2设备在该链路上收到了对方发送Hello报文,邻居列表为空。此时将自己邻居状态更改为initialize状态,并发送自己的hello报文,里面包含了R1的SyStem-ID。

· R1收到hello报文发现里面有自己的system-ID,将邻居状态变为UP状态。并回送hello报文,将R2的system-ID包含在该hello报文中。

· R2收到hello报文中包含了自己的system-ID,将邻居状态更改为UP状态,邻居建立完成。

· 邻居建立完成后,周期性发送hello报文来维持邻居关系,超过hold时间邻居失效。

在P2P网络中,建立邻居可以使用两次握手或者三次握手来建立邻居关系,华为默认是使用三次握手建立邻居关系,如果网络里老旧设备只支持2次握手建立邻居时,可以向下兼容。

P2P网络建立邻居2次握手过程参考图:

路由器只要收到hello报文,直接将邻居状态改为UP状态。2次握手有可能会出现一种情况,就是物理介质单通,比如光纤1芯故障。此时设备邻居状态会出现一边状态为UP,一边为状态DOWN。三次握手就避免了该情况的出现。

LAN网络中的DIS

在OSPF的广播网络类型中要选择DR和BDR,在ISIS的广播网络中,Level1和Level2分别要选择1台设备成为DIS,且没有备份DIS的存在。

选择DIS的条件为:

· 接口优先级最高,最高127,默认64。0也会参与选举DIS,并且会发送抢占。

· 接口MAC地址最大

· SYSTEM-ID最大

DIS的作用就是解决LAN网络复杂的full matches的邻居关系带来的复杂问题,在ISIS的LAN网络中,所有节点相互建立邻居关系,并且邻居之间通过LSP更新链路状态信息(类似OSPF的LSA)。DIS用来降低LAN网络的复杂度和提高带宽利用率。

DIS的作用:

· 模拟出伪节点,生成伪节点的LSP,用来描述该LAN网络上有哪些路由器 。

· 确保LAN网络中 LSP 泛洪的可靠性,进行隐式确认。

通过华为命令查看邻居关系:

<r5>display isis peer

Peer information for ISIS(1)

System Id Interface Circuit Id State HoldTime Type PRI-------------------------------------------------------------------------------7777.7777.7777 GE0/0/0 5555.5555.5555.01 Up 21s L1 64 3333.3333.3333 S1/0/0 0000000002 Up 28s L2 --

  • 7777.7777.7777:表示邻居System-ID

  • GE0/0/0:建立邻居的接口

  • 5555.5555.5555.01:P2P类型时候,为邻居电路ID。如果是广播类型网络表示LAN ID,5555.5555.5555为DIS设备system-ID,01表示伪节点ID。

  • HoldTime:HoldTime为30秒,Hello为10秒。如果邻居为DIS,HoldTime为10秒。

  • L1:表示邻居level级别,建立的level1还是level2的邻居

链路状态数据库同步过程

在介绍链路状态数据库同步过程之前,先介绍数据库同步过程中使用的报文类型有哪些。一共有两种报文,第一种为LSP(链路状态报文)报文,第二种为SNP(序列号报文)。

· link-state packet = LSP 链路状态报文

· complete sequence number = CSNP 完全序列号报文

· partial sequence number= PSNP 部分序列号报文

ISIS是链路状态路由协议,它会根据LSDB进行SPF算法,计算出路由并插入到路由表中。组成LSDB链路状态数据库基本元素为LSP(链路状态报文)。

它的作用是描述路由器的接口及所连网络的信息,包括接口所连网络的子网、类型、开销等信息。路由器将自己的LSP泛红给邻居,邻居将LSP泛红至其他邻居,逐级范围最终形成了LSDB(链路状态数据库)。

之前提到过不同Level形成不同的Level邻居关系,因此Level1的LSP在Level1邻居之间泛红,Level2的LSP在Level2邻居之间泛红,形成不同Level的LSDB。

设备如何判断接收到的LSP是否为最新的LSP呢,因为LSP报文内包含序列号位,每次产生最新LSP时,该序列号数据加1,当设备收到的LSP报文序列号比自己数据库的LSP序列号大时,就认为该LSP是最新的。如果收到的LSP没有自己的序列号大,设备立刻将自己的LSP泛红出去。

LSP也会存在老化的问题,默认时间为1200s,设备每经过900s后泛红一次LSP,设备收到泛红LSP后,重置为1200s。

LSP是如何产生的:

· 邻居关系Up或Down

· IS-IS相关接口Up或Down

· 引入的IP路由发生变化

· 区域间的IP路由发生变化

· 接口被赋了新的metric值

· 周期性更新

CSNP报文称为完全序列号报文,它类似OSPF中的DBD报文,里面包含了所有LSP的头部信息,也就是LSDB的目录。

在P2P网络类型中,邻居建立完成后,邻居状态为UP后,设备会相互发送CSNP报文,描述自己数据库的目录,接收CSNP报文以后如果发现数据库缺少某条LSP后,设备会发送PSNP(部分序列号报文),类似OSPF的LSR报文,设备收到PSNP后,发送LSP报文更新。设备收到LSP后,发送PSNP进行对LSP的确认。在P2P网络中,CSNP用于初始的数据库目录同步,PSNP用于对LSP的请求和确认。

在网络类型为广播类型中,设备建立完邻居关系后,并不会相互发送CNSP报文,而是直接泛红自己的LSP报文。在广播网络类型中,泛红的LSP是收不到确认报文的,DIS设备会周期通过自己的CSNP报文,其他设备通过DIS周期发送的CSNP报文中是否有自己泛红的LSP ID来确定刚才自己泛红的LSP是否让其他邻居已经收到,这就叫隐式确认。

广播网络中的同步过程

参考图:

· 建立邻居关系之后,RouterC将自己的LSP发往二层组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。ISIS的报文封装在二层上,而OSPF报文封装在三层上。

· DIS路由器收到了RouterC发送的LSP,更新自己的LSDB,等待CSNP报文定时器超时后发送CSNP报文,里面包含4条LSP头部信息。

· RouterC收到CNSP报文后,里面包含了自己的LSP ID,说明刚才自己发送的LSP邻居已经收到(隐式确认),并发现CSNP报文中3条LSP自己数据库中缺少,RouterC会向网络中发送PSNP报文,进行请求。

· DIS收到PSNP报文后,将3条LSP泛红至网络

P2P网络中的同步过程

P2P网络数据库同步过程参考图:

· RouterA先与RouterB建立邻居关系之后,RouterA与RouterB会先发送CSNP给对端设备。设备会根据CSNP中的LSP头信息来检查自己的LSDB中是否缺少相应的LSP。

· 如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。

· 假定RouterB向RouterA索取相应的LSP。RouterA发送RouterB请求的LSP的同时启动LSP重传定时器,并等待RouterB发送的PSNP作为收到LSP的确认。

· 如果在接口LSP重传定时器超时后,RouterA还没有收到RouterB发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。

通过命令查看LSDB数据库信息:

<r7>display isis lsdb

Database information for ISIS(1) -------------------------------- Level-1 Link State Database

LSPID Seq Num Checksum Holdtime Length ATT/P/OL-------------------------------------------------------------------------------5555.5555.5555.00-00 0x0000000d 0x73cd 797 88 1/0/0 5555.5555.5555.01-00 0x00000007 0x802c 797 54 0/0/0 7777.7777.7777.00-00* 0x0000000b 0xdb34 656 76 0/0/0

  • LSP ID:LSPID用来在链路状态数据库中唯一标识一条LSP,使接收路由器能区别出每条不同的LSP及其始发源路由器。LSPID总长8字节 。前6Byte表示始发路由器的系统ID ,在系统ID之后的1个字节表示伪节点 ID 。如果这个字节值是零,表示LSP是由普通路由器发出的,如果是非零,则表示 LSP 是由 DIS 发出的。最后一个字节00表示LSP编号,如果路由信息很多,会导致LSP报文很大以至于超过了发出接口的 MTU值,这时需要分段处理,也就是将路由信息放在不同分段的LSP传送 。LSP 第一个分段的编号为0 ,第二个分段的编号为1.以此类推 。

  • *号:表示该LSP是本地产生

  • Seq Num:LSP序列号用来表示被刷新的次数,是一个4字节长的无符号整数,从0开始计数,但是1台路由器启动 IS-IS进程后,第一次生成 LSP 序列号是1,以后LSP每刷新(重新生成) 一次,序列号加1。通过LSP序列号,可以判断一条 LSP的新旧 。

  • Holdtime:LSP的阳寿时间,默认为1200s,1200s没收到刷新LSP后,该LSP失效。刷新时间默认900s。

  • ATT/P/OL:这里要注意ATT置位和OL置位。P位区域修复位,华为不支持,固定值为0。

  • ATT置位:Level1-2路由器角色会向Level1的邻居泛红LSP时,会将LSP的ATT位置1,Level1路由器收到LSP中有ATT置位时,会在路由器自动产生一条指向离自己最近的Level1-2路由器的默认路由。level1-2路由器必须有有效的level2邻居才会将ATT置位。可以通过使用#attached-bit avoid-learing命令让Level1路由器是收到ATT置位的LSP时不产生默认路由。

  • OL置位:称为过载位,默认为0。当设备的系统压力过大时,存在转发风险,更新LSP时会将OL位置位。当收到OL置位的LSP时,那么计算SPF算法时不会将过载的路由器成为中转设备,除了去往该设备的直连网络。华为设备中当设备工作异常会自动进入过载位,或者也可以手工设置。# set-overload命令用来配置非伪节点LSP的过载标志位。该路由器不被其他路由器计算SPF使用,用户应在本路由器上配置set-overload命令,系统会立即在其发送的LSP报文中设置过载标志位,并且只能通过执行undo set-overload命令取消此过载标志位。

IS-IS路由渗透

ISIS的路由渗透发生在Level1-2节点上,刚才已经阐明过一个观点,Level1-2的路由器会存在两个LSDB数据库,Level1的LSDB和Level2的LSDB。导致的结果就是非骨干区域Level1的路由器只能学习到本区域的路由,无法学习到骨干区域level2和除本区域的其他路由。

相对骨干区域Level2的路由器只能学习到骨干区域level2的路由,无法学习到非骨干区域Level1的路由。此时需要IS-IS的路由渗透功能。

路由渗透参考图:

Level1和Level1-2只能建立level1的邻居关系,形成非骨干区域。Level2-Level1-2只能建立Level2的邻居关系,形成骨干区域。Level1-2和Level1-2即可以形成Level1邻居关系又可以形成Level2的邻居关系。

设备默认情况下,Level1的路由会自动注入Level2的LSDB中,注入时称为Leak路由,该路由再次被注入其他Level1区时,Lleak路由变无法再通过该区域的Level1-2注入到Level2的LSDB中了,为了防止环路的发生,因此Level2的骨干区域不能被分割。

可以通过命令 #undo import-route isis level-1 into level-2 来取消Level1自动注入Level2 LSP的行为。

Level2的路由注入Level1时,默认是关闭的,可以通过命令 #import-route isis level-2 into level-1来解决。

· RouterA发送报文给RouterF,选择的最佳路径应该是RouterA—RouterB—RouterD—RouterE—RouterF。因为这条链路上的cost值为10+10+10+10=40,但在RouterA上执行tracert命令,查看发送到RouterF的报文:选择的路径是:RouterA—RouterC—RouterE—RouterF,其cost值为10+50+10=70,不是RouterA到RouterF的最优路由。

· 这是由于RouterA并不知道本区域外部的路由,所以发往非本区域网段内的报文都是通过由最近的Level-1-2路由器产生的缺省路由发送出去的。此时分别在RouterC和RouterD(Level-1-2)上执行import-route isis level-2 into level-1命令,使能路由渗透。

· 再执行tracert命令,发现路径是RouterA—RouterB—RouterD—RouterE—RouterF,为RouterA到RouterF的最优路由。

【声明】内容源于网络
0
0
丰沃创新
国内领先的ICT综合服务提供商,丰沃创新总部位于北京。业务覆盖全国。业务主要涵盖系统集成与软件开发、客户技术支持服务、ICT及AIoT产品教育培训三个事业部,为政府、电力能源、交通、金融、教育等诸多行业客户提供专业化的ICT产品及服务。
内容 1642
粉丝 0
丰沃创新 国内领先的ICT综合服务提供商,丰沃创新总部位于北京。业务覆盖全国。业务主要涵盖系统集成与软件开发、客户技术支持服务、ICT及AIoT产品教育培训三个事业部,为政府、电力能源、交通、金融、教育等诸多行业客户提供专业化的ICT产品及服务。
总阅读453
粉丝0
内容1.6k