Intent-based Networking
2025Gestione di una rete SDN in linguaggio naturale: l'amministratore dice cosa vuole ottenere e il sistema genera ed esegue il codice della topologia e del controller.

Il progetto
Configurare una rete definita da software significa scrivere script: uno per la topologia, uno per il controller, e riscriverli a ogni modifica. L'idea del progetto è spostare l'interazione di un livello: l'amministratore esprime un intento — «collega tre host a uno switch», «blocca il traffico fra questi due host», «misura la latenza» — e la traduzione in codice la fa il sistema.
La catena di elaborazione è a due giri. Il primo passaggio classifica la richiesta in uno degli intenti previsti, ciascuno con un prompt dedicato che guida la struttura della risposta; il modello risponde in JSON con l'intento riconosciuto, i parametri e il codice suggerito. Il secondo giro, informato dalla topologia già in esecuzione, produce il file Python effettivo, che viene salvato e lanciato.
Gli intenti coprono creazione e modifica della topologia, misurazioni di latenza, regole sul controller e recovery. La modifica è il caso interessante: il sistema legge la rete esistente, rigenera il file completo con le variazioni richieste, termina la topologia attiva e la riavvia aggiornata.
Il controller Ryu non è statico. Una classe base gestisce l'apprendimento degli indirizzi MAC, la tabella ARP e la scoperta della topologia, e il modello ne genera o modifica le parti necessarie per installare le regole di flusso richieste dall'intento.
Tutto vive dentro una sessione tmux a tre pannelli, preparata da uno script bash: la chat a sinistra, Mininet e il controller a destra, così l'effetto di ogni comando è visibile mentre accade. Un modulo separato si occupa solo di diagnosi e correzione degli errori di rete.
