Mininet

Mininet es un programa enfocada en estudiar de forma intuitiva una topografía de red mediante líneas de comandos. Ideal para ingenieros de redes.

Mininet

Cómo funciona

Basta con establecer el tipo de red en cuestión usando un comando inicial en mn.

Topología en árbol (tree)

  • Sintaxis básica: sudo mn --topo tree, --controller=ovsk
  • Ejemplo (árbol profundidad 2, fanout 2): sudo mn –topo tree,depth=2,fanout=2 –controller=ovsk
  • Opciones: agregar –link tc (para controlar ancho de banda/latencia), –mac, –switch ovs

Topología línea (linear)

  • Sintaxis: sudo mn --topo linear, --controller=ovsk
  • Ejemplo (5 hosts en línea): sudo mn –topo linear,5 –controller=ovsk

Topología completa (full)

  • Sintaxis: sudo mn --topo full, --controller=ovsk
  • Ejemplo (switch completamente conectado con 4 hosts): sudo mn –topo full,4 –controller=ovsk

Topología anillo (ring)

  • Mininet no permite realizar una topología en anillo en sí.
  • Se debe ejecutar con el comando: sudo mn --custom ~/ring_topo.py --topo ringtopo --controller=ovsk
  • Alternativa simple (usar CLI para conectar manualmente): sudo mn --topo single,4 --mac --controller=ovsk (luego en Python/CLI se debe establecer los enlaces s1-s2, s2-s3, s3-s4, s4-s1)

Topología de estrella (star)

  • Sintaxis (estrella ≈ single switch con n hosts): sudo mn --topo star, (si no disponible, usar single)
  • Ejemplo (5 hosts conectados a un switch): sudo mn --topo single,5 --controller=ovsk

Cómo usar Mininet

Mininet requiere estar ejecutando junto a Open vSwitch. Estos componentes están disponibles para ejecutarse desde un sistema operativo virtualizado (como GNOME Boxes) o mediante Docker (véase docker-mininet). Se aconseja que se realice en una instancia aparte y que no tenga conflictos de redes, ya que no se ejecutará el programa.

Estos son los comandos para instalar en una instancia virtualizada, en caso de ausencia de estos programas:

sudo apt install mininet
sudo apt install openvswitch-testcontroller
iperf -s -p 5555 -i 1

Lamentablemente, usar instancias de Debian de Distrobox no funcionan debido a limitaciones ténicas. Eso se debe a que, si bien Open vSwitch está ejecutando correctamente como servicio del sistema (con sudo systemctl enable openvswitch-switch.service), aún hay errores en el funcionamiento.

Comandos útiles para pruebas

Una vez creada la topología, prueba estos comandos para conocer funcionamiento:

  • pingall (revisa todas las conexiones posibles)
  • nodes (lista de nodos)
  • net (revisar conexión a red)
  • h1 ping h2 (para realizar un ping entre computadoras
  • iperf (pruebas de conexión)
  • sudo mn --clean (limpiar restos de Mininet/OVS)
  • ovs-vsctl show (ver configuración de Open vSwitch)
  • ovs-ofctl dump-flows s1 (ver flujos en un switch)
  • dpctl dump-flows (si se usa dpctl)
  • sudo killall -9 controller_name (matar controladores)

Complementos

Wireshark

Se puede instalar Wireshark para analizar con más detalles el envío de datos.

Versión gráfica

Una versión gráfica del programa se denominada Miniedit. Se debe ejecutar con el módulo Thinker de Python, el cual debe estar instalado con sudo apt install python3-tk. Adicionalmente se debe instalar el paquete para corregir la posición de los objetos al añadirlos: sudo apt install screenruler.

Una vez instalado Thinker de Python, basta ejecutar el programa gráfico con:

cd /usr/lib/python3/dist-packages/mininet/examples/
python3 miniedit.py

En algunos casos, es posible que necesites permisos root debido a que será necesario para realizar la emulación correctamente. Aquí un ejemplo para ejecutarlo:

cd /usr/lib/python3/dist-packages/mininet/examples/
xhost +SI:localuser:root
sudo python3 miniedit.py

Consta de una interfaz gráfica intuitiva, con la posibilidad de guardar las topologías en mn. Es posible que tenga errores, ya que es posible que no se pueda integrar correctamente con la instancia de Mininet si no posee los permisos de administrador.

Miniedit

Fuente: AskUbuntu

Etiquetas: ,

¿Recomendarías este artículo?

Siguiente

MapSCII