Under Construction
This page is under construction.
Introduction
In this article, we are going to show you how to setup an development environment for CORD Fabric without using pre-installed VM.
ONOS
Setup an ONOS cluster with 3 instances. Here we only show brief steps. Please refer to Installing and Running ONOS for detail.
- Fetch and compile ONOS
Enable Segment Routing applications in your cell configuration:
ONOS_APPS=drivers,openflow,segmentrouting
Configure Segment Routing
We plan to replace the configuration file with Network Configuration Subsystem in a near future
Attached segmentrouting.conf is already modify for the 4-by-4 leaf-spine topology we are going to use.
Copy it to:onos/tools/package/config/segmentrouting.conf
You can also use copy and modify from a sample at:
onos/tools/package/config/samples/segmentrouting.conf
- Package, install and start ONOS
Mininet and CpqD Software Switch
Install Mininet from source code. Please refer to Install Mininet from source code for detail.
Fetch Mininet$ git clone git://github.com/mininet/mininet $ cd mininet $ git checkout -b 2.2.1 2.2.1
Patch Mininet.
We will probably commit this back to the Mininet main stream.
A patch multi_controller.patch is required to allow CpqD software switches to connect to multiple controller instances simultaneously.
Apply the patch using:Patch Mininet# In the Mininet root directory $ git apply multi_controller.patch
Install Mininet and CpqD Software Switch
Install Mininet$ sudo ./util/install.sh -3fn
Start the Fabric
Start the Fabric
We write a Mininet script cord_fabric.py that can help you easily create a leaf-spine topology with CpqD software switches.Check cell configuration
Since cord_fabric.py reads controller information from cell configuration, you should check your cell and see if $OC[1-9] is correctly set up before running the script.
Start the leaf-spine topology$ sudo -E ./cord_fabric.py --spine=4 --leaf=4
Run pingall
Test host connectivitymininet> pingall
Communication between hosts in the same rack (i.e. in the same subnet) is L2 bridged (not segment-routed). Unfortunately, we have not implemented this functionality yet. As a result pinging between hosts in the same rack (e.g. h1 and h2) will not work
(Optional) GUI Configuration
- Configure topology view
- Configure sprites