实验一:配置和调试 isis:
实验目的:
1. 在所有路由器上配置 ISIS,启用 clns
2. 所有的路由器能够 ping 到其他路由器,Router_C 可以和其他路由器交换路由信息。
配置步骤:
步骤1:确定路由器所在的区域和启动IS-IS协议的接口。
步骤2:使用router isis 命令来启动一个IS-IS进程。
步骤3:使用net 命令来配置net地址。
步骤4:使用命令ip router isis 在相应的接口上启动集成IS-IS。这个命令不仅在转发接口上必须增加,而且在一个和末梢网络相连的接口也必须配置,这里的末梢网络是指需要IS-IS协议来通告的IP地址。
首先我们对R1进行配置:
clns routing 启动CLNS协议的路由选择功能
interface Serial1/0
clock rate 64000
clns router isis 在接口上启动ISIS
!
interface Serial1/1
clns router isis
clock rate 64000
router isis 启动ISIS进程
net 49.0001.1111.1111.1111.00 配置net地址
log-adjacency-changes all 配置log信息
同样的,配置 R2
clns routing 启动CLNS协议的路由选择功能
interface Serial1/0
clock rate 64000
clns router isis 在接口上启动ISIS
!
router isis 启动ISIS进程
net 49.0001.2222.2222.2222.00 配置net地址
log-adjacency-changes all 配置log信息
再配置 R3
clns routing 启动CLNS协议的路由选择功能
interface Serial1/0
clock rate 64000
clns router isis 在接口上启动ISIS
!
router isis 启动ISIS进程
net 49.0001.2222.2222.2222.00 配置net地址
log-adjacency-changes all 配置log信息
好,配置完了,我们来检查一下
先检查路由器 R1 的配置
用命令show clns 可以显示clns信息
R1#show clns
Global CLNS Information:
2 Interfaces Enabled for CLNS 路由器2个接口启用了CLNS
NET: 49.0001.1111.1111.1111.00 路由器的net地址,最多可配置254个
Configuration Timer: 60, Default Holding Timer: 300, Packet Lifetime 64 定时器
ERPDU's requested on locally generated packets
Intermediate system operation enabled (CLNS forwarding allowed)
IS-IS level-1-2 Router: 默认是level 1-2
Routing for Area: 49.0001
上述命令的含义:
Interface Enabled for CLNS |
路由器启用 clns 接口的数量 |
NET: 49.0001.1111.1111.1111.00 |
路 由 器 的 net 地 址 , 可 以 用 命 令 max-area-addresses 最多配置 254 个 |
Configuration Timer: 60
|
Es - IS hello 包 的 定 时 器 用 命 令 clnsconfiguration-time 配置,缺省 60. |
Default Holding Timer: 300 |
ISH 包的保持时间, 用命令 clns holding-time 配置 |
Packet Lifetime 64 |
本地产生的包的生存时间, 缺省 64 , 用命令 clnspacket-lifetime 设置.缺省 64 |
Error Report Protocol Data Units (ERPDUs) Requested on Locally Generated Packets |
表示如果路由器检测到错误的 PDU, 就会产生一 个错误的 ICMP 信息, 命令 clns want-erpdu 配 置. 缺省开启此功能 |
IS Operation Enabled |
表示允许转发 |
IS-IS Level-1-2 Router |
路由器的类型,用命令 is-type 配置. |
Routing for Area: 49.0001 |
路由器的区域 |
R1#show clns route查看路由
Codes: C - connected, S - static, d - DecnetIV
I - ISO-IGRP, i - IS-IS, e - ES-IS
B - BGP, b - eBGP-neighbor
C 49.0001.1111.1111.1111.00 [1/0], Local IS-IS NET
C 49.0001 [2/0], Local IS-IS Area
i 49.0003 [110/10]
via R3, Serial1/1
R1#show clns protocol
IS-IS Router: <Null Tag>
System Id: 1111.1111.1111.00 IS-Type: level-1-2
Manual area address(es):
49.0001
Routing for area address(es):
49.0001
Interfaces supported by IS-IS:
Serial1/1 - OSI
Serial1/0 - OSI
Redistribute:
static (on by default)
Distance for L2 CLNS routes: 110
RRR level: none
Generate narrow metrics: level-1-2
Accept narrow metrics: level-1-2
Generate wide metrics: none
Accept wide metrics: none
IS-IS Router: <Null Tag> |
ISIS 启用 |
System Id: 1111.1111.1111.00 |
Router 系统 ID |
IS-Type: level-1-2 |
路由器的类型 |
Manual Area Address(Es): 49.0001 |
区域 ID |
Routing for Area Address(Es): 49.0001 |
区域 ID |
Interfaces Supported by IS-IS: Ethernet 0- OSI |
启用 isis 的接口 |
Redistributing: Static |
重分布静态路由 |
Distance: 110 |
CLNS 默认管理距离值,注意不是 isis 的距离 |
R1#sh isis database
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x00000007 0x7B4F 622 1/0/0
R2.00-00 0x00000008 0x84DD 1139 1/0/0
IS-IS Level-2 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x00000008 0xD824 1058 0/0/0
R2.00-00 0x00000007 0x5A6C 970 0/0/0
R3.00-00 0x00000006 0x421C 653 0/0/0
我们看看路由器 A 执行的结果,先看看这条
1111.1111.1111.01-00* 0x00000016 0x9512 1078 0/0/0
这行表示,路由器 A 是伪节点
我们看看伪节点的 LSPID 表示方法
01 是伪节点 ID 号,00 表示 LSP 分片号
如果一个伪节点号码为非零就表示是一个伪节点生成的 lsp,路由器将分别为 level 1 和
level 2 分别建立 2 个伪节点 lsp。
下面看看输出的各项含义:
*I |
表示是路由器本身产生的 lsp |
LSP Seq Num PDU |
数据包的新旧程度,来决定是否接收其他路由的 LSP LSP Checksum 校验和,确认是否是正确的 lsp |
LSP Holdtime |
PDU 数据包的生存时间, 默认是 1200 秒, 注意 isis 是从 1200 倒数到 0, 用命令 max-lsp-lifetime and lsp-refresh-interval 来配置。 |
ATT (Attach Bit) |
默认情况下 Level 1/Level 2 路由器不把 level 2 路由注入到 level1,isis 默认是属于 stub 网络,level 1/level 2 路由器可以向 level 1 区域广播一条缺省路由,如果 Att 为 1 就表示可以作为 level 1 区域的出口。 |
P (Partition Bit) |
分区修复,cisco 不支持。 |
OL (Link-State Overload Bit) |
超载位,路由器接收到有超载位的lsp 就不会用这个路由器来到达其他 网络,可是,仍然可以到达他的直连网段。用命令 set-overload-bit 设置. |
R1#show clns neighbors
System Id Interface SNPA State Holdtime Type Protocol
R2 Se1/0 *HDLC* Up 29 L1L2 IS-IS
R3 Se1/1 *HDLC* Up 25 L2 IS-IS
检查路由器 A 的 LSDB
Router_A#show isis data
IS-IS Level-1 Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
1111.1111.1111.00-00* 0x000000AB 0xF95B 1154 1/0/0
1111.1111.1111.01-00* 0x00000016 0x9512 1078 0/0/0
2222.2222.2222.00-00 0x000000AD 0xF590 991 1/0/0
IS-IS Level-2 Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
1111.1111.1111.00-00* 0x0000009F 0x86D7 854 0/0/0
1111.1111.1111.01-00* 0x00000019 0x1F0E 686 0/0/0
2222.2222.2222.00-00 0x000000A2 0xE446 908 0/0/0
3333.3333.3333.00-00 0x00000092 0x9C14 909 0/0/0
路由器 A 有 2 张 lsdb, 因为他是 level 1-2, 和路由器 B 建立层 1 和层 2 连接, 所以有 2 张。
在层 1 的数据库中有路由器 A 和路由器 B 的 LSP,在层 2 里,有 3 个路由器的 lsp
再检查一下 clns 协议信息:
Router_A#show clns proto
IS-IS Router: <Null Tag>
System Id: 1111.1111.1111.00 IS-Type: level-1-2
Manual area address(es):
49.1234
Routing for area address(Es):
49.1234
Interfaces supported by IS-IS:
Ethernet0 – OSI 启用 clns 的接口
Redistributing:
static
Distance: 110 默认 clns 的管理距离是 110,注意不是 isis 的管理距离。
在看看路由器 A 的邻居
Router_A#show clns neighbors
System Id SNPA Interface State Holdtime Type Protocol
2222.2222.2222 0000.0c0a.4fac Et0 Up 22 L1L2 IS-IS
可以看到路由器 B 的邻接状态为 up
在看看路由器 A 的 clns 路由表
Router_A#show clns route
CLNS Prefix Routing Table
49.1234.1111.1111.1111.00, Local NET Entry
49.5678 [110/20]
via 2222.2222.2222, IS-IS, Up, Ethernet0
49.1234 [110/0]
via 1111.1111.1111, IS-IS, Up
上面表示通过 A 可以到打 49.1234 49.5678 49.1234 以及下一跳,
好了,我们从 A 上 ping 一下 B 和 C
Router_A#ping clns 49.1234.2222.2222.2222.00
Type escape sequence to abort.
Sending 5, 100-byte CLNS Echos with timeout 2 seconds
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms
Router_A#ping clns 49.5678.3333.3333.3333.00
Type escape sequence to abort.
Sending 5, 100-byte CLNS Echos with timeout 2 seconds
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/36/40ms
好了,没问题,同样的方法在 B 和 C 上检查,互相 ping 一下,应该都没问题。
Net 地址很麻烦,我们来把他做映射,以便可以通过主机名来 ping
Router_A#config t
Router_A(config)#clns host Router_A 49.1234.1111.1111.1111.00
Router_A(config)#clns host Router_B 49.1234.2222.2222.2222.00
Router_A(config)#clns host Router_C 49.5678.3333.3333.3333.00
同样的方法在B 和 C 上设置。
12.0 以后只在一台路由器上配置就可以了,其他路由器可以自动学到,用show isis hostname
看
我们在 C 的接口上配置电路类型为 level 1,看看邻接有什么变化
Router_C#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router_C(config)#int s 0
Router_C(config)#isis circuit-type level-1
Router_C#show log
CLNS-Adj: Deleting adjacency 2222.2222.2222 (Serial0)
Router_C#
邻接关系解除因为C和B的区域地址不同只能建立层 2 连接,接口也必须能发送层2 报文
在 B 上查看:
Router_B#show clns nei
System Id SNPA Interface State Holdtime Type Protocol
Router_A 000.0c13.d46b Et0 Up 7 L1L2 IS-IS
Router_C *HDLC* Se0 Up 254 L2 ES-IS
和 C 已经是 ES 邻接了,在路由器 C 上还可以 ping 通 B,因为还可以形成 Es 邻接,但不能ping 通 A 了。
Router_C#ping clns Router_B
Type escape sequence to abort.
Sending 5, 100-byte CLNS Echos with timeout 2 seconds
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/48/52ms
Router_C#ping clns Router_A
Type escape sequence to abort.
Sending 5, 100-byte CLNS Echos with timeout 2 seconds
CLNS: cannot send ECHO.
CLNS: cannot send ECHO.
CLNS: cannot send ECHO.
CLNS: cannot send ECHO.
CLNS: cannot send ECHO.
Success rate is 0 percent (0/5)
Ping A 不通
看看 A 的 clns 路由表:
uter_A#show clns route
CLNS Prefix Routing Table
49.1234.1111.1111.1111.00, Local NET Entry
49.1234 [110/0]
via Router_A, IS-IS, Up
已经没有 49.5678 区域的路由了
将路由器 C 接口类型改为isis circuit-type level-1-2
问题解决。