Netplan: come usarlo e come rimuoverlo

Da ormai più di due anni Ubuntu ha introdotto Netplan, un livello di astrazione per la configurazione della rete. In effetti esistono diversi meccanismi per configurare la rete, e non è raro trovarsi a dover gestire dei server che usano strumenti diversi. Magari su alcuni server bisogna usare NetworkManager, magari su altri si ricorre a Networkd. Finché si controllano solo un paio di server non c’è problema, si può fare tutto a mano. Ma se i numeri cominciano a salire, e non bastano le dita di due mani per contare i server da gestire, la cosa comincia a essere complicata. Per questo motivo Canonical ha pensato di sviluppare un livello di astrazione: un renderer che utilizza una sintassi standard valida per ogni sistema, e poi provvede automaticamente a tradurre la propria sintassi in un file di configurazione adatto per il sistema supportato da ciascun server. Netplan non è quindi un gestore della rete: è solo uno strumento che permette di configurare tutti i propri server con lo stesso linguaggio, appoggiandosi ai principali gestori della rete già esistenti. L’idea, quindi, non è sbagliata, anche se il classico poco preavviso di Canonical ha fatto storcere il naso a molti, e del resto si sa che i cambiamenti sono raramente accettati con grande felicità.

Configurare la rete con NetPlan

La configurazione della rete tramite NetPlan si può fare con dei file in formato YAML, creando un file nella cartella /etc/netplan oppure modificando uno dei file esistenti (per esempio 01-network-manager-all.yaml). Il formato tipico è il seguente:

network:
Version: 2
Renderer: NetworkManager/ networkd
ethernets:
DEVICE_NAME:
Dhcp4: yes/no
Addresses: [IP_ADDRESS/NETMASK]
Gateway: GATEWAY
Nameservers:
Addresses: [NAMESERVER_1, NAMESERVER_2]

Naturalmente, se si abilita il DHCP non è necessario indicare la configurazione IP. Basta quindi scegliere se appoggiarsi a NetworkManager oppure a Networkd, e se configurare manualmente un IP statico. Dopo aver scritto il file, si può provare la nuova configurazione col comando

netplan try

Se tutto funziona correttamente, si può abilitare definitivamente la configurazione:

netplan apply

In caso di errori, si può aggiungere l’opzione -d per avere informazioni di debug. Per sicurezza, bisogna riavviare il gestore a cui si è fatto riferimento:

systemctl restart network-manager
systemctl restart system-networkd

Il corrispettivo del vecchio ifconfig è il comando

ip a

In questo modo si può verificare che la configurazione sia cambiata. Nella documentazione ufficiale sono presenti molti esempi pronti all’uso (https://netplan.io/examples).

Sul sito netplan.io si possono vedere degli esempi pratici di configurazione

Rimovere NetPlan

Se NetPlan non ci convince, e vogliamo farne a meno per continuare a gestire la rete come abbiamo sempre fatto, possiamo rinunciarvi. Innanzitutto, è possibile fare l’optout al momento dell’installazione aggiungendo

netcfg/do_not_use_netplan=true

nella riga di boot del sistema che viene usato per installare Ubuntu (es: un DVD live). Per disabilitare NetPlan su un sistema in cui è già installato, bisogna prima di tutto installare ifupdown:

apt-get install ifupdown

È poi necessario configurare /etc/network/interfaces come si è sempre fatto. Si deve anche specificare manualmente il server DNS che si vuole usare nel file /etc/systemd/resolved.conf:

DNS=8.8.8.8 8.8.4.4

E finalmente abilitare la configurazione:

ifdown --force enp0s3 lo && ifup -a
systemctl unmask networking
systemctl enable networking
systemctl restart networking
systemctl stop systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
systemctl disable systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
systemctl mask systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
apt-get --assume-yes purge nplan netplan.io
systemctl restart systemd-resolved

A questo punto NetPlan dovrebbe essere completamente disabilitato.

Luca Tringali

Luca Tringali

Giornalista, autore per GNU/Linux Magazine Italia dal 2010, e attuale redattore della rivista. Si occupa di divulgazione scientifica e tecnologica, in particolare nel campo dell'intelligenza artificiale e la sicurezza informatica.