文章目录
中间系统
一、中间系统
(1)、概述
①.在OSI七层模型中,我们把具有报文转发的网络节点,称之为IS,即中间系统的意思,类似于TPC/IP模型中的路由器
②.在OSI七层模型中,我们没有路有能力或者报文转发能力的设备叫做ES,即端系统的意思,类似于TCP/IP模型中终端
③.IS-IS协议叫做中间系统到中间系统,早期的时候服务于OSI参考模型的IGP协议,这个协议和OSPF有千丝万缕的关系.这两个路由协议都是用SPF算法
ISIS支持CLNP协议(无连接的网络服务,作用类似于TCP/IP模型中的IP协议),而OSPF中用于支持IP协议
- CLNP协议无连接的网络服务,作用类似于TCP/IP模型中的IP协议,都是用来进行逻辑寻址的网络层协议
由于ISIS
协议工作依靠CLNP协议,相比于OSPF
协议它不依赖IP协议进行工作,无论网络层运行ipv4还是ipv6或者CLNP都可以灵活适应,扩展性好,收敛快,协议特性稳定等等被运营商网络广泛使用
- 地址结构
(2)、ISIS地址结构
NSAP :
网络服务访问点NSAP(Network Service Access point) 是OSI协议中用于定位资源的地址
- IDP (Inital Domain Part)初始域地址
- DSP(Domain Specific Part)特定域地址
-
Net地址:
NET地址由三部分组成
1、Area ID
2、System ID
3、SEL
# 如何通过NET地址判断这个路由器所属的区域? - 使用从后往前数,7个字节,然后剩下的就是区域ID - 这其中的49表示ISIS协议实例的标识符,后面的0000.表示区域0 - 49.0001,表示区域1 net: 49.0000.0000.0001.00 2 2 2 1 = 7
-
system ID:
- system ID用来在区域内唯一表示主机或路由器,在设备的实现中,它的长度为48bit(6字节).
在实际应用,一般使用Router ID与system ID 进行对应,假设一台路由器使用接口Loopback0的IP地址168.10.1.1作为Router ID,则它在IS-IS中使用system ID可通过如下方法得到
- 将IP地址168.10.1.1 的每个十进制数都扩展为3位,不足3位的在前面补0,得到168.919.001.001 - 将扩展后的IP地址分为3部分,每部分由四位数组成,得到1680.1000.1001.重新组合的1680.1000.1001就是system ID > 实际system ID的指定可以有不同的方法, 要保证能够唯一表示主机或路由器
-
ISIS协议配置NET地址
拓扑图:
- AR1:
[AR1]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 2
The number of interface that is DOWN in Physical is 2
The number of interface that is UP in Protocol is 2
The number of interface that is DOWN in Protocol is 2
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.12.1/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
# 配置ISIS net地址
[AR1]isis
[AR1-isis-1]network-entity 49.0012.0000.0000.0001.00
# 接口下调用ISIS
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]isis enable 1
[AR1]int lo0
[AR1-LoopBack0]ip add 1.1.1.1 32
[AR1-LoopBack0]isis enable 1
- AR2
[AR2]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 2
The number of interface that is DOWN in Physical is 2
The number of interface that is UP in Protocol is 2
The number of interface that is DOWN in Protocol is 2
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.12.2/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
[AR2]isis
[AR2-isis-1]network-entity 49.0012.0000.0000.0002.00
# 接口下调用ISIS
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]isis enable 1
- AR2上查看AR1环回口1.1.1.1的路由
[AR2]display ip routing-table 1.1.1.1
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 ISIS-L1 15 10 D 10.0.12.1 GigabitEthernet
0/0/0
(3)、ISIS区域和OSPF区别
-
相同点:
都有骨干区域和非骨干区域
-
不同点:
1.OSPF的区域划分边缘在路由器上,而ISIS区域划分边界在链路上
2.OSPF区域的类型由区域号决定,协议规定区域号为0的区域就是OSPF的骨干区域,非0区域就是非骨干区域
ISIS区域类型由邻居级别决定
(4)、ISIS的类型
这些级别有:
-
路由器级别:
1.level-1: L1的路由器只能建立L1的邻居关系,但是要求两端ID一致
2.level-2: L2的路由器只能建立L2的邻居关系,但是不要求两端区域ID一致
3.level1/2: L1/2的路由既能建立L1的邻居关系(要求区域ID一致),也能够建立L2的邻居关系(不要求区域ID一致)
默认情况下华为设备启用ISIS协议之后,就是一台L1/2的路由器
-
邻居级别
level1的邻居: 建立L1邻居关系要求路由器两端区域ID一致
level2的邻居: 建立L2的邻居关系不要求路由器两端ID一致
-
骨干区域:
是由连续的l2路由器和L1/2的路由器之间,建立L2邻居关系,组建成的逻辑区域为骨干区域
-
非骨干区域:
是由L1的可以和L1/2的路由器,建立L1的邻居关系,组建成逻辑区域为非骨干区域
-
-
我们这里修改AR1的ISIS-level的级别
必须要双方均为一个level级别才能建立邻居关系
[AR1]isis
[AR1-isis-1]is-level level-2
# 再次查看邻居关系: 发现邻居关系中断
[AR1-isis-1]display isis peer
# 重新修改回level等级后,邻居关系恢复正常
[AR1-isis-1]display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0000.0000.0002 GE0/0/0 --- Up 26s L1 64
Total Peer(s): 1
- 链路级别
在ISIS中网络类型由链路层协 议进行判断,当链路层协议是以以太网的时候网络类型为广播型;
当链路层协议是HDLC或者PPP的时候网络类型为P2P类型,目前ISIS不支持P2MP和NBMA(非广播多路访问网络)网络类型
DIS :
(Designated IS)
全称被指定的中间系统,其实就是类似于OSPF中的DR(指定路由器),它的作用就是虚拟和更新一个伪节点
OSPF在MA(多路访问)网络中会选举DR(指定路由器)和BDR(指定备份路由器),ISIS在MA网络中会选择DIS,没有DIS的概念
-
DR和DIS共同的特点:
1、在SPF计算的时候,都当做虚拟的节点,用于简化MA网络的逻辑拓扑,减轻算法的负担
2、都是用于减少LSA/LSP的泛洪
3、ISIS中DIS发送CSNP报文 ,用于在MA网络中同步LSDB
-
OSPF DR的特点:
1、DR优先级默认等于1
2、当DR优先级为0的时候不参与DR和BDR的选举
3、DR和BDR不支持抢占
4、DR和BDR的优先级最高位255
-
ISIS DIS的特点:
1、DIS优先级默认等于1
2、当DIS优先级为0的时候依然参与选举
3、ISIS没有备份DIS的概念
4、ISIS DIS的优先级最高为127
-
ISIS DIS选举规则:
1、首先比较DIS优先级,优先级大的设备成为DIS
2、当优先级相同的时候,比较接口MAC地址,越大越优先
-
ISIS DR选举规则:
1、首先比较DR优先级,优先级大的设备成为DR
2、当优先级相同的时候,比较Router ID,越大越优
网络类型:
1.广播网络
2.P2P网络
(5)、ISIS报文类型
-
Hello报文:用于发现维护建立ISIS邻居关系
1、L1的hello报文,在广播链路上用于建立L1的邻居关系
2、L2的hello报文,用于广播链路建立L2的邻居关系
3、P2P Hello:用于在点对点链路建立L1或者L2的邻居关系
-
LSP报文:用于描述链路状态信息,类似于OSPF的LSU
1、L2 LSP:用于描述L1的链路状态信息
2、L2 LSP:用于描述L2的链路状态信息
-
SNP报文:即序列号报文,包含 1、完全序列号报文 2、部分序列号报文PNSP
1、L1 CSNP:用于描述L1的LSDB中所有LSP摘要信息,类似于OSPF的DD报文
2、L2 CSNP:用于描述L2的LSDB中所有LSP摘要信息,类似于OSPF的DD报文
3、L1 PSNP:用于对LSP请求或者确认的作用,类似于OSPF的LSR和LSACK。
4、L2 PSNP:用于对LSP请求或者确认的作用,类似于OSPF的LSR和LSACK
二、邻居建立
(1)、邻居的状态
- DOWN:接口一旦启用ISIS协议之后就是Down状态
- Init:收到了邻居的Hello报文发现了邻居,One-way
- Up:收到了邻居的Hello报文,并且在邻居的hello报文中发现了自己
(2)、ISIS邻居的建立条件
- 路由器级别一致
- 建立L1的邻居要求区域ID一致,L2则没有这个要求
- 互联接口地址在相同网段
- 互联接口地址网络类型一致
- system-ID不能冲突
- 如果存在认证,要求认证信息一致
- 接口的MTU(最大传输报文)一致
(3)、链路级别
华为设备中,默认启用了ISIS链路为L1/2的链路,通过命令:ISIS circuit-level
修改
1、当路由器为L2的路由器时,无论链路级别为多少,始终只会发送L2的Hello报文
2、当路由器为L1的路由器时,无论链路级别为多少,始终只会发送L1的Hello报文
3、当路由器为L1/2的路由器时,hello报文的发送与链路级别存在关系,发送的链路级别去交集处
(当一台级别为L1/2的路由器链路对端连接的是一台级别L1的路由器,那么此时就发送L1的报文。反之亦然)
ISIS中发送hello报文的发送时间间隔为10s一次,邻居的失效时间为30s一次
2.3.1-TLV报文
ISIS协议基于TLV实现报文的变化:
T:代表了属性的类型
L:代表长度
V:值,代表具体的属性
1、发送报文的时候只需携带需要的属性,不需要属性可以不携带。扩展性更强,如果协议需要支持新的属性,只需开发出新的TLV即可(如果未来这个ISIS网络中升级IPV6那么只需要开发一个属于ipv6的TLV报文)
2、相比OSPF来说,报文字段都是固定的,所以扩展性不如ISIS那么好。(OSPF如果需要升级ipv6,那么则需要基于OSPF开发OSPFv3)
- Padding报文:
一般用于填充MTU报文,当传输的MTU报文有空缺,则将多余的报文通过Padding填充进入,对端路由器接口收到这个报文后,用以确定MTU大小
2.3.2-LSP报文
LSP报文:
在使用ISIS路由协议之间的路由器进行通信时,ISIS协议采用的是ISO定义的协议数据单元(PDU)
LSP报文的两种类型:
1、实节点LSP:每个启用ISIS路由协议的路由器都会产生LSP,用于描述自身的链路状态信息
2、伪节点LSP:有DIS产生,用于描述MA网络上的邻居信息
ISIS中使用的PUD类型主要有:
- ISIS-Hello PUD(IIH PDU)
- 链路状态PDU(LSP)
- 完全序列号数据包(CSNP)
- 部分序列号数据包(PSNP)
IIH PDU类似于OSPF协议中的hello报文,负责形成路由器间的邻居关系,发现新的邻居,检测出是否有邻居退出
LSP类似于OSPF的==LSA,==用于描述自身路由器中所有的链路状态信息
CSNP包含了网络中每一个LSP的总结性信息,当路由器收到了一个CSNP时,它会将该CSNP与其链路状态数据库进行比较,如果该路由器丢失了一个在CSNP中存在的LSP时,它会发送一个组播PSNP,向网络中其它的路由器索要其需要的LSP
PSNP在点对点链路中用于确认接收的LSP,在点对点链路和广播链路中用于请求最新版本或者丢失的LSP
交互自身没有的LSP,使用新的LSP替换旧的LSP
如何确定一条唯一的LSP呢?
LSP-ID: 0000.0000.0001.00-00
1、system-id,产生次LSP路由器的系统ID
2、伪节点标识符,如果取值为00,代表LSP为实节点LSP;如果取值非00,则代表该LSP为伪节点
3、分片标识符,长度为一个字节,用于描述LSP的分片
- 查看AR1路由器的实节点LSP-ID
[AR1]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000020 0x78ad 1192 86 0/0/0
0000.0000.0001.01-00* 0x00000002 0xb5d4 1192 55 0/0/0
0000.0000.0002.00-00 0x0000001f 0xf5c8 1177 70 0/0/0
Total LSP(s): 3
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
-
查看这个伪节点的LSP-ID详细信息
可以看到这个伪节点的LSP-ID是没有路由信息
[AR1]display isis lsdb 0000.0000.0001.01-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.01-00* 0x00000002 0xb5d4 1099 55 0/0/0
SOURCE 0000.0000.0001.01
NLPID IPV4
NBR ID 0000.0000.0001.00 COST: 0
NBR ID 0000.0000.0002.00 COST: 0
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
-
查看实节点的LSP-ID
包含了路由信息和邻居信息
[AR1]display isis lsdb 0000.0000.0002.00-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.00-00 0x0000001f 0xf5c8 1000 70 0/0/0
SOURCE 0000.0000.0002.00
NLPID IPV4
AREA ADDR 49.0012
INTF ADDR 10.0.12.2
NBR ID 0000.0000.0001.01 COST: 10
IP-Internal 10.0.12.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
# NBR: 是邻居信息
[AR1]display isis lsdb 0000.0000.0001.00-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000020 0x78ad 949 86 0/0/0
SOURCE 0000.0000.0001.00
NLPID IPV4
AREA ADDR 49.0012
INTF ADDR 1.1.1.1
INTF ADDR 10.0.12.1
NBR ID 0000.0000.0001.01 COST: 10
IP-Internal 1.1.1.1 255.255.255.255 COST: 0
IP-Internal 10.0.12.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
如何确定一条LSP的新旧呢?
1、比较LSP的序列号
2、比较它的老化时间(holtime)
如果为0,则代表最新用于删除一条LSP,如果都不为0则选择更新的一个(即hlotime值更大)
3、比较校验和,越大越优。
- ISIS的更新机制:
1、触发更新:
2、周期更新:每个ISIS路由器每隔900s都会周期更新一次自身产生的LSP
-
ISIS LSP老化机制:
每个LSP产生的时候都有1200s的holdtime时间,随着时间递减,当LSP holdtime减为0的时候将会删除一条LSP
-
DIS报文:
1、周期发送CSNP
2、DIS的Hello时间为3s,失效时间为9s
链路状态信息的交互 :
-
P2P网络的CSNP报文只发送一次,邻居建立后立刻发送
-
MA网络CSNP报文只由DIS组播发送,时间默认为10s
-
查看在MA网络下修改ISIS链路类型为P2P发送的报文
-
拓扑图:
- AR1:
[AR1-GigabitEthernet0/0/0]display th
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 10.0.123.1 255.255.255.0
isis enable 1
isis circuit-type p2p
#
return
[AR1-isis-1]display this
[V200R003C00]
#
isis 1
is-level level-2
network-entity 49.0012.0000.0000.0001.00
network-entity 49.0000.0000.0001.00
#
return
# 查看LSP分片
[AR1]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000018 0x20e2 1168 88 0/0/0
0000.0000.0002.00-00 0x00000018 0x26d7 1172 68 0/0/0
0000.0000.0003.00-00 0x00000007 0x9c6d 839 68 0/0/0
0000.0000.0003.01-00 0x00000004 0xc3c0 1072 55 0/0/0
Total LSP(s): 4
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
- AR2:
[AR2-GigabitEthernet0/0/0]display this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 10.0.123.2 255.255.255.0
isis enable 1
isis circuit-type p2p
#
return
[AR2-isis-1]display this
[V200R003C00]
#
isis 1
is-level level-2
network-entity 49.0000.0000.0002.00
#
return
抓包查看LSP分片
ISIS的DIS支持抢占,而OSPF的DR不支持?
-
邻居状态角度:
1、OSPF DRother之间只有2-way的邻居关系,一旦DR支持被抢占,邻居状态将发送大幅度震荡
2、ISIS DIS和所有的路由器都是UP的邻居关系,DIS一旦被抢占,不会发送邻居关系的震荡
-
算法的角度:
1、OSPF DR产生2类LSA描述MA网络的拓扑和路由信息,如果DR支持被抢占,将为算法带来不稳定的影响
2、ISIS DIS产生伪节点描述MA网络的拓扑,如果DIS支持被抢占,将为算法带来不稳定的现象
三、SPF算法
(1)、实验1
- 拓扑图:
-
基础配置如拓扑图标示
1、AR1和AR2之间接口网络类型修改为P2P网络
2、全网建立level-2的邻居关系
3、环回口按照标准配置(AR1: Lo0:1.1.1.1/32)
-
查看ISIS的lsp-ID
下面的LSP-ID中带有*号的是AR1路由器自身产生的lsp-ID
-
[AR1]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000008 0xd281 510 84 0/0/0
0000.0000.0002.00-00 0x0000000b 0x180f 823 111 0/0/0
0000.0000.0002.01-00 0x00000004 0xe50f 823 66 0/0/0
0000.0000.0003.00-00 0x00000005 0x374f 879 84 0/0/0
0000.0000.0004.00-00 0x00000005 0x98e3 915 84 0/0/0
Total LSP(s): 5
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
- 接着查看AR1自身lsdb的详细信息
[AR1]display isis lsdb 0000.0000.0001.00-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000009 0xd082 1097 84 0/0/0
SOURCE 0000.0000.0001.00 // 源节点系统,用于标识产生该LSP的路由器
NLPID IPV4 // 协议支持,LSP中携带的为ipv4信息
AREA ADDR 49 // 产生这条LSP路由器的区域
INTF ADDR 1.1.1.1 // 产生该LSP路由器启用ISIS接口的IP地址
INTF ADDR 10.0.12.1
NBR ID 0000.0000.0002.00 COST: 10 /* 伪节点标识为00,代表连接了一个P2P的邻居,
到达邻居的cost为10 */
IP-Internal 1.1.1.1 255.255.255.255 COST: 0 /* 用于描述自身的直连,网络号、
掩码以及自身到达目的网络cost */
IP-Internal 10.0.12.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
- 查看AR2路由器的LSP-ID详细信息
[AR1]display isis lsdb 0000.0000.0002.00-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.00-00 0x0000000c 0x1610 672 111 0/0/0
SOURCE 0000.0000.0002.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 2.2.2.2
INTF ADDR 10.0.12.2
INTF ADDR 10.0.234.2
NBR ID 0000.0000.0001.00 COST: 10 /* 伪节点标识为00,代表连接了一个P2P的邻居,
到达邻居的cost为10 */
NBR ID 0000.0000.0002.01 COST: 10 /* 伪节点标识为非00,代表连接了一个伪节点,
system-id的取值为DIS系统ID
IP-Internal 2.2.2.2 255.255.255.255 COST: 0
IP-Internal 10.0.12.0 255.255.255.0 COST: 10 /* 用于描述自身直连的网络号、掩码、
自身到达目的的网络cost */
IP-Internal 10.0.234.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
- 查看AR2发送的虚链路的LSP-ID
[AR1]display isis lsdb 0000.0000.0002.01-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0002.01-00 0x00000006 0xe111 573 66 0/0/0
SOURCE 0000.0000.0002.01
NLPID IPV4
NBR ID 0000.0000.0002.00 COST: 0
NBR ID 0000.0000.0003.00 COST: 0
NBR ID 0000.0000.0004.00 COST: 0
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
SOURCE 0000.0000.0002.01 // 伪节点LSP,system-ID取值为DIS的系统ID
NLPID IPV4
NBR ID 0000.0000.0002.00 COST: 0
NBR ID 0000.0000.0003.00 COST: 0
NBR ID 0000.0000.0004.00 COST: 0
-
添加一条链路
并修改AR4的接口ISIS优先级
- AR4
[AR4]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 10.0.34.4 24
[AR4-GigabitEthernet0/0/1]isis enable
[AR4-GigabitEthernet0/0/1]isis dis-priority 127
# 查看ISIS邻居状态
[AR4]display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0000.0000.0002 GE0/0/0 0000.0000.0002.01 Up 8s L2 64
0000.0000.0003 GE0/0/0 0000.0000.0002.01 Up 22s L2 64
0000.0000.0003 GE0/0/1 0000.0000.0004.02 Up 30s L2 64
Total Peer(s): 3
- AR3
[AR3]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip address 10.0.34.3 24
[AR3-GigabitEthernet0/0/1]isis enable
- 查看伪节点LSP的详细信息
[AR1]display isis lsdb 0000.0000.0004.02-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0004.02-00 0x00000013 0xc3ad 1001 55 0/0/0
SOURCE 0000.0000.0004.02 // 伪节点标识为非0,代表伪节点LSP
NLPID IPV4
NBR ID 0000.0000.0004.00 COST: 0 // 用于描述伪节点上的邻居信息
NBR ID 0000.0000.0003.00 COST: 0
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
3.1.1-ISIS-OSPF邻居建立
邻居建立的关系 :
OSPF邻居建立,网段和掩码要求一致
在OSPF中,要求邻居之间的IP地址必须在同一子网中,这意味着ospf的邻居需要使用相同的子网掩码.
这是因为ospf需要基于IP地址进行邻居关系的建立和路由表的刷新,而如果邻居 使用不同的掩码,可能会导致ospf认为他们不在同一子网中,从而无法建立邻居关系
ISIS邻居建立,要求网段一致,不要求掩码一致
- ISIS中,邻居之间的IP地址只要在同一网络上即可建立邻居关系,不需要使用相同的子网掩码.这是因为ISIS不是基于IP地址,而是基于CLNS(Connectionless Network Service)地址来建立邻居关系和路由表的更新.
- ISIS中,邻居之间通过交换LSP(Link State PDU)来了解对方的拓扑信息,而LSP中包含了CLNS地址信息,因此ISIS不需要依赖IP地址进行邻居关系的建立
在ISIS网络中如何判断一个网段?
- 查看接收到的对方发送的报文,查看对方接口的IP地址,是否在本端收包接口的IP前缀范围内
(2)、实验2
- 拓扑图:
①.L1的路由器只维护L1的链路状态信息
②.L2的路由器只维护L2的链路状态信息
③.L1/2的路由器,既维护L1的链路状态信息,也维护L2的链路状态信息
-
查看AR5的lsdb和邻居关系
可以看到这里AR5只会维护L2邻居关系的数据库
[AR5]display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0004.0000.0004 GE0/0/0 0004.0000.0004.01 Up 7s L2 64
Total Peer(s): 1
[AR5]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0004.0000.0000.00-00 0x0000000c 0xfbf9 1043 95 0/0/0
0004.0000.0000.01-00 0x00000008 0x7105 1043 55 0/0/0
0004.0000.0004.00-00 0x00000003 0xc230 1127 95 0/0/0
0004.0000.0004.01-00 0x00000001 0xa3d1 1127 55 0/0/0
0004.0000.0004.02-00 0x00000001 0xfea5 1127 66 0/0/0
0005.0000.0000.00-00 0x0000000c 0x1884 983 68 0/0/0
0005.0000.0005.00-00* 0x00000005 0x5248 1115 68 0/0/0
0123.0000.0002.00-00 0x00000009 0x138d 1113 96 0/0/0
0123.0000.0003.00-00 0x00000007 0x3868 1112 96 0/0/0
Total LSP(s): 9
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
L2的路由器使用L2 LSP描述自身所有的链路状态,无论链路级别
L1的路由器使用L1 LSP描述自身所有的链路状态,无论链路级别
L1/2的路由器链路状态描述和链路级别有关,取交集处==(L1使用L1的LSP描述,L2使用L2的LSP描述)==
- 查看AR2路由器的ISIS 本地LSDB详细信息
[AR2]display isis lsdb local verbose
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0123.0000.0002.00-00* 0x00000012 0xbfd3 1157 95 0/0/0
SOURCE 0123.0000.0002.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 10.0.44.2
INTF ADDR 10.0.43.2
NBR ID 0123.0000.0003.01 COST: 10
NBR ID 0123.0000.0001.00 COST: 10
IP-Internal 10.0.44.0 255.255.255.0 COST: 10
IP-Internal 10.0.43.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0123.0000.0002.00-00* 0x00000014 0xfc98 1157 96 0/0/0
SOURCE 0123.0000.0002.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 10.0.44.2
INTF ADDR 10.0.43.2
NBR ID 0004.0000.0004.02 COST: 10
IP-Internal 10.0.44.0 255.255.255.0 COST: 10
IP-Internal 10.0.43.0 255.255.255.0 COST: 10
IP-Internal 10.0.42.0 255.255.255.0 COST: 20
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
3.2.1-骨干区域访问非骨干区域
默认情况下,级别L1/2的路由器会将L1的路由以"叶子"的形式放到自身产生的L2的LSP中
L2的路由器通过SPF算法进行计算后得出去往目的地(非骨干区域的路由)
针对OSPF来说,区域间路由计算使用的是链路状态计算和距离矢量计算
针对ISIS来说,ISIS的路由计算,是一个区域的链路状态计算
- AR5上查看AR2发出的lsdb并查看详细信息
[AR5]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0004.0000.0004.00-00 0x00000010 0xa83d 1197 95 0/0/0
0004.0000.0004.01-00 0x0000000e 0x89de 1197 55 0/0/0
0004.0000.0004.02-00 0x0000000e 0xe4b2 1197 66 0/0/0
0005.0000.0005.00-00* 0x00000012 0x3855 829 68 0/0/0
0123.0000.0002.00-00 0x00000019 0x832c 1159 136 0/0/0
0123.0000.0003.00-00 0x00000018 0xb8f1 1171 136 0/0/0
Total LSP(s): 6
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
[AR5]display isis lsdb 0123.0000.0002.00-00 verbose
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0123.0000.0002.00-00 0x00000019 0x832c 1140 136 0/0/0
SOURCE 0123.0000.0002.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 10.0.44.2
INTF ADDR 10.0.43.2
INTF ADDR 2.2.2.2
NBR ID 0004.0000.0004.02 COST: 10
IP-Internal 10.0.44.0 255.255.255.0 COST: 10
IP-Internal 10.0.43.0 255.255.255.0 COST: 10
IP-Internal 10.0.42.0 255.255.255.0 COST: 20
IP-Internal 1.1.1.1 255.255.255.255 COST: 10
IP-Internal 2.2.2.2 255.255.255.255 COST: 0
IP-Internal 3.3.3.3 255.255.255.255 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
通过查看AR2设备的L1类LSP可以看到这里没有1.1.1.1的路由信息
<AR3>display isis lsdb local verbose
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0123.0000.0003.00-00* 0x00000019 0x29b8 553 111 0/0/0
SOURCE 0123.0000.0003.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 10.0.44.3
INTF ADDR 10.0.42.3
INTF ADDR 3.3.3.3
NBR ID 0123.0000.0003.01 COST: 10
NBR ID 0123.0000.0001.00 COST: 10
IP-Internal 10.0.44.0 255.255.255.0 COST: 10
IP-Internal 10.0.42.0 255.255.255.0 COST: 10
IP-Internal 3.3.3.3 255.255.255.255 COST: 0
再看L2的LSP则发现了1.1.1.1的路由条目
-
因为AR3作为一台L1/L2的路由器,将非骨干区域的L1-LSP放到L2-LSP中,
骨干区域根据这条L2-LSP构建一个SPF树,形成了这个路由
所以我们在L2的信息中发现了去往1.1.1.1的路由条目
<AR3>display isis lsdb local verbose
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0123.0000.0003.00-00* 0x00000018 0xb8f1 553 136 0/0/0
SOURCE 0123.0000.0003.00
NLPID IPV4
AREA ADDR 49
INTF ADDR 10.0.44.3
INTF ADDR 10.0.42.3
INTF ADDR 3.3.3.3
NBR ID 0004.0000.0004.02 COST: 10
IP-Internal 10.0.44.0 255.255.255.0 COST: 10
IP-Internal 10.0.42.0 255.255.255.0 COST: 10
IP-Internal 10.0.43.0 255.255.255.0 COST: 20
IP-Internal 1.1.1.1 255.255.255.255 COST: 10
IP-Internal 2.2.2.2 255.255.255.255 COST: 10
IP-Internal 3.3.3.3 255.255.255.255 COST: 0
3.2.2-非骨干区域访问骨干区域
非骨干区域的路由器通过缺省路由访问骨干区域
[AR1]display ip routing-table 5.5.5.5
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 ISIS-L1 15 10 D 10.0.42.3 Serial4/0/1
ISIS-L1 15 10 D 10.0.43.2 Serial4/0/0
3.2.3-非骨干区域的缺省路由如何产生的
由L1/2的路由器通过产生的L1-LSP中,将ATT-bit置位为1,此时只建立L1级别邻居的路由器会根据ATT-bit为1的LSP,自身产生一条指向该路由器的缺省路由
ATT(骨干区域连接符):
用于标明L1/2的路由器与骨干区域连接着,用于指导非骨干区域
[AR2]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00 0x00000007 0x1e34 461 113 0/0/0
0000.0000.0002.00-00* 0x00000009 0x8058 479 97 1/0/0 //置1
0000.0000.0003.00-00 0x00000009 0x7067 550 97 1/0/0 //置1
0000.0000.0003.01-00 0x00000003 0xc5bf 550 55 0/0/0
ATT BTT置1的条件:
L1/2的路由器,至少存在一个不在相同区域的L2邻居,ATT-bit才会置1
ATT-bit只在L1的LSP中才会置1
如果在骨干区域没有L2的邻居,ATT-id将不会置位为1,这个ATT-bit将不具备指导报文访问骨干区域
-
我们将AR2的g0/0/0这根链路shutdown
AR2此时失去和其它区域L2级别的邻居关系
这时我们可以看到AR2的lsp的ATT位就不是1了
[AR2]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00 0x00000008 0x1c35 1182 113 0/0/0
0000.0000.0002.00-00* 0x0000000b 0xfd85 1191 70 0/0/0 //非1
0000.0000.0003.00-00 0x0000000a 0x6e68 1183 97 1/0/0
0000.0000.0003.01-00 0x00000004 0xc3c0 1183 55 0/0/0
3.2.4-缺省路由的特点
特点:
- L1的路由器可以通过ATT置1发现本区域的L1/2路由器的存在
- 缺省路由是L1的路由器自己产生的,而不是L1/2的路由器通告给L1的路由
- 缺省路由的下一跳地址,是自身去往该LSP产生者最短路径的下一跳
- 缺省路由的cost值,是自身去往该LSP产生 着的最短路径树的cost
- ATT-bit控制命令:
# 配置ISIS路由器总是将ATT-bit置1,仅在级别L1/2的路由器上生效
[AR2-isis-1]attached-bit advertise always
# 配置ISIS路由器总是将ATT-bit置0,仅在级别L1/2的路由器上生效
[AR2-isis-1]attached-bit advertise never
# 配置ISIS路由器不计算ATT bit,仅在L1的路由器上生效
[AR2-isis-1]attached-bit avoid-learning
四、小结
-
使用缺省路由访问骨干区域有什么优缺点?
缺点:
1、可能带来次优路径
2、可能存在路由黑洞
优点:
1、节省当前设备资源,可以不用维护骨干区域的路由明细
2、当骨干区域的设备出现震荡,不会影响到非骨干区域
-
如何解决次优路径?
1、设置缺省路由的cost,同时修改链路的开销实现
2、针对不同的下一跳设置权值
3、在L1/2的路由器上将L2的路由泄漏到L1的LSP中(保证,非骨干区域的路由器可以通过L1/2的路由器学习到骨干区域的路由,从而实现路径闭环)
为什么次优路径的出现会导致路由环路?
当路由表中存在多条等价路径的时候,如果其中一个条路径被选为主路径,另外一条选为备用路径,当主路径不可达的时候,路由器则选择备份路径,这个时候如果备份路径比主路径的长度更短,可能导致路由环路的出现
举个例子:
假设在一个网络中,有两个路由器 A 和 B,A 到 B 有两条路径,一条长度为 10,另一条长度为 5。在路由表中,长度为 5 的路径是最优路径,长度为 10 的路径是次优路径。当长度为 5 的路径不可达时,路由器将会转发数据包到长度为 10 的路径。因此,次优路径是一条备用路径,当最优路径不可达时,可以作为备用路径使用。
(这种情况下一般不会导致出现环路,因为因为长度为10的链路本身就是一条合理的次优路径)
-
什么情况下的次优路径会导致路由环路呢?
-
假设在一个网络中,有两个路由器 A 和 B,A 到 B 有两条路径,一条长度为 10,另一条长度为 5,路由表选择了长度为 10 的路径作为主路径,长度为 5 的路径作为备份路径。
-
当主路径不可达时,路由器切换到备份路径,这时就会出现路由环路。
-
如果备份路径也是一个次优路径,那么路由器又会切换回主路径,从而又形成一个环路,这就是路由环路的产生。
-
因为这两条路径均为次优路径,在去往目的地的数据包不可达的时候,路由器首先会选择备份的路径,如果备份的路径也是次优路径,那么根据路由器的最优选路原则那么则会将原本去往目的网络不可达的最优路径转发数据,从而导致路由环路
(1)、实验:
- 拓扑图:
修改AR1路由器的接口cost值,使得AR1访问AR5的lo0接口的数据流量走s4/0/0接口
- AR1:
[AR1]display isis lsdb local verbose
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000005 0x262e 1192 113 0/0/0
SOURCE 0000.0000.0001.00
NLPID IPV4
AREA ADDR 49.0123
INTF ADDR 1.1.1.1
INTF ADDR 10.0.43.1
INTF ADDR 10.0.42.1
NBR ID 0000.0000.0003.00 COST: 10
NBR ID 0000.0000.0002.00 COST: 10
IP-Internal 1.1.1.1 255.255.255.255 COST: 0
IP-Internal 10.0.43.0 255.255.255.0 COST: 10 // 查看接口cost值
IP-Internal 10.0.42.0 255.255.255.0 COST: 10
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
# 测试访问路径
[AR1]tracert 5.5.5.5
traceroute to 5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C t
o break
1 10.0.42.3 40 ms 20 ms 20 ms
2 10.0.44.4 30 ms 50 ms 40 ms
3 10.0.45.5 50 ms 50 ms 30 ms
# 修改接口的cost值
[AR1]int s4/0/0
[AR1-Serial4/0/0]isis cost 10
[AR1-Serial4/0/0]quit
[AR1]int s4/0/1
[AR1-Serial4/0/1]isis cost 20
[AR1-Serial4/0/1]quit
# 验证:
[AR1]display isis lsdb local verbose
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000006 0xab93 1160 113 0/0/0
SOURCE 0000.0000.0001.00
NLPID IPV4
AREA ADDR 49.0123
INTF ADDR 1.1.1.1
INTF ADDR 10.0.43.1
INTF ADDR 10.0.42.1
NBR ID 0000.0000.0003.00 COST: 20
NBR ID 0000.0000.0002.00 COST: 10
IP-Internal 1.1.1.1 255.255.255.255 COST: 0
IP-Internal 10.0.43.0 255.255.255.0 COST: 10
IP-Internal 10.0.42.0 255.255.255.0 COST: 20
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
# 路径追踪:
[AR1]tracert 5.5.5.5
traceroute to 5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C t
o break
1 10.0.43.2 30 ms 10 ms 1 ms
2 10.0.44.4 30 ms 50 ms 40 ms
3 10.0.45.5 40 ms 50 ms 50 ms
4.1.2-ISIS防环机制
ISIS区域间的防环机制:
1、L1/2路由忽略对ATT-bit的计算
2、无论cost值,L1的路由总是优先于L2的路由(防止从L1的路由传递到L2的路由后再传回来)
3、无论任何cost值,L2的路由总是优先于==L1*==的路由
L1>L2>L1* (L1/2的路由器的直连路由,被泄露到L1的LSP,不会将DU bit置1)