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协议)。ide
VPCS不是传统的PC,它只是一个运行在Linux或Windows上的程序,只能使用不多的网络命令,但消耗资源也不多(每一个实例仅消耗2MB的RAM),这样你就不用拿路由器或VMware虚拟机来模拟PC去ping了。网站
VPC支持DCHP,同时也是Tlenet服务器。
spa
若是指定了scriptfile(脚本文件),那么vpcs会在启动时读取文件并执行scriptfile中的命令;若是没有指定"scriptfile,vpcs将在当前目录读取并执行名为 "startup.vpc "的文件.net
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拓扑里的路由器通讯。
orm
进入GNS3安装目录,默认是C:\Program Files\GNS3\vpcs,双击vpcs.exe,进入vpcs的命令行界面,打入问号,能查看到全部支持的命令,翻译以下:blog
实验开始:有以下拓扑,咱们的目标是经过VPCS模拟出2台PC,分别接在2台交换机上互ping:
在VPCS界面打入show命令:
上图意味着2件事:
一、要发送给VPC的数据链接到本地20000端口;从VPC发送出去的数据链接到本地30000端口。
二、最多虚拟出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实例。