App Icon OpenFlow: Quick Start Appliance: Documentation

Appliance Details

OpenFlow Quick Start Appliance

Overview

This is a Quick Start guide used to become familiar with using OpenFlow on Chameleon. The appliance creates:

  1. A simple Ryu controller compatible with the Chameleon Corsa DP2000 switches. The controller code is available here: https://github.com/ChameleonCloud/ryu.git
  2. An isolated OpenFlow tenant network
  3. A user specified number of additional nodes connected to the new OpenFlow network.

This appliance can be used a base for designing your own OpenFlow experiments or advanced network appliances.

After completing this tutorial you should be able to:

  1. Use Chameleon to create a tenant controlled OpenFlow network.

Prerequisites

This tutorial assumes you have a Chameleon account and basic experience logging into and using Chameleon and complex appliances

Additional information:

Steps

  1. Launch a stack using the Heat template at the following url: https://www.chameleoncloud.org/appliances/api/appliances/56/template

  2. Set the parameters to the template:

    Controller Node Network: The name of the existing network used to connect the controller to the Internet (default: sharednet1)

    OpenFlow Controller Port: The network port used by the controller software (default: 6653)

    OpenFlow Network Name: The user chosen name for the new OpenFlow network

    OpenFlow Network Subnet (cidr): The user chosen subnet for the new OpenFlow network (example: 192.168.100.0/23)

    Network Provider: The provider network to connect the new OpenFlow network (default: physnet1)

    Number of Additional Nodes: The number of additional nodes to launch connected to the new networks (default: 2, specifying 0 will create only the controller and network)

    Example:

     Controller Node Network = sharednet1
     OpenFlow Controller Port = 6653
     OpenFlow Network Name = myOpenFlowNetwork
     OpenFlow Network Subnet (cidr) = 192.168.100.0/24
     Network Provider = physnet1 
     Number of Additional Nodes = 2
    
  3. Launch the stack.

Use the network

  1. Add a floating IP to one of you additional compute nodes and ssh to the node.
  2. Ping the another additional node using its fixed IP address (use the IP starting with 10)

Explore the OpenFlow controller

  1. Use ssh to login to the controller node.
  2. Open/tail the Ryu log file

    [cc@controller ~]$  tail -F /var/log/ryu/ryu-manager.log
    
  3. Become root and view/edit the Ryu controller application code:

    [cc@controller ~]$ sudo su -
    Last login: Wed Jun 13 18:50:00 UTC 2018 on pts/0
    [root@controller ~]# vim /opt/ryu/simple_switch_13_custom_chameleon.py
    
  4. After editing the Ryu application controller application, restart Ryu to deploy any changes to the OpenFlow network

    [root@controller ~]# systemctl restart ryu