mooc-riv-labs
Table of Contents
Lab Notes for RIV MOOC
1. SDN with ONOS
ONOS and mininet are the most stable solution for testing SDN in the Lab VM.
- Installing ONOS via docker is straighforward
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates gnupg-agent software-properties-common wget https://download.docker.com/linux/ubuntu/gpg apt-key add gpg sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" apt update sudo apt-get install docker-ce docker-ce-cli containerd.io docker pull onosproject/onos
- Start mininet (only OpenFlow10 seems to work)
sudo mn --topo tree,2 --mac --switch ovsk,protocols=OpenFlow10 --controller remote,ip=172.17.0.2
- Start ONOS as specified in https://wiki.onosproject.org/display/ONOS/Single+Instance+Docker+deployment and make sure to activate the following apps:
* 8 org.onosproject.drivers 2.4.0.SNAPSHOT Default Drivers * 26 org.onosproject.optical-model 2.4.0.SNAPSHOT Optical Network Model * 27 org.onosproject.openflow-base 2.4.0.SNAPSHOT OpenFlow Base Provider * 57 org.onosproject.netcfghostprovider 2.4.0.SNAPSHOT Network Config Host Provider * 60 org.onosproject.lldpprovider 2.4.0.SNAPSHOT LLDP Link Provider * 61 org.onosproject.hostprovider 2.4.0.SNAPSHOT Host Location Provider * 75 org.onosproject.openflow 2.4.0.SNAPSHOT OpenFlow Provider Suite * 107 org.onosproject.gui2 2.4.0.SNAPSHOT ONOS GUI2 * 136 org.onosproject.proxyarp 2.4.0.SNAPSHOT Proxy ARP/NDP * 158 org.onosproject.fwd 2.4.0.SNAPSHOT Reactive Forwarding
- For example use: (password karaf)
docker run -t -d -p 8181:8181 -p 8101:8101 -p 5005:5005 -p 830:830 --name onos onosproject/onos docker exec -it onos /bin/bash apt update apt install openssh-server ssh -p 8101 -o StrictHostKeyChecking=no karaf@localhost
- Check the GUI (login: onos, password: rocks) at http://172.17.0.2:8181/onos/ui/#/topo2
- Activate reactive forwarding:
app activate org.onosproject.fwd
- Or play with intents https://wiki.onosproject.org/display/ONOS/Basic+ONOS+Tutorial:
add-host-intent 00:00:00:00:00:01/None 00:00:00:00:00:04/None
- Play with ONOS and mininet
- Explore openflow or openvswitch
- Study intents and reactive routing
- Interconnect with iBGP speaker (sdn-ip)
- Explore VPLS or VxLAN
2. Routing with FRR
The lab environment is based on http://docs.frrouting.org/projects/dev-guide/en/latest/topotests.html. Topotests is a suite of topology tests for FRR built on top of Mininet.
cd /home/user/frr/tests/topotests sudo pytest -s --topology-only mooc-lab1/mooc-lab1.py
- Examples of adding MPLS encapsulation:
on r1 ip route add 3.3.3.3/32 encap mpls 50000/8300 via 10.0.5.5 dev r1-eth1 on r3 ip route add 1.1.1.1/32 encap mpls 50000/8100 via 10.0.3.4 dev r3-eth1
- `mooc-lab2` implements Segment Routing http://docs.frrouting.org/projects/dev-guide/en/latest/ospf-sr.html.
What works in the current platform:
- IPv4 and IPv6 [tested]
- OSPF and BGP [tested]
- MPLS and LDP [tested] (with linux kernel, all features are accessible)
- Segment Routing! [tested with node-sid et OSPF opaque LSA]
- Think about updating FRR to get latest Segment routing features http://docs.frrouting.org/en/latest/pathd.html. PATH is a daemon that handles the installation and deletion of Segment Routing (SR) Policies.
3. Docker Containers
Update the apt package index and install packages to allow apt to use a repository over HTTPS:
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ gnupg \ lsb-release
Add Docker’s official GPG key:
$ wget https://download.docker.com/linux/ubuntu/gpg -O key.txt $ sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg key.txt
Use the following command to set up the stable repository
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
In order to solve the containered.io
dependency problem, add the following line to the source file /etc/apt/sources.list
:
deb http://security.ubuntu.com/ubuntu xenial-security main
Update and install.
$ sudo apt-get update $ sudo apt-get install containerd.io $ sudo apt-get install docker-ce docker-ce-cli
mooc-riv-labs.txt · Last modified: 2021/09/07 22:01 by samer