Version 36 (modified by 11 years ago) (diff) | ,
---|
Configure and Initialize Services: Configure your OpenFlow switch
Although OVS is installed and initialized on the host that is meant to act as a software switch, it has not been configured yet. There are two main things that need to be configured : create your software switch with the interfaces as ports and point the switch to an OpenFlow controller.
In order to configure our switch, we first need to login to the host that will be used as an OpenFlow switch.
Login to OVS host
- Return to the Slice page. Press the Details button in the row of the slice table for Utah ProtoGENI.
- Click on the ssh link. If you have installed FireSSH a new tab will open up.
- In the window that will pop up :
- in the password field type in your passphrase
- in the private key, browse to the file that has your private key
- Press OK
- If you don't have FireSSH installed, open a new terminal window. Copy the command to the right of Login into that terminal window.
- You are now logged in to the OVS host.
1. Create the Software Switch
Now that you are logged in, we need first to initialize OVS:
- Start the OVS database:
sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:Open_vSwitch,manager_options \ --private-key=db:SSL,private_key \ --certificate=db:SSL,certificate \ --bootstrap-ca-cert=db:SSL,ca_cert \ --pidfile --detach
- Initialize OVS:
sudo ovs-vsctl --no-wait init
sudo ovs-vswitchd --pidfile --detach
Ignore the warnings you are going to see. Now that OVS is running it is time to create our software switch. The software switch will be a bridge, in which we are going to add all the interfaces we want to be part of the switch.
|
Congratulations! You have configured your software switch, which three ports, let's see them. Run:
sudo ovs-vsctl list-ports br0
2. Point your switch to a controller
An OpenFlow switch will not forward any packet, unless instructed by a controller. Basically the forwarding table is empty, until an external controller inserts forwarding rules. The OpenFlow controller communicates with the switch over the control network and it can be anywhere in the Internet as long as it is reachable by the OVS host. For the purpose of this tutorial and in order to minimize the resources we have reserved we are going to run OpenFlow controller at the same host as the OVS switch. This is merely for convenience reasons, the controller could have been anywhere on the Internet.
In order to point our software OpenFlow switch to the controller run:
sudo ovs-vsctl set-controller br0 tcp:127.0.0.1:6633
standalone
vs secure
mode
The OpenFlow controller is responsible for setting up all flows on the switch, which means that when the controller is not running there should be no packet switching at all. Depending on the setup of your network, such a behavior might not be desired. It might be best that when the controller is down, the switch should default back in being a learning layer 2 switch. In other circumstances however this might be undesirable. In OVS this is a tunable parameter, called fail-safe-mode
which can be set to the following parameters:
standalone
[default] : in which case OVS will take responsibility for forwarding the packets if the controller failssecure
: in which case only the controller is responsible for forwarding packets, and if the controller is down all packets are going to be dropped.
In OVS when the parameter is not set it falls back to the standalone
mode. For the purpose of this tutorial we will set the fail-safe-mode
to secure
, since we want to be the ones controlling the forwarding. Run:
sudo ovs-vsctl set-fail-mode br0 secure