Virtual PC Simulator (VPCS)

OS: 
Function: 

VPCS is a program that runs within Windows or Linux and implements limited network functionality. Specifically it lets you configure the IP address, next hop gateway, and a few other parameters of up to 9 virtual PCs, and it lets you run pings and traceroutes.

VPCS's main benefit is that it is implemented in a single process, and uses far less resource (CPU, RAM) than a VirtualBox PC. However it has a few limitations, including each virtual PC only has one network interface, and only one of these PCs can be running a command (e.g. ping or traceroute) at a time.

The details of how to configure a VPC will be covered in Section, however below are a few useful commands.

WARNING:

  • Don't connect to the eth0 or lo0 ports on a VPC... in the virtual environment this may cause your VM to hang.

NOTE:

  • When VPCS is indicated in a lab it is intended as an indication of which PCs could be implemented using VPCS... it is not required that you use VPCS. In contrast when the lab indicates only "PC," that's an indication that VPCS won't work for this function (e.g. the PC requires multiple interfaces, or the lab requires multiple PCs to be issuing pings at the same time, etc.)
  • If you are going to use VPCS in a lab be sure it is the first tool you invoke after starting up GNS3 (it is in the Tools menu in GNS3)... starting it up to far into the process of configuring your network could result in VPCS or GNS3 misbehaving or even crashing in unpredictable (and inexplicable) ways.
  • You add a VPC device to GNS3 using the Host in the "End Devices" menu list in GNS3.

Starting VPCS

  • Start the VPCS control window from GNS3 with the Tools/VPCS menu item
  • Per the NOTE above, if you are going to use VPCS in a lab be sure it is the first tool you invoke after starting up GNS3.
  • You add a VPC device to GNS3 using the Host in the "End Devices" menu list in GNS3.

Connecting to the VPC

  • Per the WARNING above, do not connect to either of the "nio_gen_eth" ports (lo0 or eth0) on the VPCs... these try to connect to the Ubuntu VM's lo0 and eth0 network devices and, in the virtual environment you are working in, will hang your VM!
  • To connect to a VPC select one of the interfaces that start with "nio_udp". These ports are defined by two port numbers (the first one starting at 30000 and the second at 20000). The VPCs, which are numbered from 1-9, map to the corresponding nio_udp port; i.e. VPC 1 maps to nio_udp:30000:127.0.0.1:20000, VPC 2 to nio_udp:30001:127.0.0.1:20001, etc.

Getting help

  • "?" at the prompt gives help for all commands.
  • A command followed by a "?" gives more detailed help for that specific command (e.g. "ip ?").

Selecting which PC to enter command to

  • Entering an integer in the range 1..9 at the prompt select which "VPC" you are entering commands to.

Configuring IP address

  • ip <address>/<mask> [<gateway>] sets the IP address (and optional default gateway) for the current VPC.
  • E.g. "ip 10.10.10.1/24 10.10.10.2" sets the IP address to 10.10.10.1 witha /24 mask and next hop gateway of 10.10.10.2.

Ping

  • ping <address> [-c <count>] (sends indicated number of ICMP echo requests... default count is 5)
  • ping <address> -t (sends continuous stream of pings until interrupted by Ctl-C)