Note | ||
---|---|---|
| ||
This page is under construction. |
Table of Contents |
---|
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:
Code Block language text ONOS_APPS=drivers,openflow,segmentrouting
Configure Segment Routing
Info 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:No Format onos/tools/package/config/segmentrouting.conf
You can also use copy and modify from a sample at:
No Format 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.
Code Block language text title Fetch Mininet $ git clone git://github.com/mininet/mininet $ cd mininet $ git checkout -b 2.2.1 2.2.1
Patch Mininet.
Info 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:Code Block language text title Patch Mininet # In the Mininet root directory $ git apply multi_controller.patch
Install Mininet and CpqD Software Switch
Code Block title Install Mininet $ sudo ./util/install.sh -n
CpqD Software Switch
Install CpqD
Code Block title Install CpqD $ git clone https://github.com/CPqD/ofsoftswitch13.git $ cd ~/ofsoftswitch13 $ ./boot.sh $ ./configure $ make $ sudo make install3fn
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.Tip title 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.
Code Block title Start the leaf-spine topology $ sudo -s #E ./cord_fabric.py --spine=4 --leaf=4
Run pingall
Code Block title Test host connectivity mininet> pingall
Note 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
...