做×××,我一直想搭建一个与生产环境接近的实验环境,不记得是那一天在网上闲逛看到有人把Dynamips与VMware结合来做实验,觉的这是一个很好的方法,就把这种方法用来做×××实验。我用工大瑞普的Full2版的Dynamips来模拟两台CISCO路由器,用VMware Workstation 7.0模拟出Open×××服务器端和客户端,如果想加一个防火墙,可以考虑把monowall(也是开源的免费的,也可以装到vmware workstation里),刚能模拟出生产环境,我这里没有加防火墙,相当于把Open***服务器放到DMZ区,实验的拓扑图如下:

***17

1,实验环境搭建:

(1)用Dynamips模拟两台cisco路由器并在f0/0口上配置IP,并配置相应缺省路由。

(2)VMware Workstation 一台安装ubuntu server 10.04,Open×××模拟服务器;一台装XP,open***-2.0.9-gui-1.0.3-install模拟×××客户端,IP为拓扑图上所示。

1.1 增加VMware Network Adapter VMnet3,及VMnet2

VMware Workstation 7.0安装完以后,默认有3个VMware Network Adapter,VMnet0用于桥接到物理网卡,VMware Network Adapter VMnet1为host-only,VMware Network Adapter VMnet8为nat。所以我们要增加两块VMware Network Adapter 。

第一步

***19 

第二步

***18

完成以上两个步骤,就会在实机上增加两块VMware Network Adapter,VMnet2设置IP为192.168.5.32,子网掩码为255.255.255.0;VMnet3的IP设置为192.168.4.31,子网掩码为255.255.255.0

1.2 Dynamips配置

如果是windows 7 系统就要安装WinPcap_4_1_2,Dynamips的安装使用在这就不说了。在修改Dynamips的net文件时要用到网卡参数,所以要先获取vmnet2,vmnet3的网卡参数。

在Dynamips的setup目录下有一个修改网卡参数.cmd文件,运行后,会出现以下图

***20

把vmnet2,vmnet3对应的网卡参数记到记事本里,然后修改ccna_stad.net文件,做以下改动

***21

就是把路由器R1的f0/0口接到VMnet3上,路由器R2的f0/0口接到VMnet2上。在路由器R1,R2上分别配置f0/0的IP及缺省路由即可。

到此,实验环境就搭建完了。

2, Open×××服务器端配置

2.1 配置eth0及桥接

#sudo apt-get install bridge-utils

#sudo vim /etc/network/interfaces

***23

#sudo /etc/init.d/networking restart

2.2 创建CA证书

第一步

#sudo apt-get install open***

#sudo mkdir /etc/open***/easy-rsa/
#sudo cp -R /usr/share/doc/open***/examples/easy-rsa/2.0/* /etc/open***/easy-rsa/
第二步 #sudo vim /etc/open***/easy-rsa/vars 做以下修改 ***24

 因为在/etc/open***/easy-rsa/vars里有以下设置 ***25
