Download and Install
To try Ravel, download a virtual machine with all software pre-installed or download the code from GitHub and install from source.
- Option 1: Pre-Packaged VM
- Option 2: Install from Source
- VM Archive
Option 1: Pre-Packaged VM
- Download the VM images with Ravel pre-installed:
- Install virtualization software, such as VirtualBox or VMWare
- Extract the downloaded zip file containing the VM image.
- Import appliance from the VM image.
To set up a new virtual machine in VirtualBox:
- From the menu bar, select Machine –> New
- Create a VM with a unique name, such as ravelvm. Select type Linux and Ubuntu, with the architecture of the image (32-bit or 64-bit) you chose
- Set the memory to at least 512MB and click Next
- Select the bullet Use an existing virtual hard drive file
- Click the folder icon next to the drop down menu and navigate to the folder containing ravelvm32.vmdk (or ravelvm64.vmdk)
- Select ravelvm32.vmdk (or ravelvm64.vmdk) and press Open
- Click Next to complete the setup
Log in to the VM with the username
ravel and password
ravel. The sudo password is
ravel. To keep the VM size small, the Ubuntu installation does not have a GUI installed. To install Unity, run
sudo apt-get install ubuntu-desktop.
Option 2: Install from Source
Check out a copy of Ravel’s source code:
git clone http://github.com/ravel-net/ravel
Run the Ravel install script:
git checkout v0.2.1
Update ravel.cfg with the absolute path to Pox. If installing Pox with install.sh, this will be Ravel’s parent directory.
-a: install all required packages, including Mininet, Pox, and PostgreSQL
-m: install only Mininet and Pox (i.e., Mininet install with options
-p: install only PostgreSQL
-r: install Python libraries required by Ravel, configure PostgreSQL account and extensions
By default, PostgreSQL uses peer authentication, in which the client’s username authenticates a connection to the database. Ravel requires either trust (any user can connect) or md5 (password-based) authentication. If using md5, you will need to start Ravel with the
--password flag to force a prompt for the password (e.g.,
sudo ./ravel.py --topo single,3 --password).
To set the authentication method, edit /etc/postgresql/9.3/main/pg_hba.conf and set postgres and all users to trust or md5. Alternatively, when running
-r, you will be prompted to make this change automatically.
install.sh will create a PostgreSQL user
ravel and database
ravel. To connect directly to this PostgreSQL database, use:
Optional: Configure ovs-ofctl
Ravel supports multiple protocols for database triggers to interact with the OpenFlow switches. This allows changes in the database to be propagated to the network. Supported protocols, configured in ravel.cfg, are: message queues (the default protocol), RPC, and ovs-ofctl. If using the ovs-ofctl command, you must set passwordless sudo so database triggers can run commands using sudo:
Add the postgres user to sudoers
sudo adduser postgres sudo
Allow passwordless sudo by editing /etc/sudoers (e.g., using
sudo visudo) and set the user specification to:
postgres ALL=(ALL) NOPASSWD:ALL