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實例。