本章思科CCNA考试内容包括:
执行与操作:
·管理系统镜像文件和设备配置文件
故障检测:
·利用OSI模型来进行系统的网络故障检测
·进行LAN和VLAN的故障检测
·检测IP地址和主机配置故障
·检测运行中网络的一个设备故障
在本章我们学习怎样管理思科路由器,在思科设备中IOS文件和配置文件所在的位置,并要理解这些文件是怎样读取的和如何工作的。然后我们学习管理路由器的下列内容:
·备份和储存思科IOS
·备份和储存思科配置文件
·通过CDP和Telnet来获取邻居设备的信息
·解析名称
·使用ping和traceroute命令来测试网络连通性
The Internal Components of a Cisco Router
为了配置和检测思科互连网络,你需要知道思科路由器的一些主要概念并知道它们是有什么作用的。表9.1描述了这些概念:
The Router Boot Sequence
当一个路由器启动的时候,它执行一系列步骤:叫做启动顺序(boot sequence),来测试硬件和装载必要的软件。启动顺序如下:
1.路由器执行POST。POST测试硬件来确定设备是否运行正常。例如POST会检查路由器的所有接口。POST程序存储并在ROM中运行。
2.引导程序(bootstrap)寻找并装载思科IOS软件。bootstrap是存储在ROM里的一个程序。bootstrap负责寻找IOS软件的位置,然后装载文件。默认情况下,所有思科的路由器都是从FLASH中装载IOS软件。
3.IOS软件寻找存储在NVRAM里的一个有效的配置。这个配置文件叫做startup-config,只有当管理员复制running-config文件到NVRAM里才会有startup-config文件。
4.如果NVRAM里有startup-config配置文件,那么路由器将装载并运行这个文件然后路由器开始运转。如果NVRAM里没有startup-config文件,那么路由器将进入安装模式(setup-mode)。
Managing Configuration Registers
所有的思科路由器的NVRAM里都有一个16位的注册字段,默认情况下,configuration register设置成在FLASH存储器里装载IOS,并寻找并装载NVRAM里的配置startup-config文件。下面我们将介绍configuration register的设置,并学习使用这个设置来进行路由器的密码恢复。
Understanding the Configuration Register Bits
这个16位的configuration register字段从15到0,从左到右。默认为0x2102。这意味着第13位,第8位,和第1位的二进制数值是1。如表9.2所示:
在字段前加0x的意思是代表十六进制的数值。
表9.3列出了设置位所代表的意思:
要注意的是第6位能够忽略NVRAM的内容。这个位通常都用来做密码恢复(Recovering Passwords)。后面我们再进行介绍。
启动字段包含在configuration register的0--3位。用来控制路由器引导顺序:
Checking the Current Configuration Register Value
你能够使用show version命令来显示当前的configuration register数值:
Router#sh version
Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.1(8)T3,
RELEASE SOFTWARE (fc1)
[output cut]
Configuration register is 0x2102
命令最后显示的就是configuration register的信息。在这里显示的是0x2102---默认的设置。configuration register 设置成0x2102告诉路由器的启动顺序要从NVRAM里寻找配置文件。
还要注意的是show version命令也提供了IOS的版本信息。在上面的例子里IOS的版本是12.1(8)T3。
QUOTE:
show versiom命令能够显示路由器的系统硬件配置信息,软件版本,配置文件和启动镜像的名字等。
Changing the Configuration Register
你能够通过改变configuration register的数值来修改路由器的启动和运行的顺序。下面是一些改变configuration register数值的可能的原因:
·强制系统进入ROM monitor模式
·来选择一个启动来源和默认的启动文件名
·允许或禁止Break功能
·控制广播地址
·设置控制中端的波特率(baud rate)
·从ROM里装载运行软件
·允许从TFTP服务器启动
在你改变configuration register值的时候要先确定当前的configuration register值,使用show version命令来查看。
我们使用config-register命令来改变configuration register的值,下面的例子告诉路由器从ROM monitor mode下启动一个small IOS:
Router(config)#
config-register 0x101
Router(config)#^Z
Router#sh ver
[output cut]
Configuration register is 0x2102 (will be 0x0101 at next reload)
configuration register的任何改变,都要在路由器重新启动后才能生效。
路由器重启后0x0101将从ROM里装载IOS。0x0101和0x101是一样的。
Recovering Passwords
当你忘记了密码而登陆不了路由器时,你可以通过改变configuration register的数值来帮助你恢复密码。我之前说过,可以用configuration register的第6位
来告诉路由器是否使用NVRAM里的配置。
默认的configuration register数值是0x2102,这意味着第6位的二进制数值是0。在0x2102下路由器会从NVRAM里装载startup-config配置文件。为了恢复密码,你需要把第6位设置成1,这样可以让路由器忽略NVRAM的内容,第6位设成1后,configuration register的数值是0x2142。
下面是恢复密码的主要步骤:
1.启动路由器时按下break键来中断启动顺序。
2.改变configuration register的值为0x2142。
3.重启路由器。
4.进入特权模式。
5.复制startup-config文件到running-config。
6.改掉原来的密码。
7.恢复configuration register到默认数值。
8.保存路由器配置。
9.重启路由器。
下面我们具体说一下每个步骤的具体内容,并学习2600和2500系列路由器的命令。
Interrupting the Router Boot Sequence
首先,我们在路由器第一次启动的时候在超级终端里按下Ctrl+Break键,这样就可以中断路由器的启动过程:
System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
Copyright (c) 1999 by cisco Systems, Inc.
TAC:Home:SW:IOS:Specials for info
PC = 0xfff0a530, Vector = 0x500, SP = 0x680127b0
C2600 platform with 32768 Kbytes of main memory
PC = 0xfff0a530, Vector = 0x500, SP = 0x80004374
monitor: command "boot" aborted due to user interrupt
rommon 1 >
Changing the Configuration Register
我们前面用的是config-register命令来修改configuration register的值,
而在这里2500系列路由器和2600系列的路由器的命令有些不同:
2600用:
rommon 1 > confreg 0x2142
You must reset or power cycle for new config to take effect
2500用:
System Bootstrap, Version 11.0(10c), SOFTWARE
Copyright (c) 1986-1996 by cisco Systems
2500 processor with 14336 Kbytes of main memory
Abort at 0x1098FEC (PC)
>o
Configuration register = 0x2102 at last boot
Bit# Configuration register option settings:
15 Diagnostic mode disabled
14 IP broadcasts do not have network numbers
13 Boot default ROM software if network boot fails
12-11 Console speed is 9600 baud
10 IP broadcasts with ones
08 Break disabled
07 OEM disabled
06 Ignore configuration disabled
03-00 Boot file is cisco2-2500 (or 'boot system' command)
>o/r 0x2142
注意o命令显示的最后一个03-00,这告诉了路由器IOS文件在哪里,默认路由器使用FLASH存储器里的第一个文件,所以如果你想启动不同名字的文件的话,你可以改变configuration register或者使用boot system ios_name命令。如果你想从一个TFTP服务器来读取IOS文件的话那么在全局模式下使用boot system tftp ios_name ip_address命令。
Reloading the Router and Entering Privileged Mode
想重启路由器的话,2600使用reset命令,2500使用I命令。然后路由器会重启并问你是否使用安装模式(这是因为没有startup-config文件)。我们回答NO不进入安装模式,回车进入用户模式,然后输入enable命令进入特权模式。
Viewing and Changing the Configuration
现在你不需要输入密码来进入特权模式了,现在把startup-config配置复制到running-config文件里:copy startup-config running-config,或者使用缩写 copy start run。现在配置已经在RAM里运行了,并且你已经在特权模式,这意味着你可以查看或者改变配置,但你不能看到enable secret密码,因为这个密码是加密了的,但你可以改变:
config t
enable secret bogy
Resetting the Configuration Register and Reloading the Router
当你改完密码后,要记得把configuration register恢复原状,使用默认的0x2102:
config t
config-register 0x2102
最后,记得保存新的配置,用copy running-config startup-config命令。并重启路由器,用reload命令。
注意:当你保存了你的配置并重启路由器后进入了安装模式,那么configuration register可能没有配置正确。
Backing Up and Restoring the Cisco IOS
在你更新或者备份IOS的时候,你需要把IOS文件复制到一个TFTP服务器。
默认情况下IOS文件都是保存在FLASH存储器里的。下面我们学习怎样检查FLASH存储器容量,怎样从FLASH里复制IOS到TFTP服务器,以及怎么从TFTP服务器复制一个IOS文件到路由器的FLASH存储器里。
在你备份IOS到一个TFTP服务器前,你需要做以下三件事情:
·确定你能够访问该服务器。
·保证服务器上有足够的空间来存放IOS文件。
·确认文件名和路径。
如果你有一台笔记本电脑,并通过Ethernet接口直接连到路由器上,当你想从路由器上复制文件或者是复制文件到路由器上前,你需要确认以下内容:
·管理员的电脑上必须运行TFTP服务器软件。
·在路由器和电脑之间的连接要使用双绞线。
·电脑必须要和路由器的接口在同一个子网里。
·使用copy flash tftp命令从路由器FLASH复制文件时必须提供电脑的ip地址。
·如果是从电脑复制文件到路由器FLASH,你需要确认FLASH是否有足够的空间容纳复制的文件。
Verifying Flash Memory
当你尝试用一个新的IOS文件更新路由器上的IOS时,你最好先确认你路由器的FLASH是否有足够的空间容纳新的IOS文件。我们使用show flash命令来检查FLASH的容量和已经使用了的空间:
Router#sh flash
System flash directory:
File Length Name/status
1 8121000 c2500-js-l.112-18.bin
[8121064 bytes used, 8656152 available, 16777216 total]
16384K bytes of processor board System flash (Read ONLY)
Router#
现在可以知道路由器的FLASH存储器是16M(16,777,216 total),并且IOS已经用了8M(8,121,064 bytes used)。
这个例子里的IOS文件名是c2500-js-l.11.2-18.bin。这个文件名中的内容包含了一些信息:
·c2500是设备平台。
·j表示这个IOS是企业版
·s表示这个IOS版本有额外的能力(加强版?)
·l表示如果需要的话可以从FLASH存储器移动,并且是没有压缩过的。
·11.2-18是修订号码。
·.bin表示IOS是一个二进制的文件。
上面路由器的输出的最后一行信息显示FLASH大小为16MB,所以如果你需要使用一个新的10M大小的IOS,你就可以知道FLASH有足够的空间容纳新文件了。
你可以从IOS名字上面知道另外一些特性,包括能力,硬件平台,和运行位置以及压缩状态:
·f表示在FLASH中运行
·m表示在RAM中运行
·r表示在ROM中运行
·l表示这个文件可以重新定位
·z表示文件的压缩格式是zip
·x表示文件的压缩格式是mzip
Backing Up the Cisco IOS
备份IOS到一个TFTP服务器,我们使用copy flash tftp命令。这个命令需要你输入源文件名和TFTP服务器的ip地址。
保证顺利完成备份任务的关键是需要一个好的,稳定的线路连接到TFTP服务器上。我们可以在路由器上通过ping TFTP服务器来确认:
Router#ping 192.168.0.120
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.120, timeout
is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max
= 4/4/8 ms
通过ping来确认TFTP服务器正常工作后,用copy flash tftp命令来复制IOS文件到TFTP服务器上:
Router#copy flash tftp
System flash directory:
File Length Name/status
1 8121000 c2500-js-l.112-18.bin
[8121064 bytes used, 8656152 available, 16777216 total]
Address or name of remote host [255.255.255.255]?
192.168.0.120
Source file name?c2500-js-l.112-18.bin
Destination file name [c2500-js-l.112-18.bin]?[Enter]
Verifying checksum for 'c2500-js-l.112-18.bin')file #1)
...OK
Copy '/c2500-js-l.112-18' from Flash to server
as '/c2500-js-l.112-18'? [yes/no]y
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!! [output cut]
Upload to server done
Flash copy took 00:02:30 [hh:mm:ss]
Router#
你可以看到当你输入了命令之后会显示FLASH里的文件名。这是一个很有用的特性。copy flash tftp命令不会提示你把文件放到哪里,TFTP只是一个“grab it and place it”的程序,所以你必须先指定一个默认的TFTP服务器上的目录,否则TFTP是不会工作的。
Restoring or Upgrading the Cisco Router IOS
当你需要恢复一个IOS文件到FLASH里以代替损坏的原始IOS文件我们可以使用copy tftp flash命令从TFTP服务器上下载一个文件到路由器的FLASH里。这个命令需要输入TFTP服务器的ip地址和你希望下载的文件名字。不过在你开始下载之前,要确定TFTP服务器的默认目录里的文件是否是你希望放到FLASH里的。如果TFTP服务器的默认目录里没有这个文件,它是不会提示你的。
还有要注意的是当从TFTP服务器里复制一个IOS文件到路由器FLASH后,路由器是需要重新启动的,所以建议你不要在上班工作时间里进行这样的工作。
输入copy tftp flash后,路由器会提示你需要重启,并运行一个在ROM里的IOS来进行操作:
Router#copy tftp flash
**** NOTICE ****
Flash load helper v1.0
This process will accept the copy options and then
terminate the current system image to use the ROM based
image for the copy. Routing functionality will not be
available during that time. If you are logged in via
telnet, this connection will terminate. Users with
console access can see the results of the copy operation.
---- ******** ----
Proceed? [confirm][Enter]
System flash directory:
File Length Name/status
1 8121000 /c2500-js-l.112-18
[8121064 bytes used, 8656152 available, 16777216 total]
Address or name of remote host [192.168.0.120]?[Enter]
Source file name?c2500-js56i-l.120-9.bin
Destination file name [c2500-js56i-l.120-9.bin]?[Enter]
Accessing file 'c2500-js56i-l.120-9.bin' on 192.168.0.120
...
Loading c2500-js56i-l.120-9.bin from 192.168.0.120
(via Ethernet0): ! [OK]
注意:如果你没有足够的FLASH空间来存储两个副本或者如果FLASH存储器是新的,里面没有写入过文件,路由器在写入新文件之前将询问是否删除FLASH存储器里面的内容。
你会被路由器提示三次来确认你是否真的需要进行删除FLASH存储器里的内容。并且如果你没有使用copy run start命令,那么你会被提示使用,因为路由器需要重启:
Erase flash device before writing? [confirm][Enter]
Flash contains files. Are you sure you want to erase?
[confirm][Enter]
System configuration has been modified. Save? [yes/no]: y
Building configuration...
[OK]
Copy 'c2500-js56i-l.120-9.bin' from server
as 'c2500-js56i-l.120-9.bin' into Flash WITH erase?
[yes/no] y
当你确认了三次后就会开始删除FLASH存储器里面的内容,路由器必须重启并从ROM里装载一个small IOS。完成这些后,FLASH存储器的旧内容已经清除掉,而从TFTP服务器下载的文件会被复制到FLASH存储器里。
%SYS-5-RELOAD: Reload requested
%FLH: c2500-js56i-l.120-9.bin from 192.168.0.120 to flash
...
System flash directory:
File Length Name/status
1 8121000 /c2500-js-l.112-18
[8121064 bytes used, 8656152 available, 16777216 total]
Accessing file 'c2500-js56i-l.120-9.bin' on 192.168.0.120
...
Loading c2500-js56i-l.120-9.bin .from 192.168.0.120
(via Ethernet0): ! [OK]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeee
Loading c2500-js56i-l.120-9.bin from 192.168.0.120
(via Ethernet0):
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [output cut]
当复制完成并进行检查后,路由器就会重启并运行新的IOS了:
[OK - 10935532/16777216 bytes]
Verifying checksum... OK (0x2E3A)
Flash copy took 0:06:14 [hh:mm:ss]
%FLH: Re-booting system after download
Backing Up and Restoring the Cisco Configuration
路由器的配置会保存在running-config文件里,如果你不使用copy run start命令的话,那么路由器在重启或者掉电后,配置将不复存在。所以你或许需要为配置文件作一个备份来以防万一。下面我们学习怎样把路由器或者交换机的配置文件备份到TFTP服务器上。
Backing Up the Cisco Router Configuration
从路由器复制配置文件到TFTP服务器,我们可以使用copy running-config tftp,和copy startup-config tftp命令。
Verifying the Current Configuration
用show running-config命令来查看当前DRAM中的配置文件:
Router#sh run
Building configuration...
Current configuration:
!
version 12.0
Verifying the Stored Configuration
用show startup-config命令来查看NVRAM中的配置文件:
Router#sh start
Using 366 out of 32762 bytes
!
version 11.2
第二行说明了配置文件的大小是366字节,而NVRAM的大小是32KB。注意现在NVRAM中的配置文件版本是11.2而上面的是12.0,这是因为我们还没有使用copy running-config startup-config命令。
Copying the Current Configuration to NVRAM
把当前配置文件复制到NVRAM里,使路由器下次启动的时候可以读取配置。
在新的IOS 12.0版本路由器会提示你可以使用不同名字的配置文件,而11.2版本的IOS则是提示覆盖原来NVRAM里的配置文件。
Router#copy run start
Destination filename [startup-config]?[Enter]
Warning: Attempting to overwrite an NVRAM configuration
previously written by a different version of the system image.
Overwrite the previous NVRAM configuration?
[confirm][Enter]
Building configuration...
[OK]
现在我们再检查一下:
Router#sh start
Using 487 out of 32762 bytes
!
version 12.0
Copying the Configuration to a TFTP Server
我们还可以在TFTP服务器上做一个配置文件备份(第一个是保存在NVRAM里)。
使用copy running-config tftp命令:
Router#copy run tftp
Address or name of remote host []?192.168.0.120
Destination filename [router-confg]?bogy1-confg
!!
487 bytes copied in 12.236 secs (40 bytes/sec)
Router#
注意这里只显示了两个!,这意味着有20个数据包被发送(一个感叹号代表10个数据包)。还有就是上面配置文件的名字是bogy1-confg,如果你为路由器设置了一个名称,那么使用copy running-config tftp命令会自动使用路由器的名称后面加confg来作为配置文件名称。
Restoring the Cisco Router Configuration
如果你对当前的配置做了任何改变而又想恢复它的话,使用copy startup-config running-config命令,在老版本的路由器上则也可以用config mem命令来恢复配置。当然,如果在TFTP服务器上有第二个备份的话,你也可以使用copy tftp running-config 或者是copy tftp startup-config命令(老版命令则是config net):
Router#copy tftp run
Address or name of remote host []?192.168.0.120
Source filename []?bogy1-confg
Destination filename [running-config]?[Enter]
Accessing tftp://192.168.0.120/bogy1-confg...
Loading todd1-confg from 192.168.0.120 (via Ethernet0):
!!
[OK - 487/4096 bytes]
487 bytes copied in 5.400 secs (97 bytes/sec)
Router#
00:38:31: %SYS-5-CONFIG: Configured from
tftp://192.168.0.120/bogy1-confg
Router#
配置文件是一个ASCII文本文档,这意味着你可以用任何文本编辑器来修改配置文件。
QUOTE:
注意:要牢牢记住的一件事情是当你从TFTP服务器上复制一个配置文件到路由器的DRAM(running-config)的时候,默认所有的接口都是关闭(shutdown)的!!你需要手动地激活每个端口(no shutdown)!!
Erasing the Configuration
在路由器上删除startup-config配置文件,我们用erase startup-config命令。
Router#erase startup-config
Erasing the nvram filesystem will remove all files!
Continue? [confirm][Enter]
[OK]
Erase of nvram: complete
Router#
因为这个命令删除了NVRAM里面的配置文件,所以当路由器下次启动的时候将会进入安装模式。
Using Cisco Discovery Protocol (CDP)
思科发现协议(Cisco Discovery Protocol ,CDP)是思科公司创造的私有的协议。这个协议可以帮助管理员搜集本地或远程的设备的信息。你可以通过CDP协议来搜集邻居设备的硬件和协议信息,这对于故障检测和编写网络文档非常有帮助!下面我们介绍CDP时间类型和CDP的命令。
Getting CDP Timers and Holdtime Information
show cdp命令能显示两个全局参数:
·CDP timer:表示隔多久发送CDP数据包到所有设备接口上。
·CDP holdtime:表示设备从邻居那接收到的数据包的保持时间。
思科的交换机和路由器都使用相同的命令参数。例如:
Router#sh cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Router#
使用全局命令cdp holdtime和cdp timer来配置CDP holdtime和CDP timer:
Router#config t
Enter configuration commands, one per line. End with
CNTL/Z.
Router(config)#cdp ?
holdtime Specify the holdtime (in sec) to be sent in packets
timer Specify the rate at which CDP packets are sent (in sec)
run
Router(config)#cdp timer 90
Router(config)#cdp holdtime 240
Router(config)#^Z
你可以用全局命令no cdp run命令来完全关闭CDP,或者用no cdp enable在接口上关闭CDP,用cdp enable开启接口CDP。
Gathering Neighbor Information
show cdp neighbor命令能够显示直接相连的设备信息。需要记住的是CDP的数据包是不能通过思科交换机的,你只能看到直接连接的设备。这意味着如果你的路由器连接了一个交换机,那么不能发现接在交换机上的任何设备。
在2509路由器上使用show cdp neighbor命令显示如下:
Bogy2509#sh cdp nei
Capability Codes: R - Router, T - Trans Bridge,
B - Source Route Bridge, S - Switch, H - Host,
I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
1900Switch Eth 0 238 T S 1900 2
2500B Ser 0 138 R 2500 Ser 0
Bogy2509#
你直接连接2509路由器的console口,2509路由器则连接了一台叫做1900Switch的交换机和一台叫做2500B的路由器。注意!我们只能看到直接相连的设备。
表9.5概括了一些show cdp neighbor命令所显示的信息:
另外一个非常有用的获取邻居信息的命令是show cdp neighbor detail。
这个命令能在交换机和路由器上运行,它显示了相连设备的详细信息:
Bogy2509#sh cdp neighbor detail
-------------------------
Device ID: 1900Switch
Entry address(es):
IP address: 0.0.0.0
Platform: cisco 1900, Capabilities: Trans-Bridge Switch
Interface: Ethernet0, Port ID (outgoing port): 2
Holdtime : 166 sec
Version :
V9.00
-------------------------
Device ID: 2501B
Entry address(es):
IP address: 172.16.10.2
Platform: cisco 2500, Capabilities: Router
Interface: Serial0, Port ID (outgoing port): Serial0
Holdtime : 154 sec
Version :
Cisco Internetwork Operating System Software
IOS (tm) 3000 Software (IGS-J-L), Version 11.1(5),
RELEASE SOFTWARE (fc1)Copyright (c) 1986-1996 by cisco
Systems, Inc.Compiled Tue 05-Aug-03 11:48 by mkamson
Bogy2509#
那么这里显示了什么呢?首先我们获得了直接相连设备的名称和ip地址,其次到show cdp neighbor命令提供的相同的信息,最后我们还能看到邻居设备的IOS版本。
show cdp entry *命令效果和show cdp neighbor detail命令一样:
Bogy2509#sh cdp entry *
-------------------------
Device ID: 1900Switch
Entry address(es):
IP address: 0.0.0.0
Platform: cisco 1900, Capabilities: Trans-Bridge Switch
Interface: Ethernet0, Port ID (outgoing port): 2
Holdtime : 223 sec
Version :
V9.00
-------------------------
Device ID: 2501B
Entry address(es):
IP address: 172.16.10.2
Platform: cisco 2500, Capabilities: Router
Interface: Serial0, Port ID (outgoing port): Serial0
Holdtime : 151 sec
Version :
Cisco Internetwork Operating System Software
IOS (tm) 3000 Software (IGS-J-L), Version 11.1(5),
RELEASE SOFTWARE (fc1)Copyright (c) 1986-1996 by cisco
Systems, Inc.Compiled Tue 05-Aug-03 11:48 by mkamson
Bogy2509#
Gathering Interface Traffic Information
show cdp traffic命令显示接口流量信息,包括接收和发送的CDP数据包数量以及CDP错误:
Bogy2509#sh cdp traffic
CDP counters:
Packets output: 13, Input: 8
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid packet: 0, Fragmented: 0
Bogy2509#
Gathering Port and Interface Information
show cdp interface命令显示了路由器接口或者交换机接口的CDP状态。前面我已经说过你能够用全局命令no cdp run来完全关闭CDP,用cdp run来开启。你也能够在接口上用no cdp enable命令来关闭该接口的CDP,或者用cdp enable来开启,默认情况下所有接口的CDP都是开启的。
在一个路由器上,show cdp interface命令能够显示每个接口使用CDP的信息,包含了线路封装,时间,和保持时间。下面是2509的一个例子:
Bogy2509#sh cdp interface
Ethernet0 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial0 is administratively down, line protocol is down
Encapsulation HDLC
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial1 is administratively down, line protocol is down
Encapsulation HDLC
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
关闭接口用no cdp enable命令:
Bogy2509#config t
Enter configuration commands, one per line. End with CTRL/Z.
Bogy2509(config)#int s0
Bogy2509(config-if)#no cdp enable
Bogy2509(config-if)#^Z
下面我们检查一下:
Bogy2509#sh cdp int
Ethernet0 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial1 is administratively down, line protocol is down
Encapsulation HDLC
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Bogy2509#
注意上面的输出信息并没有serial 0接口,这是因为我们关闭了serial 0的CDP,如果想开启的话,可以使用cdp enable命令。
Using Telnet
Telnet是一个虚拟终端协议,属于TCP/IP协议集的一部分。它能够让你登陆到一个远程设备上搜集信息和运行程序等。
路由器和交换机配置完成后,你可以使用Telnet程序来检查或者重新配置路由器交换机而不必通过控制台端口连接到设备上。我们可以在DOS或者思科设备上使用telnet命令来运行Telnet程序。当然,要想登陆到路由器上你需要配置路由器的VTY密码。
记住,你不能用CDP来获取不直接相连的设备信息。但是你能够用Telnet程序来连接到邻居设备上运行CDP来获取远程设备(邻居的邻居)信息。下面我们来看一些例子:
Bogy2509#telnet 172.16.10.2
Trying 172.16.10.2 ... Open
Password required, but none set
[Connection to 172.16.10.2 closed by foreign host]
Bogy2509#
正如你所看到的,我没有设置VTY密码。记住!路由器VTY端口配置login的时候你需要设置一个VTY密码,或者可以使用no login命令。(如果你需要的话,可以回头看看第四章:“Introduction to the Cisco IOS” )
QUOTE:
注意:当你不能telnet到一个设备上时,可能是远程设备没有设置VTY密码,也可能是因为一个访问列表过滤了telnet会话。
在思科路由器上,你可以不用输入telnet命令而直接输入一个ip地址,路由器会假设你希望telnet这个ip地址:
Bogy2509#172.16.10.2
Trying 172.16.10.2 ... Open
Password required, but none set
[Connection to 172.16.10.2 closed by foreign host]
Bogy2509#
下面我们来设置远程路由器的VTY密码:
2501B#config t
Enter configuration commands, one per line. End with CNTL/Z.
2501B(config)#line vty 0 4
2501B(config-line)# password bogy
2501B(config-line)# login
2501B(config-line)#^Z
2501B#
%SYS-5-CONFIG_I: Configured from console by console
现在让我们再telnet一次看看:
Bogy2509#172.16.10.2
Trying 172.16.10.2 ... Open
User Access Verification
Password:
2501B>
要记住VTY密码只是一个用户模式密码而不是特权模式的密码。当我telnet到2501路由器上后我想进入2501的特权模式,我们看看会发生什么:
2501B>en
% No password set
2501B>
即使没有设置密码,我们也不能进入特权模式!!这是一个非常好的安全特性,因为你不希望任何人登陆到你的设备并仅仅输入enable命令就能进入特权模式。如果你自己希望进入特权模式的话,那么你可以设置要telnet的远程设备的enable password密码和enable secret密码。
QUOTE:
注意:当你telnet到一个远程设备,默认情况下你不能看到任何控制台消息。比如,你将不能看到任何调试输出信息。如果想在telnet会话过程中显示控制台消息,需要使用terminal monitor命令。
Telnetting into Multiple Devices Simultaneously
如果你telnet到一个路由器或者交换机上,你可以在任何时候输入exit命令来结束连接。但如果是你想保持这个telnet连接而又希望回到原始的路由器界面呢?为了达到这个目标,我们可以同时按下Ctrl+Shift+6组合键,然后松开,再按下X键。下面是一个例子:
Bogy2509#telnet 172.16.10.2
Trying 172.16.10.2 ... Open
User Access Verification
Password:
2501B>[Cntl+Shift+6, then X]
Bogy2509#
现在我们回到了原始的界面了,这时我们同样可以telnet到另外一个设备如1900交换机上(交换机也需要配置密码才能telnet):
Bogy2509#telnet 192.168.0.148
Trying 192.168.0.148 ... Open
Catalyst 1900 Management Console
Copyright (c) Cisco Systems, Inc. 1993-1999
All rights reserved.
Enterprise Edition Software
Ethernet Address: 00-B0-64-75-6B-C0
PCA Number: 73-3122-04
PCA Serial Number: FAB040131E2
Model Number: WS-C1912-A
System Serial Number: FAB0401U0JQ
Power Supply S/N: PHI033108SD
PCB Serial Number: FAB040131E2,73-3122-04
-------------------------------------------------
1 user(s) now active on Management Console.
User Interface Menu
[M] Menus
[K] Command Line
Enter Selection:
在这里我们再次按下Ctrl+Shift+6,然后松开,按X。这样我们又回到了Bogy2509路由器的界面:
Bogy2509#
Checking Telnet Connections
如果想看你的路由器连接到远程设备的telnet会话,使用show sessions命令:
Bogy2509#sh sessions
Conn Host Address Byte Idle Conn Name
1 172.16.10.2 172.16.10.2 0 0 172.16.10.2
* 2 192.168.0.148 192.168.0.148 0 0 192.168.0.148
Bogy2509#
*号表示session 2是你最后的会话。你可以按回车键两次回到你最后的会话,你也可以输入session号码并按回车两次回到该会话。
Checking Telnet Users
你可以用show users命令列出路由器上所有活动的控制台和VTY端口:
Bogy2509#sh users
Line User Host(s) Idle Location
* 0 con 0 172.16.10.2 00:07:52
192.168.0.148 00:07:18
上面的输出中,con表示本地控制台。这个例子中,控制台连接了两个远程ip地址或者说两个远程设备。
下面我们看看从Bogy2509路由器telnet到2501B路由器并使用sh users命令:
2501B>sh users
Line User Host(s) Idle Location
0 con 0 idle 9
* 2 vty 0
上面的输出显示了2501B路由器的控制台是活动的,并且VTY端口2在使用中。*号代表show users命令是从哪个telnet会话输入的。
Closing Telnet Sessions
你可以用一些不同的方法来结束telnet会话:exit或者disconnect。
在远程设备上,我们用exit命令:
Bogy2509#[Enter] and again [Enter]
[Resuming connection 2 to 192.168.0.148 ... ]
1900Switch>exit
[Connection to 192.168.0.148 closed by foreign host]
Bogy2509#
因为1900交换机是最后的会话,所以我们可以按回车键两次返回到该会话中。
在本地设备上结束telnet会话,我们用disconnect命令:
Bogy2509#disconnect ?
<1-2> The number of an active network connection
WORD The name of an active network connection
<cr>
Bogy2509#disconnect 1
Closing connection to 172.16.10.2 [confirm]
Bogy2509#
这里我使用session 号码1,这是因为我想结束连接到2501B路由器的telnet会话。我们可以用show sessions命令来显示会话号码。
如果你想结束连接到你设备上的telnet会话,那么首先要检查一下是什么远程设备连接到你的本地设备:
2501B#sh users
Line User Host(s) Idle Location
* 0 con 0 idle 0
1 aux 0 idle 0
2 vty 0 idle 0 172.16.10.1
输出显示了VTY 0端口有一个ip172.16.10.1连接。这是Bogy2509路由器的ip地址。为了结束这个连接,你可以使用clear line #命令:
2501B#clear line 2
[confirm]
[OK]
为了检查一下是否已经断开连接,可以再次输入show users命令:
2501B#sh users
Line User Host(s) Idle Location
* 0 con 0 idle 0
1 aux 0 idle 1
2501B#
输出显示我们已经结束了telnet连接。
Resolving Hostnames
为了使用一个主机名而不是一个ip地址来连接远程设备,那么必须要能够把远程设备的主机名转换成ip地址。
有两种办法可以把主机名解析成ip地址:第一,在每个路由器上建立一个主机列表;第二建立一个域名系统(Domain Name System ,DNS)服务器,这相当于一个动态的主机列表。
Building a Host Table
只有在路由器上建立了主机列表才能提供名字解析。建立一个主机列表的命令是:ip host host_name tcp_port_number ip_address。
默认的TCP端口是23,不过如果你需要的话也可以用不同的TCP端口来创建一个telnet会话。你能够在一个主机名上绑定八个ip地址。下面是一个建立主机列表的例子:
Bogy2509#config t
Enter configuration commands, one per line. End with CNTL/Z.
Bogy2509(config)#ip host ?
WORD Name of host
Bogy2509(config)#ip host 2501B ?
<0-65535> Default telnet port number
A.B.C.D Host IP address (maximum of 8)
Bogy2509(config)#ip host 2501B 172.16.10.2 ?
A.B.C.D Host IP address (maximum of 8)
<cr>
Bogy2509(config)#ip host 2501B 172.16.10.2
Bogy2509(config)#ip host 1900Switch 192.168.0.148
Bogy2509(config)#^Z
下面来看看新建立的主机列表,使用show hosts命令:
Bogy2509#sh hosts
Default domain is not set
Name/address lookup uses domain service
Name servers are 255.255.255.255
Host Flags Age Type Address(es)
2501B (perm, OK) 0 IP 172.16.10.2
1900Switch (perm, OK) 0 IP 192.168.0.148
Bogy2509#
在输出中你可以看到两个主机名和它们对应的ip地址。在Flags字段中的perm意味着permanent永久,这表明了这条内容是手动建立的。如果显示的是temp(临时),那么就表示是被DNS解析的。
注意:show hosts命令提供了关于临时的DNS条目和永久的name-to-address映射(通过ip host命令建立的)。
为了确认主机列表是否能正常解析名字,可以在路由器提示符下输入主机名,记住,如果你没有指定命令,路由器会假设你是执行telnet:
Bogy2509#2501b
Trying 2501B (172.16.10.2)... Open
User Access Verification
Password:
2501B>
Bogy2509#[Ctrl+Shift+6, then X]
Bogy2509#1900switch
Trying 1900switch (192.168.0.148)... Open
Catalyst 1900 Management Console
Copyright (c) Cisco Systems, Inc. 1993-1999
All rights reserved.
Enterprise Edition Software
Ethernet Address: 00-B0-64-75-6B-C0
PCA Number: 73-3122-04
PCA Serial Number: FAB040131E2
Model Number: WS-C1912-A
System Serial Number: FAB0401U0JQ
Power Supply S/N: PHI033108SD
PCB Serial Number: FAB040131E2,73-3122-04
-------------------------------------------------
1 user(s) now active on Management Console.
User Interface Menu
[M] Menus
[K] Command Line
Enter Selection:[Ctrl+Shift+6, then X]
Bogy2509#
现在我们已经成功地利用了主机列表中的条目来创建了两个telnet会话。注意现在如果用show sessions命令显示的就不单单是ip地址而是主机名加ip地址了:
Bogy2509#sh sess
Conn Host Address Byte Idle Conn Name
1 1900switch 192.168.0.148 0 0 switch
* 2 2501b 172.16.10.2 0 0 2501b
Bogy2509#
如果你想删除主机列表里的条目,使用no ip host命令:
RouterA(config)#no ip host routerb
主机列表的问题在于你需要在每个路由器上手动创建才能进行名称解析,如果你有许多路由器需要进行名称解析的话,那么还是用DNS服务器的好。
Using DNS to Resolve Names
所以如果你有许多设备又不想在每个设备上创建主机列表,那么你可以使用DNS服务器来解析主机名。
思科的设备当接收到一个不认识的命令时,默认它会尝试用DNS来解析这条命令。看看我在路由器上输入一个命令Bogy时会发生什么情况:
Bogy2509#Bogy
Translating "Bogy"...domain server (255.255.255.255)
% Unknown command or computer name, or unable to find
computer address
Bogy2509#
因为路由器不知道你输入的是什么命令,所以它认为可能是一个主机名,所以会尝试用DNS来解析它。这是非常令人讨厌的,有两个原因:第一,因为它不知道我的名字(嘿嘿);第二,因为这样你需要等待DNS寻找这个名字,直到超时。你可以在全局模式下用no ip domain-lookup命令来避免这个耗时的DNS解析过程。
如果在你的网络上有一台DNS服务器,那么你需要输入一些命令来使DNS名称解析正常工作:
·第一个命令是ip domain-lookup,默认情况下是已经开启了的。除非象你在上面那样用no domain-lookup来关闭了才需要这条命令。
·第二个命令是ip name-server,这个命令是设置DNS服务器ip地址的。你最多可以输入6个ip地址。
·最后一个命令是ip domain-name。虽然这个命令只是可选,但还是需要设置的。它追加域名到你的主机名后面,因为DNS使用一个正式域名(fully qualified domain name ,FQDN)系统,如这样的格式:hostname.domainname.com。
下面是这三条命令的使用例子:
Bogy2509#config t
Enter configuration commands, one per line. End with CNTL/Z.
Bogy2509(config)#ip domain-lookup
Bogy2509(config)#ip name-server ?
A.B.C.D Domain server IP address (maximum of 6)
Bogy2509(config)#ip name-server 222.134.81.102
Bogy2509(config)#ip domain-name eviloctal.com
Bogy2509(config)#^Z
Bogy2509#
在配置完DNS后,你可以ping或者telnet一个设备的主机名来测试一下:
Bogy2509#ping 2501b
Translating "2501b"...domain server (222.134.81.102) [OK]
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max
= 28/31/32 ms
注意现在路由器使用DNS服务器来解析名字。
现在我们再用show hosts命令来看看主机列表里的内容:
Bogy2509#sh hosts
Default domain is eviloctal.com
Name/address lookup uses domain service
Name servers are 222.134.81.102
Host Flags Age Type Address(es)
2501b.eviloctal.com (temp, OK) 0 IP 172.16.10.2
1900switch (perm, OK) 0 IP 192.168.0.148
Bogy2509#
2501b的条目的Flags显示为temp(由DNS服务器临时解析),而1900switch的还是perm(表示是静态的条目)。注意现在主机名显示的是一个完整的域名,如果你没有使用ip domain-name eviloctal.com命令的话,那么你需要输入ping 2501b.eviloctal.com,很麻烦吧。
Checking Network Connectivity
你可以用ping和traceroute命令来检测到远程设备的连通性。这两个命令都能够使用多种协议而不仅仅是IP。但不要忘记了show ip route命令也是一个很好的故障检测命令,它可以检查你的路由表。还有show interface命令可以检查你的接口的状态。这里我不再介绍show ip route和show interface命令,因为在前面第四章我们已经详细描述过了。
Using the ping Command
我们已经用ping来举过许多关于连通性和名字解析的例子了,下面我们看看ping命令能够使用的协议:
Bogy2509#ping ?
WORD Ping destination address or hostname
apollo Apollo echo
appletalk Appletalk echo
clns CLNS echo
decnet DECnet echo
ip IP echo
ipx Novell/IPX echo
srb srb echo
tag Tag encapsulated IP echo
vines Vines echo
xns XNS echo
<cr>
ping命令的输出信息包括了一个数据包到达一个指定的设备的最小,平均,和最大的来回时间:
Bogy2509#ping Bogy2509
Translating "Bogy2509"...domain server (222.134.81.102)[OK]
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.121, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max
= 32/32/32 ms
Bogy2509#
你可以看到DNS解析了这个主机名并且ping这个设备的时间是32ms(毫秒)。
注意:ping命令可以在用户模式或者特权模式下输入,但不能在全局模式下使用。
Using the traceroute Command
traceroute命令(或者可以缩写成trace)显示了一个数据包到达远程设备所经过的路径。我们看看它能支持什么协议:
Bogy2509#traceroute ?
WORD Trace route to destination address or
hostname
appletalk AppleTalk Trace
clns ISO CLNS Trace
ip IP Trace
ipx IPX Trace
oldvines Vines Trace (Cisco)
vines Vines Trace (Banyan)
<cr>
trace命令显示了数据包经过的每一个节点(hop):
Bogy2509#trace 2501b
Type escape sequence to abort.
Tracing the route to 2501b.eviloctal.com (172.16.10.2)
1 2501b.eviloctal.com (172.16.10.2) 16 msec * 16 msec
Bogy2509#
你可以看到数据包到达目的地只经过了一个节点。
QUOTE:
注意:在考试中你不能使用tracert命令!这是一个windows命令,路由器上用的是traceroute(或者缩写成trace)。
Summary
在本章我们学习了思科路由器的配置以及怎样管理这些配置。
这一章描述了路由器的内部结构,包括了ROM,RAM,NARAM和FLASH等。
另外我还说明了路由器启动顺序和装载什么文件。configuration register告诉路由器怎样启动和在哪里装载文件。我们还学习了怎样改变configuration registe的数值以进行密码恢复工作。
接下来我们学习了怎样备份和恢复IOS和路由器配置文件。还学习了使用CDP和telnet来获取远程设备的信息。
最后,是关于怎样解析主机名以及使用ping和trace命令来测试网络连通性。
15:56 2005-4-11