一、GNS3简介

1.1 GNS3简介

  GNS3是一款具有图形化界面可以运行在多平台(包括Windows, Linux, and MacOS等)的网络虚拟软件。Cisco网络设备管理员或是想要通过CCNA,CCNP,CCIE等Cisco认证考试的相关人士可以通过它来完成相关的实验模拟操作。同时它也可以用于虚拟体验Cisco网际操作系统IOS或者是检验将要在真实的路由器上部署实施的相关配置。

wKiom1Va8pKBZkLVAAhmy7SpHK4967.jpg

  Windows平台下的安装配置非常简单,下载一体化的安装包安装就可以了。但是考虑系统的资源和兼容性,linux平台是最好的选择,以下的安装配置基于debian的64位系统和GNS1.3.2版本。

1.2 参考资源

http://www.gns3.com/

http://7200emu.hacki.at/viewforum.php?f=15

https://github.com/GNS3

二、GNS3安装及配置

2.1 前期准备

  在使用apt-get指令前建议先设定好linux软件源(考虑实际情况,国内推荐使用163或是阿里云的源,具体可以参考http://waringid.blog.51cto.com/65148/904201)。需要注意的是源中的版本保持和实际应用的版本保持一致(同时注意32位和64位版本的区别)。163源的参考链接:http://mirrors.163.com/.help/debian.html

  首先配置好接下来要用到的系统编译和编辑工具,如下所示:

sudo apt-get install build-essential cmake curl git vim

2.2 安装python3.4

  新版本的GNS3使用的是python3(最好是python3.3以上版本),通过apt-get升级后的python版本是python-3.2。我们可以安装3.4的版本,如下所示。

wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
tar xvf Python-3.4.3.tgz
cd Python-3.4.3
./configure
make
sudo make install

2.3 安装QT4支持文件

  GNS3在linux下的图形显示依赖QT4,以下指令用于安装QT4的支持包,如下所示。

sudo apt-get install qt4-qmake libqt4-dev

2.4 配置Python运行环境

  正常情况下系统中存在多个版本的python,如下图所示。为了确保安装GNS3使用的是新版本的python环境,通过以下指令实现。

wKioL1Va9LPDH-U3AAEUcl50ucE024.jpg

pyvenv ~/gns3v1-python
source~/gns3v1-python/bin/activate

wKioL1Va9M6RWMIlAAN1nAkXVe8391.jpg

2.5 安装sip包

  sip包是python用于调用的扩展库,详情参考:http://www.riverbankcomputing.com/software/sip/intro

  如果SIP没有安装或GNS3无法正确调用,它在启动的时候会提示找不到SIP或是调用SIP失败。

wget http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.7/sip-4.16.7.tar.gz
tar xvf sip-4.16.7.tar.gz
python configure.py
make 
sudo make install

2.6 安装PyQt4包

wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz
tar xvfPyqQt-x11-gpl-4.11.3.tar.gz
cd PyQt-x11-gpl-4.11.3/
python configure.py
make
sudo make install

2.7 安装pip支持包

  pip是python下安装扩展包的工具,GNS3需要调用很多的python扩展组件,可以通过以下指令安装。pip要和python的版本对应。

sudo apt-get install python3-pip
sudo pip install --upgrade pip-3.2
sudo pip-3.2 install --upgrade pip

wKioL1Va9USgB0F0AAIl9t-VSpQ092.jpg

2.8 安装GNS3

  可以通过下载GNS3源码包的方式编译安装,也可以通过pip指令方式安装,以下内容以pip方式安装。

sudo pip install gns3-server
sudo pip install gns3-gui
pip freeze

wKioL1Va9Wbi8viaAAFfcl8J3dE413.jpg

2.9 安装dynamips

  Dynamips的原始名称为Cisco 7200 Simulator,源于Christophe Fillot在2005年8月开始的一个项目,其目的是在传统的PC机上模拟(emulate)Cisco的7200路由器。发展到现在,该模拟器已经能够支持Cisco的3600系列(包括3620,3640,3660),3700系列(包括3725,3745)和2600系列(包括2610到2650XM,2691)路由器平台。

git clonegit://github.com/GNS3/dynamips.git
sudo apt-get installlibelf-dev uuid-dev libpcap0.8-dev
cd dynamips
mkdir build
cd build
cmake ../
sudo make install

wKiom1Va9BOheeqTAAKf3uEZIBI712.jpg

2.10 启动gns3

  如果所有的组件都已正常安装,接下来在图形界面下的终端输入gns3就可以启动应用了。

wKioL1Va9aDjH0d7AAhJMH-fTbA936.jpg

三、gns3配置

  gns3安装并成功启动后,需要对其进行相应的设置才能确保网络模拟正常使用,首先需要配置的是IOS路由器。

3.1 GNS3基本配置

  点击“edit”-“preferences”找到“general”检查相关设置是否正确,可以根据实际系统的配置和自己的喜好设置,例如“console application”中我把telnet的指令设成Gnome terminal,设置好后如图所示。

wKioL1Va9dPDH6OpAALZoDoKXKA737.jpg

  “edit”-“preferences”找到“server”主要用于设置系统和console绑定的端口。通过设定相应的端口,远程用户可以telnet主机的制定端口进行配置。

3.2 配置IOS路由

  gns3通过图形界面调用dynamips来实现对cisco路由器的模拟操作,它可以模拟的设备可以参考dynamips的指令说明。

  cisco路由器的映像可以通过各种不同的方式获取,网上有很多这样的下载地址。可以先将下载好的IOS映像解压(这样运行时占用的资源更少),如下所示。

unzip -pc2691-adventerprisek9_sna-mz.124-13b.bin >c2691-adventerprisek9_sna-mz.124-13b.p_w_picpath

wKiom1Va9KLhqh7BAADgMebqBSE236.jpg

  点击“edit”-“preferences”找到“dynamips”检查相关设置是否正确,然后选取“IOS routers”找到已解压好的IOS映像,设置好后如图所示。

wKioL1Va9iyzu9AdAAP7JC-QAzA543.jpg

  需要注意的是Idle-PC值的选取,只有配置了合适的idle-pc值,dynamips的运行才正常(CPU的值在20%以内),如果CPU占用过高可以重新获取idle-pc值。

wKiom1Va9MGQ3qsfAAU1is4WNX4723.jpg

回到gns3界面选择刚配置好的路由器(例如C2691)拖至中间空白区域,然后选中它右击“start”启动,启动后可以选择“console”进入配置模式。

wKioL1Va9lXxsk8tAAHqXjOFT8o759.jpg

wKioL1Va9lXA_EPzAANTBKplGIM847.jpg

3.3 配置qemu

  QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。

  由于它可以模拟 IA-32 (x86)个人电脑,AMD64个人电脑, MIPS R4000, 升阳的 SPARC sun3 与 PowerPC (PReP 及 Power Macintosh)架构,因此在GNS3下可以用它来模拟PIX或是JunOS的设备。

wKiom1Va9PeTVvgWAAUSRkTZ3Cw262.jpg

  如果需要qemu支持sparc以及spice先要按照对应的支持组件和工具,否则在编译的时候会提示找不到指定的命令或链接库文件。如下所示:

sudo apt-get installlibncurses5 libncurses5-dev
sudo apt-get installlibglib2.0-dev zlib1g-dev
wget http://www.spice-space.org/download/releases/spice-0.12.5.tar.bz2
wget http://www.spice-space.org/download/releases/spice-protocol-0.12.7.tar.bz2、
tar xvfspice-protocol-0.12.7.tar.bz2
cd spice-protocol-0.12.7/
./configure
make
sudo make install
tar xvf spice-0.12.5.tar.bz2
cd spice-0.12.5/
./configure

  安装spice组件的时候如果提示找不到celt组件(编译时)或者在编译完成时提示可能没有libogg组件就需要安装对应的程序。

wget http://downloads.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
tar xvf celt-0.5.1.3.tar.gz
./configure
make
sudo make install
sudo apt-get installlibogg-dev libogg python3-pyparsing python-pyparsing libjpeg-dev
sudo apt-get installlibsasl2-2 libsasl2-dev libjpeg
cd spice-0.12.5/
make
sudo make install
git clonegit://git.qemu-project.org/qemu.git
cd qemu/
./configure--target-list=i386-softmmu,sparc-sfotmmu,x86_64-softmmu,sparc64-softmmu--enable-spice --enable-kvm
make
sudo make install

wKiom1Va9R2SUl33AADMqbD76Ic444.jpg

  GNS3下qemu的使用基于图形界面,在实际的应用中也可以通过命令行的方式进行设置。

wKiom1Va9SyRLTviAALFwJUOhZw096.jpg

qemu-img create tinycore.img512M
qemu-system-x86_64
 -hdatinycore.img -m 512 -cdrom tinycore-current.iso -boot d -net nic 
-netuser,hostfwd=tcp:127.0.0.1:8008-:80 -vnc 127.0.0.1:0 –daemonize

  tinycore是一个很小的图形化的linux系统,而且提供完整的网络功能,对于硬件的要求也很低,实在是网络功能模拟测试的必备产品,参考地址:http://www.tinycorelinux.net/。

  “qemu-img create”用来创建512M的硬盘文件;“-had tinycore.img”指的是加载之前创建的硬盘文件;“-m 512”表示分配512M内存;“-cdromtinycore-current.iso –boot d”说明启动的时候加载光驱文件;后面的意思指的是启用网卡并使用VNC连接。

3.4 配置tinycore

  tinycore使用的是linux内核,启动后打开该设备的console如下图所示。初始的用户名是tc,无密码直接回车就可以,如果需要设置系统的网络地址要在指令前加sudo命令。

wKiom1Va9U-zVFknAAJgCfJzzFk367.jpg 

  常用的命令主要是ifconfig和route用来设置该系统的IP地址和网关路由。例如将eth0网卡设成192.168.1.2/24,网关为192.168.1.254。

sudo ifconfig eth0 192.168.1.2netmask 255.255.255.0
sudo route add default gw192.168.1.254

  很多初次使用tinycore的用户认为这个系统无法保存IP设置,因为重启后所有的设置都恢复为初始设置。其实tinycore是可以保存相关设置的,方法是将IP地址的设置写入它的启动文件/opt/bootlocal.sh然后通过filetool.sh –b的指令备份,这样系统就会在启动是加载备份的启动文件实现IP地址的保存。

wKioL1Va9vGBDmfRAAHwOW6qx4g383.jpg

3.5 配置vpcs

  vpcs主要用来模拟PC的网络操作,它的功能最简单,只有基本的网络指令,没有qemu下的tinycore的功能多。但是vpcs占用的资源更少,启动速度更快。需要注意的是vpcs没法单独启动,一定要将网线连接后才可以进入console界面。http://sourceforge.net/projects/vpcs/

  安装也很简单,如下所示:

wget http://downloads.sourceforge.net/project/vpcs/0.6/vpcs-0.6-src.tbz
tar xvf vpcs-0.6-src.tbz
cd vpcs-0.6/
./src/mk.sh 64

  安装成功后,在gns3的设置界面选取VPCS的选项,找到已经编译好的vpcs执行文件,如下图所示。

wKioL1Va9yniPhCyAAEApEjzt_w835.jpg

wKioL1Va9ynxjkboAAR0jQkSQJU788.jpg

  vpcs的IP地址设置通过ip指令实现。可以通过show ip的命令来查看当前机器的IP情况。例如将本机的地址设为192.168.1.2可以通过“ip 192.168.1.2 255.255.255.0”的方式实现。

wKiom1Va9czx6uUiAAGMbDqqCqo389.jpg

wKiom1Va9czjNuU0AAUzYdOtLxA296.jpg

3.6 网络抓包配置

  抓包主要作用是查找、定位网络通讯中存在的问题,一般情况下可以是额头tcpdump或是wireshark。tcpdump主要的操作方式通过命令行,wireshark提供图形界面,操作及查看方式更加直观,这里以wireshark为例。

sudo apt-get install wireshark

  安装成功后,GNS3的配置如下图所示。

wKioL1Va93LxSR_yAAFusCsGq3A699.jpg

  在需要抓包的设备上右键选择“Capture”进行抓包操作,如果设备有多块网卡会提示选择那块,如下图所示。

wKioL1Va95zQwg0TAABuaeDJtLw914.jpg

wKiom1Va9iPx5lfBAAf666hwPs8774.jpg

3.7 配置VirtualBox

  VirtualBox是一款开源的虚拟机,在GNS3中可以配置虚拟的PC主机或是导入相关网络实验的虚拟机组件,例如IOU或其他的虚拟机。

wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
sudo apt-key addoracle_vbox.asc
sudo apt-key list
sudo apt-get update
sudo apt-get installvirtualbox-4.3
sudo apt-get install dkms
sudo /etc/init.d/vboxdrv setup

  安装成功后在console状态下(也可以在应用程序中找)输入“virtualbox”启动,如下图所示。

wKioL1Va982xRpjRAAL4rMgcCCQ624.jpg

 




本文的手册下载:http://down.51cto.com/data/2048273