Chinaunix首页 | 论坛 | 博客
  • 博客访问: 722959
  • 博文数量: 256
  • 博客积分: 3502
  • 博客等级: 中校
  • 技术积分: 3988
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:13
文章分类

全部博文(256)

文章存档

2014年(11)

2013年(134)

2012年(111)

我的朋友

分类: BSD

2012-05-15 19:58:56

前两天不是从哪个网站看到dynamips这个CISCO 7200硬件模拟器,一看到这个就觉得这个很有搞头,这两天安装来用了一下,感觉很好,所以顺便写一篇BLOG记下安装过过程,也分享给有类似需求 的朋友!
                        简介:
                        FreeBSD的好话就不多说了,效能高,内核占用资源小…………
dynamips一种模拟CISCO路由器硬件环境的软件,可在linux,windows,freebsd系统上。当然其它的模拟软件也很多,学过 CISCO的朋友肯定用过一些。但其它模拟软件都只是模拟一些针对NA/NP考试的命令,拓扑要么固定,要么不 是很稳定,命令不全,运行命令时和真实 路由器也还是有一些差别的。而dynamips 模拟的是CISCO的硬件环境,也就是说可以直接运行CISCOIOS,运行和真实路由器完全相同。而且模拟7200/3600这些作为学习CISCO认 证的朋友,难以得到实际操作机会的高端机型。我了解到这些后也是相当兴奋的。
                        dynagen 是一种dynamips的前端管理工具,利用它可以方便的建立多个路由器的实验环境。只是一个使dynamips更易于配置和管理的工具,它并不是必须 的,但我强烈推荐。
                        
                              优点:真接运行CISCO IOS,再现真实环境;可运行于linux,FreeBSD,Windows 等各种操作系统,可自己灵活定制各种拓朴结构。
                              缺点:对硬件(在运行多台路由器时CPU和内存要够好)要求高,配置较其它路由器模拟软件麻烦一些。
                        

                        软件安装:
                              安装FreeBSD
                              cvsup 更新ports树(FB6.1更新ports后才有dynagen)
                              安装dynamips
                        bsd# cd /usr/ports/emulators/dynamips/
                        bsd# make install clean
                        
                              安装dynagen
                        
                        bsd# cd /usr/ports/emulators/dynagen/
                        bsd# make install clean
                        
                        准备CISCO IOS(这步我是先前在Windows XP里做的,FreeBSD中也可以完成)