所以要在/etc/open***/easy-rsa/下建立keys这个目录,做为证书的输出目录。
#sudo mkdir /etc/open***/easy-rsa/keys
第三步
#cd /etc/open***/easy-rsa/
#sudo chown -R root:admin .
#sudo chmod g+w .
#source ./vars
#./clean-all
#./build-dh
#./pkitool –-initca
#./pkitool --server server
#cd keys
#open*** --genkey --secret ta.key
#sudo cp server.crt server.key ca.crt dh1024.pem ta.key /etc/open***
但是我在创建服务器证书和密钥(#./pkitool --server server )时,出现了以下错误: ***-error
在网上找到一上午也没找到解决方法,就用了在windows 下最常用的方法,重新启动,嘿,重头来一次问题竟解决了,一切正常了。
第四步
配置open***服务

#sudo cp  /usr/share/doc/open***/examples/sample-config-files/server.conf.gz  /etc/open***
#cd /etc/open***
#sudo gzip –d server.conf.gz
#sudo vim server.conf ***26
重启OPEN×××服务
#sudo /etc/init.d/open*** restart

第五步 创建客户端证书和密钥

#cd /etc/open***/easy-rsa/
#source ./vars
#./pkitool www (www为客户端证书名)
会产生www.crt,  www.key两个文件。

3,Open***客户端配置

3.1 安装open***-2.0.9-gui-1.0.3-install,去http://open***.se/download.html下载,然后安装就是了,我安装到c:\program files\Open×××目录下。

安装完成以后,会增加一块名为TAP-Win32 Adapter V8的网卡。

***01

3.2 配置×××服务

把c:\program files\open***\sample-config里的client.o***复制到c:\program files\open***\config目录下,并做以下修改。

client
dev tap
proto udp
remote 192.168.4.33 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert www1.crt
key www1.key
verb 3

把Open***服务器上的ca.crt,www.crt,www.key,ta.key,都复制到此客户端的c:\program files\open***\config目录下。

 

3.3 测试

第一步,右击右下角的OPEN××× GUI,点connect

***03

开始连接

***02

成功拨入

×××05

查看IP

×××04

结束语:

1,在ubuntu server 10.04下如何桥接:https://help.ubuntu.com/10.10/serverguide/C/network-configuration.html#bridging

2,ubuntu server 10.04的OPEN×××手册:https://help.ubuntu.com/10.10/serverguide/C/open***.html

3,在抚琴煮酒 的《实路出真知 FreeBSD8下Bridge配置open×××(2)》中有以下内容:

以下资料参考chinaunix网友温占考的翻译文章,特此注明。

(1)使用路由还是桥接的×××?

路由和桥接的主要不同参看FAQ,桥接的详细信息参看Ethernet Bridging。总的来说,路由对大多数人来说是一种更好的方式,因为它比桥接效率更高也更容易设置(仅Open×××配置文件本身)。路由还可以给每个客户端设置不同的访问权限。推荐使用路由,除非你需要使用依赖于桥接的特性,比如:×××需要处理非IP协议,例如IPX协议。在×××上运行的程序依赖于网络广播(例如局域网游戏)。不建立Samba或WINS服务器,而允许在×××上浏览Windows共享文件。

(2)TUN设备和TAP设备的不同?

TAP设备是一块虚拟的以太网卡,TUN设备是一个虚拟的点到点IP链接。

(3)什么是桥接?

桥接是在一个子网上创建一个虚拟的、广域的以太网LAN一种技术。桥接的实践信息,参看Ethernet Bridging Mini-HOWTO,形象的解释就是它就是连通不同局域网的桥梁,当外网用户×××过来时,如果能够连通open×××机器,那么open×××能够连通的机器,外网用户都应该能够连通。

(4)桥接和路由的不同?

桥接和路由是通过×××连接系统的两种方法。

桥接的优点:广播可以穿越×××--允许依赖局域网广播的软件运行,比如Windows的NetBIOS文件共享和网上邻居。无需配置路由可以和以太网上的任何协议一起工作,包括IPv4, IPv6, Netware IPX, AppleTalk等等。

Relatively easy-to-configure solution for road warriors.

桥接的缺点:比路由效率低,扩展性不太好。

路由的优点:高效和可扩展、更好的MTU调节

路由的缺点:要使跨越×××的网络浏览工作,客户端必须使用一个WINS服务器(比如samba)。必须设置连接每一个子网的路由。依赖于广播的软件不能看到在×××另一边的机器。仅支持IPv4, 如果连接两边的tun驱动明确支持IPv6,则也支持IPv6.

(5)桥接和路由在配置上有什么不同?

当客户端通过桥接方式连接远端网络时,它被分配一个远端物理以太子网的IP地址,从而能够和远端子网其它机器交互就象它是连接在本地一样。桥接需要特殊的OS-相关的工具用来将物理以太网卡和虚拟的TAP设备桥接起来。在Linux下,brtcl就是这样一个工具。

对于Windowx XP或更高版本,从"控制面板->网络连接"中选中TAP-Win32网卡和以太网卡,点击鼠标右键,选择轿接。而客户端通过路由方式连接时,它使用自己的独立子网, 并且在客户机和远端网关上都设置了路由,从而可以使数据包无缝地穿越×××。客户端可以不只是一台机子,它可以是几台机子组成的一个子网。

桥接和路由很相似,主要的不同是路由的×××不传送IP广播包,但是桥接的×××传送IP广播包。

要使用桥接方式,连接的两端都必须使用--dev tap,如果使用路由方式,可以使用--dev tap也可以使用--dev tun,但是连接的两端必须一致. 对于路由方式而言,--dev tun的效率要更高一些。

Ethernet Bridging 

桥接概览

以太网桥接将一个以太网接口和一个或多个虚拟TAP接口结合(combine)并将它们桥接为一个桥接接口。以太网桥接代表一个物理以太网交换机 (switch)的软件模拟,以太网桥可以 认为是在一台机器上共享一个IP子网连接多个以太网卡(物理的或虚拟的)的软件交换机,

通过将在不同地方的一个物理以太网卡和一个Open×××的TAP接口桥接,可以将两个以太网络在逻辑上合并为好象是一个以太子网。