第5章路由器与交换机模拟器
5.1模拟软件简介

Dynamips是一款专业的基于虚拟化技术的Cisco 7200/3600路由器模拟器,原始名称为Cisco 7200Simulator,其作者是法国UTC大学(University of Technology of Compiegne,France)的Christophe Fillot,源于Christophe Fillot在2005年8月开始的一个项目,其目的是在传统的PC上模拟Cisco的7200路由器。该模拟器也支持Cisco的3600系列、3700系列和2600系列等路由器平台。用户可以在Dynamips虚拟出的环境中直接运行Cisco系统的二进制镜像IOS软件。
Dynamips模拟器使用真实的Cisco IOS操作系统构建了一个学习和培训平台,使得人们可以方便地熟悉路由器、交换机等通信设备的功能、配置命令及配置流程。
Dynagen是Dynamips的一个基于文本的前端控制系统,它采用超级监控模式和Dynamips进行通信,Dynagen简化了虚拟网络的创建和操作。
5.2模拟软件使用方法
1. 下载与安装
Dynamips原版程序可以从http://www.ipflow.utc.fr/blog/网站下载,下载完成后,将下载获得的Dynamips模拟器压缩包解压缩。
2. Dynamips压缩包内的目录说明

├─top保存着拓扑图片
├─tmp保存着临时文件,目录中存有idlepc数据库
├─net保存着网络拓扑配置文件,存放着实验环境的拓扑配置
├─ios保存着通信设备操作系统二进制镜像文件
├─bin保存着程序子目录
│ ├─winpcap低层驱动,用于捕获数据包和绕过协议栈方式来进行数据传输
│ ├─script辅助脚本程序
│ ├─putty一个较好用的Telnet客户端
│ ├─Dynagen虚拟机的扩展平台,可以方便地管理和使用Dynamips虚拟机
│ │ └─sample_labs Dynagen自带的一些拓扑配置示例文件
│ │ ├─ethernet_switch 
│ │ ├─multiserver 
│ │ ├─simple2 
│ │ ├─simple1 
│ │ └─frame_relay 
│ ├─Dynamips虚拟机主程序
│ └─php php脚本解释程序
└─setup环境安装设置目录
3. 安装Dynamips模拟器
Dynamips模拟器压缩包解压缩完成后,依次做如下两项操作: 
(1) 进入setup子目录,双击“1.安装Win_Pcap.cmd”文件安装winpcap程序; 
(2) 当安装完winpcap后,继续在setup目录下,双击“2.修改网卡参数.cmd”文件。
完成如上两个步骤后,就完成了基本的设置工作。
4. 启动虚拟服务
接下来就是如何启动虚拟服务了。
在Dynamips模拟器压缩包解压缩后的根目录下,根据Dynamips模拟器运行的主机的操作系统,从两个Dynamips虚拟服务启动文件中选择一个并双击运行: 
(1) “0.虚拟服务Win2000.bat”针对Windows 2000 Server环境; 
(2) “0.虚拟服务XP&2003.bat”针对Windows XP和Windows Server 2003环境。
Dynamips虚拟服务启动后,不要关闭该启动窗口,可以将其最小化。
5. 启动虚拟实验环境
在Dynamips模拟器压缩包解压缩后的根目录下,选择需要启动的虚拟实验环境,Dynamips模拟器本身提供了以下几个实验环境启动文件: 
“1.控制台CCNA路由版.cmd”,该启动文件提供路由器实验环境; 
“2.控制台CCNA标准版.cmd”,该启动文件提供帧中继实验环境; 
“3.控制台CCNA交换版.cmd”,该启动文件提供交换机实验环境。
也可以不启动Dynamips模拟器本身提供的上述文件,而启动事先自己写好并放到根目录下的实验环境启动文件。
比如,用户生成一个cmd文件“bupt_sw.cmd”,该文件的内容如下所示。

@echo off

call bin/script/copyright.cmd

title 控制台,请不要关闭本窗口!

echo * BUPT 交换版控制台 *

echo *=================*

cd tmp

"../bin/Dynagen/Dynagen.exe" ..\net\bupt_sw.net

该cmd文件的最后一行是使用Dynagen程序调用.net文件来运行Dynamips。其中bupt_sw.net文档描述了网络拓扑以及通信设备情况,例子如下。

autostart = False

[localhost]

port = 7200

