wiki:HowTo/CreateOVSTopology

Version 6 (modified by lnevers@bbn.com, 5 years ago) (diff)

--

How To Create a Topology using OVS

Draw your Topology

This are instructions for Flack to setup your topology.

  • Draw your topology like you will normally do
  • For every switch that you want to be an OVS switch
    • Add a XEN VM node from an IG or PG site
    • In the properties of the OVS XEN VM choose as an image the image that says `Ubuntu 12.04 OVS for ProtoGENI (Niky)"
  • If your controller is part of your topology make sure that the controller has a public IP address
    • In the properties of the controller node press the link tab (the one that looks like a chain) check the box that says Routable Control IP (emulab only). This will ensure that your node has a public IP.

Assign IPs

Once you have drawn your topology you might want to consider assigning IPs to your nodes so that there is less manual steps you need to do after your resources are reserved.

  1. Remove IPs from the OVS interfaces. The XEN VMs that are going to be OVS switches do not need to have IPs configured in their interfaces so it is probably easier if you remove them at reservation time.
    • for each OVS switch press the i button and go to the links tab (the one that looks like a chain)
    • set the IPs to 0.0.0.0
  2. Decide which hosts should be on the same IP subnet and manually assign their IP addresses

Modify the RSpec

You will need to make some manually modifications to your rspec, so:

  • Save the rspec to a file (VIew-> Preview Request Document and Save to File)
  • Open the file with your favorite editor and add the following lines on every link that involves and OVS host

OVS commands once the topology is up

Once your topology is up login to every OVS host in your topology and run the following commands. You will need to run the second command once for every data interface (eth1, eth2, eth3, etc). Be careful not to add the control interface, typically eth0.

  sudo ovs-vsctl add-br br-switch
  sudo ovs-vsctl add-port br-switch ethX

Check that all the data interfaces have been added:

 sudo ovs-vsctl list-ports br-switch

Now you are ready to configure the OVS switch and point it to your controller. Run the following commands:

sudo ovs-vsctl set-fail-mode br-switch secure
sudo ovs-vsctl set-controller br-switch tcp:<controller-ip>:<controller-port>

The first command ensures that only your controller can make forwarding decisions and modify the forwarding table, while the second points the switch to your controller. Make sure to use the control (public IP) of your controller and that your controller is not behind NAT or a firewall.

Tip: To test connectivity to your controller from the OVS host try:

telnet <controller_ip> <controller_port>

If you get an output like the following all is good:

Trying 2607:f8b0:400c:c03::68...
Connected to <controller_ip.
Escape character is '^]'.