在网上搜一下,如果下载的IOS是RAR文件,先用windows里的winrar先解开为.bin文件,一般bin文件也是经过压缩的,这个文件应该还 可以解压,把这个文件直接拖到winrar上或是把此文件的扩展名改成zip,再用winrar解压得到的应该就是未压缩的IOS文件了,把IOS文件完 全解压的目的是 不要让路由器在启动的时候解压IOS文件,可以大大加快路由器的启动速度。
                        
                        准备拓扑文件
                        最好在网上找一些现成的拓扑文件,基本了解了之后,再自己搞拓朴更好此,如果找不到就先用dynagen带的示例文件,位置如下:
                        %pwd
                        /usr/local/share/examples/dynagen/sample_labs
                        %ls
                        all_config_options.txt  frame_relay               simple1
                        ethernet_switch           multiserver               simple2
                        %
                        参考文档:
                        对于 dynagen的基本了解可以看一下dynagen的文档,位置如下:
                        %ll
                        total 78
                        -r--r--r--  1 root  wheel  76637  1  5 15:21 tutorial.htm
                        drwxr-xr-x  2 root  wheel     1024  1  5 15:21 tutorial_files
                        %pwd
                        /usr/local/share/doc/dynagen
                        %

                        下面来个我做的拓朴,可以做 CCNP的路由实验,和BSCI实验手册上的拓朴是相同的。
                        

                        

                        
                        
                        
                        一般来说需要修改的地方我加了简单注释

                        autostart = false     #启动dynagen时不自动启动路由器,如果配置文件中路由器较多时自动启动,系统会很久没有响应,还是手动一个一个来好了。
                        [localhost]
                        port = 7200
                        udp = 10000
                        workingdir =     /home/xiao/dynagen/tmp/  #在dynagen运行时会生成很多文件,指定一个目录让它们都在一块,以方便管理
                        
                        
                        [[3640]]         #这一小节是全局模块配置
                        image = =/home/xiao/dynagen/IOS/c3640-telco-124-13.bin  #指定IOS文件,注意要用绝对路径,我使用~ /dynagen类似的路径时,工作不正常
                        ram = 64        #一台路由器使用的内存大小,IOS的具体要求可查相关资料
                        confreg = 0x2102 #如果想启动时不加载以前的配置文件,就改这个寄存器器为0x2142
                        idlepc = 0x6100bf2c  #针对不同的IOS要重新计算此数,详见上面提到的dynagen文档
                        exec_area = 64
                        mmap = false
                        slot1 = NM-4T     #所有路由器都加了个4个串口模块,用来连接帧中继

                              [[router BBR1]]
                        model = 3640
                        s1/0 = FR 3
                        e0/0 = SW 5

                              [[router BBR2]]
                        model = 3640
                        # slot2 = PA-A1      #ATM模块,平时没用的注释起来
                        s1/0 = FR 4
                        e0/0 = SW 6

                        
                              [[router R1]]
                        model=3640
                        s1/0 = FR 1
                        s1/1 = R2 s1/1
                        e0/0 = R3 e0/0
                        e0/1 = SW 1

                              [[router R2]]
                        model=3640
                        s1/0 = FR 2
                        e0/0 = R4 e0/0
                        e0/1 = SW 2

                              [[router R3]]
                        model=3640
                        s1/0 = R4 s1/0
                        e0/1 = SW 3

                              [[router R4]]
                        model=3640
                        e0/1 = SW 4

                              [[FRSW FR]]     #软件自带的帧中继交换,不用你再自己用路由器来配置了
                        1:102 = 2:201
                        1:103 = 3:301
                        1:104 = 4:401
                        2:203 = 3:302
                        2:204 = 4:402
                        3:304 = 4:403

                              [[ethsw SW]] #这个交换机有两个VLAN,从逻辑上隔离不同功能
                        1 = dot1q 2
                        2 = dot1q 2
                        3 = dot1q 2
                        4 = dot1q 2
                        5 = dot1q 1
                        6 = dot1q 1
                        7 = dot1q 1 NIO_tap:/dev/tap0 #连接到本机的接口上,以方便在本机运行tftp,ACS等
                        
                        
                        准备目录,为dynagen指定一个目录管理方便些,我喜欢在xiao这个用户的$home目录下运行dynagen所以建了下面这些目录:
                        /home/xiao/dynagen  dynagen的主目录,相关文件都在这里,拓扑文件也直接存在这里了
                        /home/xiao/dynagen/IOS 把IOS 文件放在这里
                        /home/xiao/dynagen/tmp 存放dynagen运行时生成的文件,可以保存路由器的设置,所以要根据需要清空。

                        
                        
                        运行dynagen
                        
                        运行dynagen前先要运行dynamips于服务器模式(这里我走了一个弯路,先以为直接运行dynagen会自己启动dynamips,结果浪费 了不少时间)
                        在gnome中开一个终端
                        %dynamips -H 7200
                        Cisco 7200 Simulation Platform (version 0.2.5-x86)
                        Copyright (c) 2005,2006 Christophe Fillot.
                        
                        Hypervisor TCP control server started.
                        
                        保持第一个终端运行状态,再开一个终端运行dynagen
                        
                        %dynagen       3640.net         #3640.net是上面贴的拓扑文件的文件名
                        
                        Reading configuration file...

                        Network successfully loaded
                        Dynagen management console for Dynamips
                        Copyright (c) 2005-2007 Greg Anuzelli

                        => list
                        Name         Type         State        Server            Console
                        BBR1         3640         stopped      localhost:7200  2000
                        BBR2         3640         stopped      localhost:7200  2001
                        R1           3640         stopped      localhost:7200  2002
                        R2           3640         stopped      localhost:7200  2003
                        R3           3640         stopped      localhost:7200  2004
                        R4           3640         stopped      localhost:7200  2005
                        FR           FRSW         always on  localhost:7200  n/a
                        SW           ETHSW        always on  localhost:7200  n/a
                        => ?
                        
                        Documented commands (type help ):
                        ========================================
                        clear     filter  idlepc  push      resume  shell  stop       ver
                        exit      help      import  py        save      show     suspend
                        export  hist      list      reload  send      start  telnet
                        
                        =>
                        
                        到这步就自己看着办了,可用的命令在上面,对路由器的start,stop,telnet都是在这里操作。

                        export,import 也很实用的,自己慢慢研究了。
                        不过在使用软件前最好计算好idelpc值,详细介绍请看dynagen的教程,不然运行一台路由器CPU占用也是100%,没办法运行很多台。
                        
在 我的机器上(R52: pm 1.86G,1G + FreeBSD6.1+gnome),运行以上配置start/all设备可以全部正常启动,不过CPU也占用100%够受的。相同的配置在 windows中运行windows版本的这个软件只能启动6台路由器,当然CPU也是100%占用,内存也没有剩的。不过完全启动后,CPU会降下来不 少的。看来机器足够好完全能够做自己的试验室,而且在这方面FreeBSD确实要强一些。

                        如果想节约CPU和内存资 源,选择合适的IOS很重要,最好能够满足实验要求的情况下,使用占用内存更少的IOS,并且可以多试试不同的idlepc值
                        

                        
                        

                        -----------2008.5.16
                        

                        使用tap0和本地主机通信
                        修改 /boot/default/loader.conf 里面有一项if_tap_load="NO"修改为YES,以使开机可以自动加载if_tap模块。
                        在/etc/rc.conf 里面为tap0接口配置一个IP地址
                        在dynagen配置文件里 面使用NIO_tap:/dev/tap0来连接到本地接口,注意这里使用了设备文件的绝对路径
                        使用root用户来启动 dynamips server,不然如果使用了tap0接口会提示没有权限。
                        我现在的方法是使用sudo 来运行dynamips,以普通的用户来运行dynagen.
阅读(1529) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

星期五啦2012-05-17 21:04:18

呵呵,很好的文章~值得一看~~

小蝌蚪1232012-05-16 21:11:25

cisco交换机模拟器哪个好用?求指导

夏冰软件2012-05-16 16:45:42

写的不错,支持一下