The VCT environment is provided by a set of shell functions, scripts, bash-environment variables and a CONFINE Controller operating over the virtualized machines. The code is provided as a utility package in confine-dist (in directory utils/vct).
All these scripts are provided as a part of the OpenSource agreement, but are not supposed to be used individually without the controller. Since the March 2013 version most of these scripts have been considered deprecated and can result in undefined behaviour.
Now we are ready to setup our VCT and start playing with it! The setup process takes two independent steps: installation and initialization.
The first step installs all the VCT dependencies left in the container, so it only has to be executed the first time. To start the installation, type the next command on your terminal (hereafter we will assume your working directory is
As a result, VCT downloads the Research Device template and other configuration files on the newly created
VCT_VIRT_DIR folder structure. Finally, it downloads the Controller dependencies.
/downloadscontains the CONFINE OpenWrt image defined in
/keyscontains a set of private/public keys used by virtualized nodes to allow SSH access to virtualized nodes and slices.
/tinccontains the configuration files to build an internal tinc overlay like the real one.
The next step is the initialization step, whose aim is to configure all virtual networking devices.
As a result, VCT starts the controller and configures the necessary networking bridges, public and private virtual links to emulate a community network.
That's it. VCT is ready to work! You can access the server interface by opening a browser on your host machine. To find out the IP of your VCT-C, you can type the command
As you can see, all
./vct_ commands are, in fact, symbolic links to the
./vct.sh bash script to make the usage of its functions more intuitive. They are divided into six (6) different categories. If you do not know how to use a given command, you can execute
./vct_help for a detailed list of options.
./vct_system_commands configure and clean the VCT system on your current machine.
./vct_node_commands provide direct interaction with real and virtualized CONFINE nodes (also known as research devices).
./vct_slice_commands perform informational operations on slices/slivers.
./vct_sliver_commands perform activity operations on slices/slivers.
Sometimes VCT treats slices, slivers and experiments as a single thing when clearly they are not. The important thing to remember is that a slice is composed by a set of slivers and that an experiment is allocated and deployed on a single sliver.