VPCS(Virtual PC Simulator)与GNS3是天作之合。
VPCS可以模拟多达9台PC,当你在Dynamips中研究Cisco或Juniper路由器时,可利用VPCS对其ping或trace路由(例如用于验证ACL),也可以ping或trace运行于PC虚拟机的其他主机/路由器。
VPCS还可以通过UDP管道或Unix Tap接口发送和接受基于TCP和UDP协议的ping包(默认是ICMP协议)。
VPCS不是传统的PC,它只是一个运行在Linux或Windows上的程序,只能使用很少的网络命令,但消耗资源也很少(每个实例仅消耗2MB的RAM),这样你就不用拿路由器或VMware虚拟机来模拟PC去ping了。
VPC支持DCHP,同时也是Tlenet服务器。
如果指定了scriptfile(脚本文件),那么vpcs会在启动时读取文件并执行scriptfile中的命令;如果没有指定"scriptfile,vpcs将在当前目录读取并执行名为 "startup.vpc "的文件
VPCS在9个连续的UDP端口上监听消息,并在9个连续的 UDP 端口上发送消息。默认情况下,VPC 侦听 UDP 端口 20000到20008,并在UDP端口30000到30008 上发送消息。每个UDP端口对(20000/30000、20001/30001...20008/30008)代表一个虚拟PC,虚拟PC的编号为1到9。
官方网站:https://sourceforge.net/projects/vpcs/?source=directory
可以从GNS3的设备列表里把VPCS拖入工作区,直接就可以使用,但本文介绍另一种方法:独立使用VPCS,使其与GNS3拓扑里的路由器通信。
进入GNS3安装目录,默认是C:\Program Files\GNS3\vpcs,双击vpcs.exe,进入vpcs的命令行界面,打入问号,能查看到所有支持的命令,翻译如下:
实验开始:有如下拓扑,我们的目标是通过VPCS模拟出2台PC,分别接在2台交换机上互ping:
在VPCS界面打入show命令:
上图意味着2件事:
1、要发送给VPC的数据连接到本地20000端口;从VPC发送出去的数据连接到本地30000端口。
2、最多虚拟出9台PC,直接输入数字切换。
给VPCS配上地址,再show,可见VPC1已经有了地址:
在GNS3的设备列表里拖出一朵云(注意别和NAT设备的云图标弄混了,两者图标一模一样):
直接点击Add,端口被添加到了右边,可见云的本地端口30000已经被添加,这是VPC要连接到的远程端口,而云的远程口20000正好是VPC的本地端口。现在把交换机和云连接,注意连接到UDP tunnel1:
至此,VPC1可以ping通网关10.0.0.1,也可以ping通直连路由器的下一条12.0.0.2:
现在配置VPC2。在VPCS里打入2,切换到VPC2,配置地址后再show:
可见2个端口号是20001和30001,于是再拖出一朵云,按照上面的端口号配置:
交换机连接到UDP tunnel2以后,VPC2就可以ping通VPC1了:
最后的拓扑如下,实现了VPCS模拟2台PC互ping的目标:
VPCS的命令行
VPCS启动时的命令行参数解释,例如vpcs -v
OPTIONS
-h, --help
显示命令行选项,然后退出
-v
显示版本信息,然后退出
-R
禁止中继功能
[-i] num
指定VPCS所虚拟的PC的数量,最多9台。如省略本参数,VPCS将以9台虚拟PC启动。如果num为1,就如GNS3调用VPCS时那样,引用其他PC的命令将具有受限选项,并且提示将不显示PC编号。
-p port
以守护进程(daemon process)的身份运行VPCS,在TCP指定的端口上监听。作为守护进程,VPCS不向用户提供命令行接口,但可以通过telnet或netcat(nc)等TCP流应用程序远程访问命令行界面。一旦守护进程启动,就没有终止程序的内部机制,必须通过发送系统信号9来终止程序,通常使用命令kill -9 PID(其中PID是VPCS实例的进程ID)来终止程序
-m num
默认情况下,9个VPC使用9个连续的MAC地址,默认是00:50:79:66:68:00。本选项将num添加到基本MAC地址的最后一个字节。在此过程中,如果任何增量导致最后一个字节超过0xFF,它将增加到0x00。
[-r] FILENAME
读取和执行脚本。
如果指定了FILENAME,VPCS在启动时会读取并执行FILENAME中的命令。FILENAME必须是VPCS脚本文件格式。默认情况下,如果启动VPCS的目录中存在一个名为startup.vpc的文件,那么当VPCS启动时将被读取并执行。如果最后一个参数是 FILENAME,那么 -r 选项是可选的。
-e
Tap模式(仅Linux,使用 /dev/tapx)。
在支持/dev/tapx接口(Unix/Linux)的系统上,以tap模式而不是UDP模式运行VPCS。在tap模式下,IP数据包通过 /dev/tapx 接口发送和接收,而不是通过UDP流。通常情况下,/dev/tapx接口只对root用户开放,这意味着VPCS也需要以root用户(sudo vpcs -e)才能使用tap模式。
[-u]
UDP模式。这是默认选项,不是必需的,但与-e选项形成关联时才包含该选项。默认情况下,VPCS会在指定的UDP端口发送和接收IP数据包。默认侦听UDP端口20000,发送到端口127.0.0.1:30000。侦听和发送端口可以使用-s,-c和-t选项进行设置。
UDP Mode Options
-s port
本地UDP端口,默认20000。
port 指定了VPCS用来监听消息的端口号。默认情况下,VPCS使用UDP端口20000到20008来监听消息。通过使用 -s 选项改变VPCS监听的端口,会导致从端口指定的端口开始使用9个连续的 UDP 端口。
-c port
远程UDP端口。VPCS将数据包串流到从127.0.0.1:30000开始的9个UDP端口。本选项允许你将数据包串流到从端口指定的基本端口号开始的另一组9个端口。
-t ip
远程主机IP。默认情况下,VPCS将数据包传输到从127.0.0.1:30000开始的9个UDP端口。本选项允许您将数据包流式传输到由IPv4地址ip指定的远程主机。通常情况下,远程主机将运行 dynamips,其云连接配置为连接到该主机的IP地址。
TAB Mode Options
-d device
设备名称,只有当-i设置为1时才有效。
Hypervisor Mode Options
-H port
以hypervisor模式运行,监听由port指定的TCP端口。在hypervisor模式下,你可以用telnet连接这个控制端口,启动或停止VPCS实例。
来源:oschina
链接:https://my.oschina.net/u/4354590/blog/4297147