Dynamips是现如今最好的思科模拟器,它能够加载的思科IOS,模拟出真实的路由器,这使得我们在没有思科设备的情况下也能很好的学习,Dynamips的强大之处不仅于此,它还能与我们的VMware虚拟机,甚至和真机实行互连,在下面这个拓扑环境中,路由器BJ和SH分别担任北京公司和上海分公司的边界路由器,Internet属于公网上的一台路由器,我们将利用Dynamips来模拟这3台路由器,北京公司的内部网段规划为192.168.3.0,bjdc是北京公司内部服务器,它由VMware虚拟机来模拟,网卡位于VMnet4,上海公司的内部网段规划为192.168.2.0,shdc是上海分公司内部服务器,网卡位于VMnet6,VMnet可以把它理解为一个虚拟网络,Dynamips在和VMware虚拟机桥接时就要用到VMnet,我们这个实验的最终目的是在路由器BJ和SH上建立站点到站点×××,从而使北京公司内部的bjdc与上海分公司内部的shdc互通,形成一个大型的网络

spacer.gif


1.创建路由器

首先我们要创建这3台路由器,并使它们互联,VMware虚拟机也要和各自的路由器互连,这里可以用到一个可视化的辅助工具DynamipsSee(注意:DynamipsSee需要.net framework 2.0支持)

DynamipsSee V2.0下载地:http://down.51cto.com/data/558892

打开软件后,我们点【添加3600】,来添加一台3600系列的路由器

02


如图添加路由器【Internet】,类型选择3620,IOS也要加载相应3620的,Idle-PC值比较重要,它选得好不好会直接影响到计算机性能,在通过Dynamips启动路由器后,可以重新选择这个值,这里我已经选好了,Console为本路由器的管理端口,模块处的NM-4E,表示本路由器有4个Ethernet口,设置完毕后,点【应用】就添加了一台路由器

IOS(c3620-ik9o3s7-mz.123-23.bin)下载地址:

http://down.51cto.com/data/558896

03


如图添加路由器【BJ】

04


如图添加路由器【SH】

05


2.连接路由器和虚拟机

3台路由器都添加完成后,就要将它们连接起来,这里按照拓扑图来连接,路由器【Internet】的【E0/0】接口与路由器【BJ】的【E0/0】接口相连;路由器【Internet】的【E0/1】接口与路由器【SH】的【E0/0】接口相连,连接好后点【生成脚本】

06


这里可以看到3台路由器的相关配置,但别急着保存,此时路由器【BJ】的【E0/1】接口和路由器【SH】的【E0/1】接口还需要与各自站点内VMware虚拟机的VMnet网络进行桥接

07


在VMware控制台中,打开虚拟机【bjdc】的设置页,可以看到网络适配器位于VMnet4这个网络

08


同样再打开【shdc】的设置页,可以看到网络适配器位于VMnet6这个网络

09


我们想要得了VMnet4和VMnet6的网络相关参数,就需要使他们出现在计算机的网络连接中

在VMware管理台中菜单中打开【edit】-【Virtual Network Editor】,点击【AddNetwork】添加VMnet4这个网络

08


勾选【Connect a host Virtual adapter to this on network】

09


按同样的方法添加和设置VMnet6

10


点【ok】确认后,打开计算机网络连接,可以看到这两个网络出现了

11


安装Dynamips,Dynamips需要WinPcap支持

dynagen 11.0下载地址:

http://down.51cto.com/data/558891

WinPcap 4.11下载地址

http://down.51cto.com/data/561470


安装完成后我将Dynamips全部文件移动到D:\Dynamips文件夹中,运行【Network devicelist.cmd】,这里就捕获到VMnet4和VMnet6网络参数了,我们主要会用到NIO_gen_eth这段

12


根据拓扑图中的连接

【路由器BJ】的【E0/1】接口连接VMnet4,回到脚本中,如图在路由器【BJ】的最后写入E0/1 =NIO_gen_eth:\Device\NPF_{30D4A2AB-BB98-49DE-8E24-E4B1A0B742DE}

【路由器SH】的【E0/1】接口连接VMnet6,在路由器【SH】的最后写入E0/1 =NIO_gen_eth:\Device\NPF_{C0C946A6-9E6E-47F8-869B-3E548484C694}

13


修改完成后,所有硬件连线这部分也就完成了,将此脚本保存到D:\Dynamips\net文件夹中,名称为***.net,为了方便的使Dynamips加载这个***.net脚本,我们来写一个简单的批处理

“..\dynagen.exe” ***.net表示用上级目录中的dynagen程序来加载***.net脚本

14


3.启动路由器

首先运行D:\Dynamips文件下的Dynamips.exe

15


然后运行批处理***.bat,在出现提示符后输入start /all,以启动3台路由器

16


待3台路由器都启动后,就需要对路由器进行管理配置了,这里用到的工具是SecureCRT

SecureCRT 5.1.3 下载地址:

http://down.51cto.com/data/558893

打开SecureCRT,弹出快速连接卡片;这里通过【Telnet】协议连接本机【127.0.0.1】的【3000】端口,也就是连接到路由器【Internet】,如过不记得路由器的管理端口可以打开***.net文件查看console的值

17


连接后,为了更好的辨别路由器,我们为标签重新命名

18


再次打开快速连接卡片,通过【3001】端口连接到路由器【BJ】

19


通过【3002】端口连接到路由器【SH】

20


修改标签后的效果一目了然,要配置哪台单击标签即可

