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互通,形成一个大型的网络
 
1.创建路由器
首先我们要创建这3台路由器,并使它们互联,VMware虚拟机也要和各自的路由器互连,这里可以用到一个可视化的辅助工具DynamipsSee(注意:DynamipsSee需要.net framework 2.0支持)
DynamipsSee V2.0下载地:http://down.51cto.com/data/558892
打开软件后,我们点【添加3600】,来添加一台3600系列的路由器
如图添加路由器【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

如图添加路由器【BJ】
如图添加路由器【SH】
2.连接路由器和虚拟机
3台路由器都添加完成后,就要将它们连接起来,这里按照拓扑图来连接,路由器【Internet】的【E0/0】接口与路由器【BJ】的【E0/0】接口相连;路由器【Internet】的【E0/1】接口与路由器【SH】的【E0/0】接口相连,连接好后点【生成脚本】
这里可以看到3台路由器的相关配置,但别急着保存,此时路由器【BJ】的【E0/1】接口和路由器【SH】的【E0/1】接口还需要与各自站点内VMware虚拟机的VMnet网络进行桥接
在VMware控制台中,打开虚拟机【bjdc】的设置页,可以看到网络适配器位于VMnet4这个网络
同样再打开【shdc】的设置页,可以看到网络适配器位于VMnet6这个网络
我们想要得了VMnet4和VMnet6的网络相关参数,就需要使他们出现在计算机的网络连接中
在VMware管理台中菜单中打开【edit】-【Virtual Network Editor】,点击【Add Network】添加VMnet4这个网络
勾选【Connect a host Virtual adapter to this on network】
按同样的方法添加和设置VMnet6
点【ok】确认后,打开计算机网络连接,可以看到这两个网络出现了
安装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 device list.cmd】,这里就捕获到VMnet4和VMnet6网络参数了,我们主要会用到NIO_gen_eth这段
根据拓扑图中的连接
【路由器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}
修改完成后,所有硬件连线这部分也就完成了,将此脚本保存到D:\Dynamips\net文件夹中,名称为***.net,为了方便的使Dynamips加载这个***.net脚本,我们来写一个简单的批处理
“..\dynagen.exe” ***.net表示用上级目录中的dynagen程序来加载***.net脚本
3.启动路由器
首先运行D:\Dynamips文件下的Dynamips.exe
然后运行批处理***.bat,在出现提示符后输入start /all,以启动3台路由器
待3台路由器都启动后,就需要对路由器进行管理配置了,这里用到的工具是SecureCRT
SecureCRT 5.1.3 下载地址:
http://down.51cto.com/data/558893
打开SecureCRT,弹出快速连接卡片;这里通过【Telnet】协议连接本机【127.0.0.1】的【3000】端口,也就是连接到路由器【Internet】,如过不记得路由器的管理端口可以打开***.net文件查看console的值
连接后,为了更好的辨别路由器,我们为标签重新命名
再次打开快速连接卡片,通过【3001】端口连接到路由器【BJ】
通过【3002】端口连接到路由器【SH】
修改标签后的效果一目了然,要配置哪台单击标签即可
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】,也可以通了
通过在路由器【BJ】上用debug ip nat命令来跟踪NAT,可以看到我们的内部地址是通过NAT转换为公网地址后到达路由器【Internet】的
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
现再通过【shdc】ping 【bjdc】,发现是不通的,这是由于我们路由器【SH】上的×××部分还没有配置
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搭建站点到站点×××环境就全部做完了

转载于:https://blog.51cto.com/jqq1982/1021022

Dynamips结合VMware搭建站点到站点×××环境相关推荐

  1. 如何用VMware搭建HA和DRS环境(第一篇;序)

    你是不是经常遇到VMware 的HA不能正常的被配置,总有一个感叹号出来告诉你没有配置成功,说什么"HA Agent ... error",其实这些都是由一些小的配置错误引起的. ...

  2. 基于 Vmware 搭建 Ubuntu Server 编译环境(Samba + SSH + Git)

    本人主要从事 android 系统开发相关工作,日常工作中经常要搭建源码编译环境.除了 Android 源码需要在 Linux 系统下编译,一些第三方的库也要在 Linux 环境下编译,比如 FFmp ...

  3. 在Win7上用VMWare搭建iOS/iPad开发环境

    本文记录了在Win7上用VMWare 9安装Mac OS X Lion 10.7.5的过程,如果你想学习观摩一下iOS的开发,并且和我一样是无MAC的码农屌丝,可以参考一下. 1.物理机配置及操作系统 ...

  4. 搭建一个jupyter站点做数据分析吧

    jupyter jupyter 是一个非常适合做数据分析的工作台.为了可以使得jupyter可以运行在服务器上访问生产环境的数据,今天我要在服务器上搭建一个jupyter站点. 容器 为了不和线上的其 ...

  5. 云服务器搭建个人站点-之-站点搭建

    个人云服务器的用处 背景 现状 目的 环境说明 安装 docker 安装 docker 安装 安装docker-compose 网盘部署 博客部署 jenkins部署 网页代理服务器安装 站点部署 背 ...

  6. 用hosting.json配置ASP.NET Core站点的Hosting环境

    通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program {pu ...

  7. 使用 VMware + win10 + vs2019 从零搭建双机内核调试环境

    我在前面的文章--<使用 VMware + win10 + VirtualKD + windbg 从零搭建双机内核调试环境>分享了使用 windbg 进行双机内核调试的环境搭建的步骤. 有 ...

  8. 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境

    通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...

  9. 构建嵌入式系统软件开发环境-VMware的安装及搭建嵌入式Linux开发环境

    嵌入式系统操作系统 目前流行的嵌入式操作系统主要有VxWorks.WindowsCE.Linux等,由于Linux的源码开放性.内核可裁剪性.在图像处理.文件管理及多任务支持等诸多方面的特点,使得它成 ...

最新文章

  1. 3G,三足鼎立;花开千朵,各表一枝!!!
  2. javascript js jquery获取元素位置代码总结
  3. 配置OpenCV的Qt开发环境
  4. ansible获取linux信息,ansible 获取系统信息的一些范例,ansible系统信息
  5. 2015Cocos游戏开发大赛作品——人鱼塞壬
  6. [概率论]如何通俗地理解“最大似然估计法”?
  7. MyBatis关联映射
  8. wiley期刊AMA-lato,latex字体安装问题
  9. android ios emoji表情,iOS和Android的Emoji表情同步方案
  10. 用Prolog解决数独
  11. linux戒游戏下载,苍月之戒手游下载-苍月之戒公测版v1.0-Linux公社
  12. RTX客户端插件开发 for Delphi XE6 (二)
  13. 营业执照、组织机构代码、税务登记号规则
  14. 收视率和收视份额的区别
  15. 继续树莓派4B+OLED:开机自动显示IP地址
  16. 汇编语言程序教程:从入门到精通!
  17. tailgate and piggyback
  18. Cytoscape作图,边和节点的颜色设置
  19. 安润网提供的游戏下载,您可以到安润网的论坛中下载,无须注册。
  20. Pytorch实现ResNet(DIY版)

热门文章

  1. linux网络编程之TCP三次握手和四次挥手
  2. LeetCode【9-- 回文数】LeetCode【10 --正则表达式的匹配】
  3. C++学习之普通函数指针与成员函数指针
  4. 从0到1写RT-Thread内核——支持多优先级
  5. oracle 查看库表状态
  6. scrapy框架的理解
  7. numpy 和tensorflow 中的乘法
  8. python基础03——数据类型string
  9. [LeetCode] #22 Generate Parentheses
  10. 公共的Controler,是给非授权的用户访问