Miniedit, l’interfaccia grafica per Mininet

Mininet è uno strumento utile a costruire, su un computer oppure su una virtual machine, una rete virtuale realistica composta da host, switch e programmi vari. Uno degli ambiti in cui Mininet è molto usato è la sperimentare di sistemi OpenFlow e Software-Defined Networking (SDN).
MiniEdit, invece, è un’interfaccia grafica basata su Python e TK che consente di disegnare delle reti da usare con Mininet usando un tool con interfaccia grafica.

Il software può essere installato e configurato sullo stesso sistema in cui c’è Mininet. Nel nostro caso, Mininet è installato su Ubuntu 20.04 e oltre alle dipendenze di quest’ultimo è necessario installare alcuni pacchetti aggiuntivi come python-tk:

sudo apt install python-tk

Qualora non lo avessimo già fatto precedentemente in fase di installazione di Mininet, è opportuno installare anche openvswitch-testcontroller e creare un link per poter testare la nostra topologia personalizzata.

sudo apt-get install openvswitch-testcontroller
sudo ln /usr/bin/ovs-testcontroller /usr/bin/controller

Poi per lanciare MiniEdit, si può usare il comando python2 (attualmente python3 non funziona):

sudo python2 ~/mininet/examples/miniedit.py

Per disegnare una semplice rete, basta selezionare dal menù laterale gli oggetti: host, switch, controller e altro, da collegare con un link. Per esempio questo è il risultato della progettazione di una semplice rete.

Per modificare lo script del disegno che si potrà esportare, basta andare nel menù Edit, Preferences e cambiare qua le varie impostazioni:

E’ possibile optare per una configurazione che supporti versioni più recenti di OpenFlow, oppure uno switch diverso dal classico Open vSwitch, nonchè aggiungere il supporto per un controller di rete esterno a Mininet. E’ utile attivare la casella Start CLI.

Per esportare la configurazione in uno script python, andare nel menù, File e selezionare Export level 2 script.

Ora per lanciare il tool mininet con la topologia personalizzata è sufficiente lanciare il comando:

sudo python2 miatopologia.py