GUÍA DE INSTALACIÓN DE MININET Y EL
CONTROLADOR RYU
Elaborado por Daniel Díaz Ataucuri
Profesor titular de Telecomunicaciones FIEE-UNMSM
2019
GUÍA DE INSTALACIÓN DE MININET
1.- Instalar en la PC el Virtual Box y una máquina virtual (VM) con el sistema operativo
Ubuntu 18.04. A continuación, se ilustra ésta VM.
2.- Es recomendable que la pantalla de la VM se acondicione a la pantalla de trabajo para
evitar lo que se muestra en la figura siguiente.
3.- Actualicemos el sistema operativo Ubuntu para que la pantalla se adapte a la pantalla de
trabajo.
a.- Ir a la página web https://askubuntu.com/questions/22743/how-do-i-install-guest-additions-in- a-
virtualbox-vm. Para simplificar la búsqueda ingrese en el Google “install guest
additions virtualbox Ubuntu”, como se ilustra en la figura siguiente.
b.- Ingrese en el terminal de la VM:
sudo apt-get install virtualbox-guest-additions-iso
c.- Ingrese en el terminal de la VM:
sudo apt install build-essential dkms
d.- Ahora ubique la opción “Dispositivos” en la parte superior de pantalla de la VM
Ubuntu 18.04. Selecciones “Insertar imagen de CD de las *Guest Additions*..”.
Como se ilustra en la figura siguiente.
e.- Finalmente, se termina la actualización seleccionando la opción “Ejecutar”. Ahora
reinicie la máquina virtual.
4.- Iniciar la instalación de mininet. Para ello ir a la web oficial de mininet:
http://mininet.org/ . Seleccionar la opción “Get Stated” ubicado en el lado derecho de
esta web. Luego ubicar: “Option 2: Native Installation from Source”
a.- Ingrese en el terminal:
sudo apt install git
b.- Luego:
sudo git clone git://github.com/mininet/mininet
c.- Veamos el contenido del directorio de trabajo inicial:
ls
d.- Ingresar al directorio mininet:
cd mininet
e.- Ingresar el siguiente comando:
git tag
Se observará las versiones de mininet
f.- Seleccionar la versión 2.2.2:
sudo git checkout –b 2.2.2
En la figura siguiente se da un resumen de los comandos ingresados anteriormente
g.- Subir al directorio inicial:
cd ..
h.- Instalar mininet:
sudo mininet/útil/install.sh
Después de un tiempo, que dependerá de su PC, se terminará de instalar mininet
i.- Verificar si esta correcta la instalación de mininet:
sudo mn –test pingall
Ubuntu 18.04 no tiene instalado “ifconfig”, como se observa en el mensaje
“Cannot find required executable ifconfig”
j.- Al ingresar “ifconfig” se indica el comando para su instalación:
ifconfig
k.- Para instalar “ifconfig” ingrese el comando siguiente:
sudo apt install net-tools
k.- Verificar el correcto funcionamiento de mininet:
sudo mn –test pingall
CONTROLADOR RYU
5.- Ahora se instalará el controlador RYU; para ello ingresar a la página web donde se
descarga el controlador: ingrese en el buscador “RYU SDN FRAMEWORK”
Obteniendo la siguiente página web:
Aquí se detalla los procedimientos a seguir para instalar el controlador RYU:
a.- Instalar RYU:
sudo git clone git://github.com/osrg/ryu.git
Ingresar al directorio creado Ryu
cd ryu
Como Ryu está desarrollado en Python, instalar python:
sudo python ./setup.py install python3
Luego ingresar el siguiente comando:
sudo apt install python-pip python3
Finalmente instalar el controlador Ryu:
sudo pip install ryu pip3
El controlador Ryu está instalado; ahora se instalará con Spanning Tree.
b.- Una vez instalado el controlador Ryu es recomendable que soporte el Spanning
Tree Protocol-STP para implementar redes donde los switches openflow
físicamente puedan formar bucles. Ingresar al directorio siguiente desde la raiz:
cd ryu
cd ryu
cd app
Observar el contenido del directorio app:
ls
El archivo que habilita Ryu con STP es simple_switch_stp_13
Para activar el controlador Ryu con STP ingresar el siguiente comando:
sudo ryu-manager ryu.app.simple_switch_stp_13
Ahora está a la espera de activar una red de datos con la tecnología SDN.
A continuación, se creará una red con SDN utilizando el MiniEdit que presenta
mininet
6.- Ahora se creará una red con SDN utilizando MiniEdit. Abrir un nuevo terminal.
a.- Para ello se deberá ubicar el directorio examples y ejecutar el siguiente comando.
cd mininet
cd mininet
cd examples
sudo ./minedit.py
Obteniendo el siguiente lugar de trabajo del MiniEdit.
b.- Se diseña la red con SDN en MiniEdit como se muestra a continuación
Seleccionar
c.- Seleccionar “Edit” del MiniEdit y de esta opción “Preferences”
De “Preferences” activar “Start CLI” desactivar “OpenFlow 1.0” y activar
“OpenFlow 1.3”
d.- Para que el controlador acceda remotamente al Controlador Ryu se debe ubicar el
mouse encima del controlador “c0” y seleccionar “Properties”.
En la nueva ventana “Controller Details” en la opción “Controller Type”
seleccionar “Remote Controller”.
e.- Desde MiniEdit seleccionar la opción Run que está ubicado en la parte inferior
izquierda de la pantalla de trabajo.
f.- Observar las dos ventanas activas. Una de ellas tiene el Controlador Ryu ejecutando
y la otra el MiniEdit que es parte del mininet.
g.- Para verificar que la red con SDN y controlado con el Controlador Ryu está correcto
de ingresar el comando pingall en la ventana con el indicador mininet>:
mininet>pingall
7.- Activar las ventanas de trabajo en cada host de la red.
a.- Ubicar el click derecho del mouse encima de la figura h1 (igual proceso se repetirá
en los demás host de su red) y seleccionar la opción “Terminal”.
b.- En esta ventana “Host: h1” active el analizador de protocolos wireshark:
sudo wireshark &
Desde la ventana “Host: h1”se puede generar tráfico para observar en el wireshark:
ping 10.0.0.2 (el mininet asigna por defecto al host h1 10.0.0.1, al host h2 10.0.0.2,
al host h3 10.0.0.3, así sucesivamente).
Observe el protocolo Spanning Tree y el protocolo ICMP (ping) capturados
IMPORTANTE: Para ver los paquetes OpenFlow active previamente un nuevo
terminal
c.- Abriendo una nueva ventana
sudo wireshark
Seleccionar Loopback porque el mininet conecta su controlador al Loopback.
d.- Captura de paquetes OpenFlow 1.3
Observar que se ha capturado los paquetes OpenFlow tipo PACKET_IN.
e.- Para limpiar el Mininet ingrese el comando:
sudo mn -c
INSTALACIÓN DEL FLOWMANAGER PARA RYU
8.- Ahora se instalará una aplicación que permite al administrador el control de los flujos en
una red OpenFlow con el controlador Ryu, denominado FlowManager y permite:
Agregar/modificar/eliminar entradas de flujo en tablas de flujo.
Agregar/modificar/eliminar tablas de grupo y medidores.
Copia de seguridad/restauración de tablas de conmutador a / desde unidad local.
Ver tablas de flujo, tablas de grupo y medidores.
Ver estadísticas del interruptor.
Ver topología de red.
La página web de instalación es https://github.com/martimy/flowmanager
a.- Ingresar el siguiente comando
sudo git clone https://github.com/martimy/flowmanager
b.- Debe estar activado el MiniEdit con la topología respectiva. Para ello se deberá
ubicar el directorio examples y ejecutar el siguiente comando.
cd mininet
cd mininet
cd examples
sudo ./minedit.py
c.- A continuación, se iniciará el Controlador con Ryu y simultáneamente se activará el
gestor de flujo para Ryu FlowManager:
cd ryu
cd ryu
cd app
sudo ryu-manager --observe-links ~/flowmanager/flowmanager.py ryu.app.simple_switch_stp_13
Está a la espera de correr el MiniEdit.
El indicador que todo va bien es observar el terminar donde activo MiniEdit donde se muestra la
disponibilidad de utilizar MiniEdit.
c.- Ahora para activar la aplicación FlowManager, abrir el Mozilla Firefox y colocar la
siguiente dirección web:
http://localhost:8080/home/index.html
BIBLIOGRAFÍA
1.- “Understanding the Ryu API: Reimagining Simple Switch”
https://inside-openflow.com/2016/08/05/ryu-api-reimagining-simple-switch/
2.-