OpenFlow: Quick Start Appliance: Documentation
Appliance DetailsOpenFlow Quick Start Appliance
Overview
This is a Quick Start guide used to become familiar with using OpenFlow on Chameleon. The appliance creates:
- A simple Ryu controller compatible with the Chameleon Corsa DP2000 switches. The controller code is available here: https://github.com/ChameleonCloud/ryu.git
- An isolated OpenFlow tenant network
- 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:
- 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:
- Getting started tutorial: https://chameleoncloud.readthedocs.io/en/latest/getting-started/index.html
- Using Heat templates: https://chameleoncloud.readthedocs.io/en/latest/technical/complex.html
Steps
Launch a stack using the Heat template at the following url: https://www.chameleoncloud.org/appliances/api/appliances/56/template
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
Launch the stack.
Use the network
- Add a floating IP to one of you additional compute nodes and ssh to the node.
- Ping the another additional node using its fixed IP address (use the IP starting with 10)
Explore the OpenFlow controller
- Use ssh to login to the controller node.
Open/tail the Ryu log file
[cc@controller ~]$ tail -F /var/log/ryu/ryu-manager.log
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
After editing the Ryu application controller application, restart Ryu to deploy any changes to the OpenFlow network
[root@controller ~]# systemctl restart ryu