21


4.配置路由器

首先来配置路由器【Internet】,在SecureCRT切换到标签【Internet】,比较简单,按照拓扑图为两个接口配好IP地址

Router>enable

Router#configure  terminal

进入全局模式

Router(config)#hostname  Internet

修改路由器名称

Internet(config)#interface  e0/0

Internet(config-if)#ip  address 222.16.2.254 255.255.255.0

Internet(config-if)#no  shutdown

Internet(config-if)#exit

为接口e0/0配置IP地址

Internet(config)#interface  e0/1

Internet(config-if)#ip  address 202.0.1.254 255.255.255.0

Internet(config-if)#no  shutdown

Internet(config-if)#exit

为接口e0/1配置IP地址


接下来配置路由器【BJ】

Router>enable

Router#configure  terminal

进入全局模式

Router(config)#hostname  BJ

修改路由器名称

BJ(config)#interface  e0/0

BJ(config-if)#ip  address 222.16.2.1 255.255.255.0

BJ(config-if)#no  shutdown

BJ(config-if)#ip  nat outside

BJ(config-if)#exit

为接口e0/0配置IP地址

标记接口为NAT外部

BJ(config)#interface  e0/1

BJ(config-if)#ip  address 192.168.3.254 255.255.255.0

BJ(config-if)#no  shutdown

BJ(config-if)#ip  nat inside

BJ(config-if)#exit

为接口e0/1配置IP地址

标记接口为NAT内部

BJ(config)#ip  route 0.0.0.0 0.0.0.0 222.16.2.254

配置默认网关

BJ(config)#access-list  100 deny ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

BJ(config)#access-list  100 permit ip any any

BJ(config)#ip  nat inside source list 100 interface e0/0 overload

配置NAT


NAT配置完成后,启动【bjdc】这台虚拟机来验证一下,首先ping路由器的内部接口【192.168.3.254】,检查一下连通性,发现已经可以通了,再ping公网路由器【Internet】,也可以通了

22


通过在路由器【BJ】上用debug ipnat命令来跟踪NAT,可以看到我们的内部地址是通过NAT转换为公网地址后到达路由器【Internet】的

23


NAT配置好后还没完,继续配置IPsec ×××部分

BJ(config)#crypto  isakmp policy 10

BJ(config-isakmp)#hash  md5

BJ(config-isakmp)#group  2

BJ(config-isakmp)#authentication  pre-share

BJ(config-isakmp)#lifetime  3600

BJ(config-isakmp)#exit

BJ(config)#crypto  isakmp key zf address 202.0.1.1

BJ(config)#crypto  ipsec transform-set zf ah-md5-hmac esp-3des esp-md5-hmac

BJ(cfg-crypto-trans)#mode  tunnel

BJ(cfg-crypto-trans)#exit

BJ(config)#access-list  101 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255

BJ(config)#crypto  map *** 10 ipsec-isakmp

BJ(config-crypto-map)#set  peer 202.0.1.1

BJ(config-crypto-map)#set  transform-set zf

BJ(config-crypto-map)#match  address 101

BJ(config-crypto-map)#exit

BJ(config)#interface  e0/0

BJ(config-if)#crypto  map ***

配置IPsec  ×××


最后来配置路由器【SH】,和【BJ】的配置类似

Router>enable

Router#configure  terminal

进入全局模式

Router(config)#hostname  SH

修改路由器名称

SH(config)#interface  e0/0

SH(config-if)#ip  address 202.0.1.1 255.255.255.0

SH(config-if)#no  shutdown

SH(config-if)#ip  nat outside

SH(config-if)#exit

为接口e0/0配置IP地址

标记接口为NAT外部

SH(config)#interface  e0/1

SH(config-if)#ip  address 192.168.2.254 255.255.255.0

SH(config-if)#no  shutdown

SH(config-if)#ip  nat inside

SH(config-if)#exit

为接口e0/1配置IP地址

标记接口为NAT内部

SH(config)#ip  route 0.0.0.0 0.0.0.0 202.0.1.254

配置默认网关

SH(config)#access-list  100 deny ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

SH(config)#access-list  100 permit ip any any

SH(config)#ip  nat inside source list 100 interface e0/0 overload

配置NAT


同样验证一下NAT

24


25


现再通过【shdc】ping 【bjdc】,发现是不通的,这是由于我们路由器【SH】上的×××部分还没有配置

26


SH(config)#crypto  isakmp policy 10

SH(config-isakmp)#hash  md5

SH(config-isakmp)#group  2

SH(config-isakmp)#authentication  pre-share

SH(config-isakmp)#lifetime  3600

SH(config)#crypto  isakmp key zf address 222.16.2.1

SH(config)#crypto  ipsec transform-set zf ah-md5-hmac esp-3des esp-md5-hmac

SH(cfg-crypto-trans)#mode  tunnel

SH(cfg-crypto-trans)#exit

SH(config)#access-list  101 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255

SH(config)#crypto  map *** 10 ipsec-isakmp

SH(config-crypto-map)#set  peer 222.16.2.1

SH(config-crypto-map)#set  transform-set zf

SH(config-crypto-map)#match  address 101

SH(config-crypto-map)#exit

SH(config)#interface  e0/0

SH(config-if)#crypto  map ***

配置IPsec  ×××


两个站点路由器上的×××都配置完后,再次通过【shdc】ping【bjdc】,可以看了已经通了吧

到此,Dynamips结合VMware搭建站点到站点×××环境就全部做完了

27