udp = 10000

workingdir = ..\tmp\

[[router SW]]

image = ..\ios\unzip-c3640-js-mz.124-10.bin

model = 3640

console = 3003

ram = 128

confreg = 0x2142

exec_area = 64

mmap = False

slot1 = NM-16ESW

f1/1 = PC1 f0/0

f1/2 = PC2 f0/0

[[router PC1]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3006

[[router PC2]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3007

下面介绍各个参数的含义。
◆Autostart: 是否开启自动运行,如果该值为true,那么运行程序后,所有的设备都会自动启动,建议设置为false,以后用哪个就开哪个。
◆model: 路由器型号。
◆image: 使用的路由IOS文件,要写出IOS文件所在的绝对路径。
◆ram: 虚拟设备运行时所需内存大小,可以根据IOS版本不同自行调整。
◆mmap: 内存小于512M时,选true。
◆slot: 以太网模块名。
◆confreg: 路由器的寄存器状态。
◆f1/1 = PC1 f0/0: 表示本机的f1/1端口连接到了名称为PC1设备的f0/0端口上。
◆console: 指定登录端口号,用telnet登录该设备时,就要用到这个端口号,需要保证每台设备的端口号不同。
该net文档描述了一个网络拓扑图如图51所示。


图51网络拓扑示例



bupt_sw.net文档描述的网络由一个交换机和两个PC构成。其中,交换机的端口f1/1与PC1的f0/0相连,交换机的端口f1/2与PC2的f0/0相连。在这里,用3640路由器模拟了交换机SW,用2621路由器模拟了PC。
6. 设置idlepc
在Dynamips模拟器运行时,必须让Dynamips知道虚拟路由器什么时候处于空闲状态,什么时候处于使用状态,否则Dynamips的CPU占用率会很高,甚至达到100%。
每个设备的idlepc值标识了该设备的CPU占用率,为每个设备设定了idlepc值以后,就可以降低主机的CPU占用率。只有在启动每一类设备的第一个设备时需要设置idlepc值,以后再次启动或者启动同类其他设备时就不再需要设置了,下面介绍计算idlepc值的方法,以路由器R1为例。
(1) 建立保存idlepc值的数据库。打开Dynamips模拟器压缩包解压缩后的根目录下的bin/danagen/danagen.ini文档,将文档中idledb前的“#”号去掉,并配置数据库所在路径,然后自主命名数据库文档名,但是文档名的后缀必须是“.ini”,这个ini文档就是保存idlepc的数据库。如果设置的数据库文档不存在,在启动Dynagen时,该文档则会自动生成。
(2) 只启动虚拟路由器R1,其他路由器全部关闭,如果Dynagen没有检测到idlepc值,就会提示“Starting R1 with no dlepc value”的警告,并且CPU占用率高达100%(在没有确定正确的idlepc值的时候,不要在网络拓扑“.net”文件中加入idlepc的值)。
(3) telnet路由器R1。如果出现IOS自动配置的提示,输入“no”并回车。
(4) 等R1所有的接口都初始化以后,再等一会儿确保路由器不再运行并处于空闲状态。
(5) 切换到Dynagen管理控制台,输入命令“idlepc get R1”,会看到该设备的idlepc值统计列表,选择并输入具有“*”号并且方括号中数值是最大值的序号(如果没带星号就需要打开操作系统的任务管理器,观察CPU的占用率后再选择),然后输入回车。
(6) 可以看到CPU的使用率降了下来。
(7) 如果要更换其他idlepc值,需要输入命令“idlepc show R1”来列出刚才的idlepc值列表,重新选择即可。
(8) 把idlepc值写入idlepc数据库中,需输入命令“idlepc save R1 db”,这样,以后启动具有相同IOS的路由器时,就不需要再计算idlepc值了。
(9) 可以将选定的idlepc值写入到“.net”网络拓扑文件中,这样,每次启动路由器R1时,会自动调用这个值。
7. Dynagen的一些命令
Dynagen的命令都要区分大小写。
◆“list”: 可以查看当前环境的通信设备列表。从list命令列出的设备状态列表中,可以看到设备名称、设备型号、当前状态、服务器端口号和远程登录控制端口号。
◆start: 可以打开路由器,例如“start R1”“start /all”。当在控制台输入start命令后,服务器会接收到从控制台发出的启动命令,虚拟服务器会启动相应设备,也就是从镜像文件IOS中加载数据库文件。
◆“telnet”: 可以登录到路由器的console接口,例如“telnet R1”。或者也可以在windows开始菜单中单击“运行CMD”,输入telnet 127.0.0.1 3001即可登录到R1。
◆“stop”: 可以关闭路由器,例如“stop R1”“stop /all”。
◆“reload”: 可以关闭路由器,例如“reload R1”“reload /all”。
◆“exit”: 退出Dynagen。
下面分别以路由器模拟和交换机模拟两个例子来说明Dynamips的使用方法。
5.3路由器模拟实验
5.3.1实验目的
掌握配置路由器的方式和方法,了解静态路由与动态路由RIP协议的区别。
5.3.2实验原理
1. 路由器工作原理

在一个局域网中,如果不需要与外界网络进行通信的话,网络内的各个主机能够相互识别,就可以通过交换机实现相互通信。如果不同网段或网络之间进行通信,就需要使用路由器了,也就是说,路由器是用来连接不同网段或网络的。路由器识别网络的方法是通过识别网络ID号来进行的,为了保证路由成功,每个网络都必须有唯一的网络编号。
当子网中的一台主机向同一子网内的另一台主机发送数据分组时,就直接向该子网发送数据分组,目的主机收到发送到子网上的数据分组后发现分组的目的IP地址与它的IP地址相同,就会进行下一步的处理。然而,当数据分组中的目的IP地址属于另一个子网时,主机就会把数据分组发送给一个称为默认网关(Default Gateway)的路由器,默认网关是主机上的TCP/IP协议配置参数,它是与发送数据分组的主机位于同一子网的路由器端口的IP地址。路由器上位于发送子网的端口在收到数据分组后,通过数据分组的目的网络号来查找路由表,根据数据分组目的IP地址的网络号部分来选择路由器的转发端口。如果路由器的转发端口所在的网络号与目的网络号相同,就直接将分组从转发端口发送到转发端口所在的网络上; 如果路由器的转发端口所在的网络号与目的网络号不相同,就直接将数据分组发送到能到达目的子网的下一跳路由器,然后把数据分组发送给该路由器。下一跳路由器收到数据分组后,也会做相似的处理。如果在路由表中没有找到可到达目的子网的下一跳路由器,就需要使用默认路由,默认路由是一种特殊的静态路由,它是由网络管理员配置的。当路由表中不存在与数据分组的目的IP地址相匹配的路由表项时,路由器要将数据分组转发给的路由。如果没有设置默认路由的话,目的地址在路由表中没有匹配表项的数据分组将被路由器丢弃。数据分组就这样一跳一跳地在网络之间传送,送不到目的地的数据分组会被丢弃。
路由器的其他原理请见“路由器基础”一章。
2. DTE与DCE
DTE(Data Terminal Equipment,数据终端设备)是具有一定的数据处理能力和数据收发能力的设备,它提供数据或接收数据,它是用户网络接口的用户端设备,可作为数据源、目的地或两者兼而有之,比如,连接到调制解调器的计算机或终端设备就是一种DTE。
DCE(Data Communications Equipment,数据通信设备)在DTE和传输线路之间提供信号变换和编码功能,并且负责建立、保持和释放链路的连接,是网络端的连接设备,比如,Modem。
在广域网中,数据通常从DTE发送,经过DCE连接到数据网络,最终到达DTE。DTE与DCE在一起工作时,由DCE来提供时钟,而DTE不提供时钟,DTE需要依靠DCE提供的时钟来工作,比如,PC和MODEM之间就是这样。
谈到DTE与DCE,离不开V.24接口。事实上,V.24接口标准是广域网物理层规定的接口标准,它是由ITUT定义的DCE设备和DTE设备之间的物理层接口标准。V.24接口标准规定DTE的第二根针脚作为TXD(发送数据线)线、第三根针脚作为RXD(接收数据线)线,第四根针脚作为DTS,第五根针脚作为RTS(请求发送线),第六根针脚作为DTR,第七根针脚作为信号地线,第八根针脚作为DCD。DCE通常与DTE对接,因此它们的针脚分配是相反的。通常从外观就可以区别DTE与DCE,其中,DTE是针头(也称为公头),而DCE是孔头(也称为母头),这样两种接口才能接在一起。
3. RIP路由协议
RIP简单、便于配置。它是使用非常广泛的一种路由协议,RIP采用距离向量算法,也就是路由器根据距离选择路由,所以也被称为距离向量协议。
采用RIP的路由器会收集所有能够到达目的地的不同路径信息,但是只保存到达目的地的具有最少跳数的最佳路径信息,而其他路径信息均予以丢弃。RIP允许的最大跳数为15,任何超过15跳的目的地均被标为不可达,因此,RIP只适用于小规模网络。同时,路由器会把所收集的最佳路由信息用RIP协议每隔30s将整个路由表信息通知相邻的其他路由器。网络中每一个路由器都采用相同的操作。这样的话,最佳的路由信息会逐渐扩散到全网。但是,路由器每隔30s一次的整个路由表信息的广播是造成网络广播风暴的重要原因之一。
更多的与RIP相关的内容请见“路由器基础”一章。
5.3.3实验要求
(1) 实现在静态路由下两台主机PC1和PC2之间能够相互ping通。
(2) 实现在动态路由RIP协议下两台主机PC1和PC2之间能够相互ping通。
5.3.4网络拓扑结构
网络拓扑图如图52所示,其对应的“.net”文件如下所述。



图52网络拓扑图



autostart = false

[localhost]

port = 7200

udp = 10000

workingdir = ..\tmp\

[[router R1]]

image = ..\ios\unzip-c7200-is-mz.122-37.bin

model = 7200

console = 3001

npe = npe-400

ram = 64

confreg = 0x2142

exec_area = 64

mmap = false

slot0 = PA-C7200-IO-FE

slot1 = PA-4T

f0/0 = PC1 f0/0

s1/1 = R2 s1/0

[[router R2]]

image = ..\ios\unzip-c7200-is-mz.122-37.bin

model = 7200

console = 3002

npe = npe-400

ram = 64

confreg = 0x2142

exec_area = 64

mmap = false

slot0 = PA-C7200-IO-FE

slot1 = PA-4T

f0/0 = PC2 f0/0

[[router PC1]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3003

[[router PC2]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3004

5.3.5实验步骤介绍
在虚拟环境下依次实现以下功能。 
(1) 静态路由实验; 
(2) 动态路由实验。
5.3.6实验过程及分析
1. 开启服务器和控制台部分


首先启动虚拟服务器,如图53所示。



图53启动虚拟服务器



当在控制台输入start /all命令后,虚拟服务器开始加载所有IOS镜像中的数据库文件,如图54所示。


图54服务器加载设备镜像中的数据库文件



在控制台输入list命令,能够看到设备名称、型号、当前状态、服务端口和远程控制号,如图55所示。


图55list命令


2. 静态路由实验
(1) 配置PC1
① 配置PC1 f0/0端口IP地址
步骤1: 登录PC1: telnet PC1或telnet 127.0.0.1:3003
步骤2: 进入特权模式: en
步骤3: 进入全局配置模式: conf terminal
步骤4: 进入端口配置: interface f0/0
步骤5: 设置IP地址: IP address 2.1.1.2 255.0.0.0
步骤6: 加电开启端口: no shutdown
② 配置PC1静态路由
步骤1: 登录PC1: telnet PC1或telnet 127.0.0.1:3003
步骤2: 进入特权模式: en
步骤3: 进入全局配置模式: conf terminal
步骤4: PC1的静态路由对应的是PC2的网段号: IP route 3.0.0.0 255.0.0.0 fastEthernet 0/0
(2) 配置PC2
① 配置PC2 f0/0端口IP地址
步骤1: 登录PC2: telnet PC2或telnet 127.0.0.1:3004
步骤2: 进入特权模式: en
步骤3: 进入全局配置模式: conf terminal
步骤4: 进入端口配置: interface f0/0
步骤5: 设置IP地址: IP Address 3.1.1.2 255.0.0.0
步骤6: 加电开启端口: no shutdown
② 配置PC2静态路由
步骤1: 登录PC2: telnet PC2或telnet 127.0.0.1:3004
步骤2: 进入特权模式: en
步骤3: 进入全局配置模式: conf terminal
步骤4: PC2的静态路由对应的是PC1的网段号: IP route 2.0.0.0 255.0.0.0 fastEthernet 0/0
(3) 配置路由器R1
设置路由器R1的S1/1端口的IP地址、时钟响应时间间隔、数据链路层的PPP(点对点)协议和连接主机PC1的F0/0端口的IP地址。
① 设置路由器R1连接路由器R2的端口s1/1
步骤1: 登录R1: telnet R1或telnet 127.0.0.1:3001
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 进入全局配置模式: interface s1/1
步骤5: 配置S1/1的IP地址: IP address 192.168.1.1 255.0.0.0
步骤6: R1为DCE,所以设置时钟响应时间间隔: clock rate 115200
步骤7: 设置数据链路层PPP协议: encapsulation ppp
步骤8: 加电开启端口: no shutdown
② 设置路由器R1连接子网的端口f0/0
步骤1: 登录R1: telnet R1或telnet 127.0.0.1:3001
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 进入全局配置模式: interface f0/0
步骤5: 配置f0/0的IP地址: IP address 2.1.1.1 255.0.0.0
步骤6: 加电开启端口: no shutdown
③ 配置静态路由
步骤1: 登录R1: telnet R1或telnet 127.0.0.1:3001
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: R1的静态路由对应的是PC2的网段号: IP route 3.0.0.0 255.0.0.0 serial1/1
(4) 配置路由器R2
设置路由器R2的S1/0端口的IP地址、数据链路层的PPP(点对点)协议和连接主机PC2的F0/0的IP地址。由于R2是DTE,所以不需要设置时钟响应时间间隔,只需要接收由DCE传过来的时间响应信号。
① 设置路由器R2连接路由器R1的端口s1/0
步骤1: 登录R2: telnet R2或telnet 127.0.0.1:3002
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 进入全局配置模式: interface s1/0
步骤5: 配置S1/0的IP地址: IP address 192.168.1.2 255.0.0.0
步骤6: 设置数据链路层PPP协议: encapsulation ppp
步骤7: 加电开启端口: no shutdown
② 设置路由器R2连接子网的端口f0/0
步骤1: 登录R2: telnet R2或telnet 127.0.0.1:3002
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 进入全局配置模式: interface f0/0
步骤5: 配置f0/0的IP地址: IP address 3.1.1.1 255.0.0.0
步骤6: 加电开启端口: no shutdown
③ 配置静态路由
步骤1: 登录R2: telnet R2或telnet 127.0.0.1:3002
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: R2的静态路由对应的是PC1的网段号: IP route 2.0.0.0 255.0.0.0 serial1/0
3. 配置动态路由RIP协议
(1) 配置路由器R1
① 撤销R1的静态路由
步骤1: 登录R1: telnet R1或telnet 127.0.0.1:3001
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 撤销静态路由协议: no IP route 3.0.0.0 255.0.0.0 serial1/1
② 配置动态路由协议RIP
步骤1: network 192.168.1.0
步骤2: network 2.0.0.0
步骤3: neighbor 192.168.1.2
步骤4: exit
(2) 配置路由器R2
① 撤销R2的静态路由协议
步骤1: 登录R2: telnet R2或telnet 127.0.0.1:3002
步骤2: 进入用户模式: en
步骤3: 进入特权模式: conf terminal
步骤4: 撤销静态路由协议: no IP route 2.0.0.0 255.0.0.0 serial1/0
② 配置动态路由协议RIP
步骤1: network 192.168.1.0
步骤2: network 3.0.0.0
步骤3: neighbor 192.168.1.1
步骤4: exit
5.4交换机模拟实验
5.4.1实验目的
掌握配置交换机的方法,了解VLAN的作用。
5.4.2实验原理
二层交换机和三层交换机的区别之一是二层交换机必须连接一个三层路由设备才能实现VLAN之间的数据交换,而三层交换机本身就具有路由的功能,可以直接实现VLAN之间的数据交换。
更多的交换机原理见第3章的交换机基础。
5.4.3实验要求
(1) 配置两台主机PC1和PC2,并使得它们之间能够相互ping通。
(2) 划分VLAN2和VLAN3,并测试VLAN。
(3) 合并VLAN后,两台主机之间能够ping通。
5.4.4网络拓扑结构
网络拓扑图如图56所示,其对应的“.net”文件如下所述。



图56网络拓扑图



autostart = False

[localhost]

port = 7200

udp = 10000

workingdir = ..\tmp\

[[router SW1]]

image = ..\ios\unzip-c3640-js-mz.124-10.bin

model = 3640

console = 3003

ram = 128

confreg = 0x2142

exec_area = 64

mmap = False

slot1 = NM-16ESW

f1/1 = SW2 f1/2

f1/2 = SW2 f1/1

f1/11 = PC1 f0/0

f1/12 = PC2 f0/0

[[router SW2]]

image = ..\ios\unzip-c3640-js-mz.124-10.bin

model = 3640

console = 3004

ram = 128

confreg = 0x2142

exec_area = 64

mmap = False

slot1 = NM-16ESW

f1/11 = PC3 f0/0

[[router PC1]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3006

[[router PC2]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3007

[[router PC3]]

model = 2621

ram = 20

image = ..\ios\unzip-c2600-i-mz.121-3.T.bin

mmap = False

confreg = 0x2142

console = 3008

5.4.5实验步骤介绍
◆分别启动SW1、PC1、PC2。
◆分别telnet到SW1、PC1、PC2上进行配置。
◆设置PC1的F0/0接口IP地址为192.168.1.1。
◆设置PC2的F0/0接口IP地址为192.168.1.2。
◆将SW1的端口f1/11设置成VLAN2。
◆将SW1的端口f1/12设置成VLAN3。
◆查看PC1与PC2是否能相互ping通。
◆将SW1的端口f1/12设置成VLAN2。
◆查看PC1与PC2是否能相互ping通。
5.4.6实验过程及分析
1. 开启服务器和控制台部分


首先启动虚拟服务器,如图57所示。


图57启动虚拟服务器


在启动各个设备之前,使用list命令查看各设备的状态,如图58所示。


图58启动设备前,list命令显示结果


2. 启动PC1、PC2、SW1
(1) 启动PC1: start PC1。
(2) 启动PC2: start PC2。
(3) 启动SW1设备: Start SW1,然后输入“idlepc get SW1”命令来获取SW1的idlepc值,接着输入“idlepc save SW1 db”进行保存,如图59所示。


图59启动SW1并获取idlepc值



图510说明不需要再设置SW1的idlepc值,原因是之前已经分配好了idlepc值。



图510SW1已设置idlepc值的情况


输入list命令查看设备是否已经启动,如图511所示。


图511启动设备后,list命令显示结果



3. 配置PC1
(1) 进入PC1配置界面: telnet PC1。
(2) 配置过程如下所示: 
① 进入特权模式: en; 
② 进入全局配置模式: conf terminal; 
③ 进入端口配置: interface f0/0; 
④ 设置IP地址: IP address 192.168.1.1 255.255.255.0; 
⑤ 启动PC1端口F0/0: no shutdown,如图512所示。


图512启动端口f0/0


(3) 查看配置是否正确。
方法一: 在Router#下用Show runningconfig命令查看配置是否正确。
方法二: 在Router#下Ping 192.168.1.1,如果ping通,说明配置成功。
4. 配置PC2
(1) 进入PC2配置界面: telnet PC2。
(2) 配置过程如下: 
① 进入特权模式: en; 
② 进入全局配置模式: conf terminal; 
③ 进入端口配置: interface f0/0; 
④ 设置IP地址: IP address 192.168.1.2 255.255.255.0; 
⑤ 启动PC2端口F0/0: no shutdown。
5. PC1和PC2相互ping
在配置完PC1和PC2以后,并且还没有配置SW1时,PC1和PC2互ping操作。
(1) 互ping操作结果
在这种情况下,发现PC1与PC2不能相互ping通,如图513所示。


图513PC1 ping PC2结果



(2) 互ping操作结果分析
在还没有配置SW1时,PC1与PC2不能相互ping通,说明本次实验使用的交换机不是二层交换机,因为二层交换机只需要两台主机直接与交换机端口相连接就可以直接相互ping通了,因此本次试验使用的交换机应当是三层交换机。
二层交换机只有一个默认VLAN,也就是VLAN1,该VLAN是在默认情况下负责管理二层交换机各个交换端口(默认的情况下,所有的端口都属于VLAN1)。
6. 配置SW1
(1) 进入SW1配置界面: 在控制台输入“telnet SW1”命令。
(2) 配置过程如下:
① 配置SW1端口F1/11的IP地址为192.168.1.5。
◆进入特权模式: en
◆进入全局配置模式: conf terminal
◆进入端口配置: interface f1/11
◆no switchport
◆设置IP地址: IP address 192.168.1.5 255.255.255.0
◆switchport
◆启动SW1端口F1/11: no shutdown
◆exit
◆在全局配置模式下,输入“no cdp run”
② 配置SW1端口F1/12的IP地址为192.168.1.6,方法同端口F1/11配置过程。
(3) 配置说明和分析。
使用no switchport命令的目的是为了配置交换机端口的IP地址,因为交换机每个端口的初始状态都是开启着交换功能的状态,在这种状态下是不能配置端口IP地址的。尽管端口电源开关处于shutdown状态,如果不使用该命令停止交换功能,是不能设置端口IP地址的。
使用完该命令后还需要进行反向操作,使用switchport或者switch命令将交换能启动,并且使用no shutdown命令将端口的电源打开,才能真正地起到交换机的作用,与此同时还需要使用no cdp run命令,防止各个端口产生无用的广播包,产生广播风暴,从而影响交换机的广播域。
7. PC1与PC2相互ping
(1) 互ping操作结果
SW1配置完后,PC1与PC2相互ping操作,结果发现PC1与PC2能够相互ping通。
(2) 互ping操作结果分析
由于三层交换机同时具有交换和路由的功能,三层交换机的每个端口都是一个网关。在还没有配置网关的情况下是ping不通的,只有把端口IP地址与两个主机IP地址设置在相同网段上,两个主机才能够相互ping通。
8. VLAN配置
这里需要注意的是三层交换机存在划分VLAN的功能,而二层交换机不能进行VLAN的划分,三层的交换机的每个端口的IP地址是负责管理其他交换机,并且与路由器进行通信的,而二层交换机不能进行划分功能,只有一个VLAN——VLAN1,该VLAN是用来负责对各个端口进行管理的,也可以对其进行IP地址的分配。
(1) SW1划分VLAN2和VLAN3
① 进入SW1配置界面: 在控制台输入“telnet SW1”命令。
② 创建VLAN2,如图514所示。


图514创建VLAN2



③ 创建VLAN3,如图515所示。


图515创建VLAN3



④ 激活VLAN2,如图516所示。


图516激活VLAN2



⑤ 激活VLAN3,如图517所示。


图517激活VLAN3



⑥ 进入接口f1/11,设置F1/11到VLAN2,如图518所示。


图518设置F1/11到VLAN2



⑦ 进入接口f1/12,设置F1/12到VLAN3,如图519所示。


图519设置F1/12到VLAN3



⑧ 查看配置是否成功
配置完成后,使用Show runningconfig命令查看配置是否成功,如图520所示。


图520查看配置情况



(2) 设置VLAN2和VLAN3后的互ping
① 互ping结果: PC1与PC2相互没有ping通,如图521所示。


图521PC1 ping PC2结果



② 分析
PC1 ping PC2没有通说明VLAN2G与VLAN3的设置是成功的,说明当配置完VLAN2和VLAN3以后,相比未划分VLAN之前,用主机PC1去ping主机PC2是不能ping通的,PC2去ping主机PC1也是不能ping通的。
(3) 都设置成VLAN2的互ping
① 重新配置SW1的f1/12端口,如图522所示。


图522把F1/12改到VLAN2



② 输入“Show runningconfig”命令查看配置是否成功,如图523所示。


图523查看配置情况



③ 互ping结果: PC1与PC2相互能够ping通,如图524所示。


图524PC1 ping PC2结果



④ 分析。
当把F1/12的VLAN3改成VLAN2之后,PC2可以ping通PC1,明显看出了划分VLAN的作用。
本 章 小 结

本章介绍了模拟路由器与交换机工作的模拟器Dynamips,内容包括Dynamips的使用方法、利用Dynamips的路由器模拟实验以及交换机模拟实验。通过模拟软件的使用,能够加深对路由器与交换机工作原理的理解,也能加深对网络拓扑结构的理解。
在教学上,本章的教学目的是让学生掌握如何使用Dynamips模拟器来模拟路由器与交换机。本章的重点与难点是通过两个模拟实验来学习Dynamips模拟器的启动方法和配置方法。
习题

1. Dynamips工作原理是什么?
2. 启动设备的命令是什么?
3. 查看设备名称、型号、当前状态、服务端口等信息的控制台命令是哪一个?
4. no shutdown命令的作用是什么?
5. 每个设备的idlepc值的含义是什么?