Come configurare systemd-networkd su Linux

Systemd-networkd è un componente di sistema che opera in background sui sistemi Linux, incaricato della gestione delle impostazioni di rete. È capace di identificare le interfacce di rete appena collegate e persino di generare interfacce virtuali. Questo strumento si rivela particolarmente utile in configurazioni di rete complesse, come quelle di server e container. In questo articolo, esamineremo come configurare systemd-networkd su Linux.

Importante: questa guida si focalizzerà esclusivamente sulle connessioni Ethernet. Nonostante sia possibile utilizzare il Wi-Fi con systemd-networkd, la sua configurazione è complessa e sono disponibili alternative più efficienti per gestire il Wi-Fi su Linux, come Network Manager.

Attivazione e Avvio dei Servizi

Per poter sfruttare systemd-networkd nella gestione delle configurazioni di rete su Linux, è fondamentale che questo servizio sia attivo. Di norma, il servizio è disabilitato. Per abilitarlo, apri un terminale sul tuo desktop Linux. Una volta aperto, esegui il comando systemctl enable sui file systemd-networkd.service e systemd-resolved.service.

sudo systemctl enable systemd-resolved.service
sudo systemctl enable systemd-networkd.service

Una volta abilitati questi due servizi, si avvieranno automaticamente ad ogni accensione del computer. Tuttavia, se preferisci iniziare ad utilizzarli immediatamente, senza riavviare il sistema, puoi avviarli manualmente usando il comando systemctl start sui due file di servizio precedentemente abilitati.

sudo systemctl start systemd-resolved.service
sudo systemctl start systemd-networkd.service

Dopo aver avviato entrambi i servizi, il tuo sistema e l’inizializzatore systemd saranno in grado di riconoscerli e interagire con essi. Per verificare se i due servizi sono stati avviati correttamente, utilizza il comando status.

systemctl status systemd-resolved.service
systemctl status systemd-networkd.service

Verifica la presenza di “active (running)” per confermare l’esecuzione corretta del servizio. In caso contrario, i file di servizio non sono stati avviati correttamente. Riavvia il tuo computer Linux; in seguito, i servizi dovrebbero risultare attivi.

Disabilitazione di NetworkManager

Systemd-networkd non funziona in contemporanea con altri strumenti di gestione della rete. Su molti sistemi Linux, NetworkManager è il tool predefinito. Per disattivarlo, usa i seguenti comandi nel terminale.

sudo systemctl disable NetworkManager.service
sudo systemctl stop NetworkManager.service

Identificazione della Scheda di Rete Cablata

Per utilizzare systemd-networkd, è necessario conoscere l’identificativo della tua scheda di rete cablata. Questo ID deve essere specificato nel file di configurazione relativo al profilo di connessione.

Su Linux, esistono diversi metodi per individuare l’ID del dispositivo di rete cablato. In questa guida, utilizzeremo il comando networkctl list. Questo comando è di facile lettura anche per i neofiti e non riempie il terminale di informazioni superflue.

Per conoscere l’identificativo della tua scheda di rete (ethernet), esegui il seguente comando nel terminale.

networkctl list | grep ether

Cerca il tuo dispositivo di rete nell’elenco. Solitamente inizia con “enp” o “eth“. Ignora i dispositivi che iniziano con “virb” o “vnet“, a meno che tu non sappia cosa stai facendo, poiché questi sono adattatori di rete di macchine virtuali.

Dopo aver individuato il nome del tuo dispositivo di rete, apri un altro terminale e prosegui con la prossima sezione della guida.

Creazione dei File di Configurazione

La configurazione di systemd-networkd è piuttosto semplice, il che potrebbe sorprendere, dato che si tratta di un’utility di gestione della rete da riga di comando. Tuttavia, in pieno stile systemd, è facile da capire e configurare.

In questa sezione della guida, creeremo un file di configurazione di base per l’utilizzo di ethernet con systemd-networkd. Non tratteremo configurazioni più complesse. Per configurazioni avanzate, consulta il manuale di systemd-networkd digitando il comando man systemd-networkd nel terminale.

Per creare un nuovo file di configurazione per systemd-networkd, apri un terminale. Una volta aperto, digita il comando sudo -s per elevare i privilegi della sessione a root.

sudo -s

Con il terminale in modalità root, usa il comando touch per creare un nuovo file di configurazione nella cartella /etc/systemd/network/.

touch /etc/systemd/network/20-wired.network

Dopo aver creato il file di configurazione, aprilo con l’editor di testo Nano per modificarlo.

nano -w /etc/systemd/network/20-wired.network

In Nano, incolla il seguente codice. Attenzione: questo codice deve essere modificato, quindi non salvare finché non hai completato le modifiche.

Nota: sostituisci “ETHERNET-ID” con il nome della tua scheda di rete, individuato nella sezione precedente della guida.

[Match]
Name = ETHERNET-ID

[Network]
DHCP = yes
    

Dopo aver inserito il codice nel file di configurazione, salva le modifiche con Ctrl + O ed esci con Ctrl + X.

Avvio di systemd-networkd

Systemd-networkd è configurato. Ora è il momento di metterlo in funzione. Per farlo, riavvia il servizio con il comando restart. Questo comando farà sì che systemd-networkd prenda atto del nuovo file di configurazione.

systemctl restart systemd-networkd

Dopo il riavvio del servizio, la tua scheda di rete dovrebbe essere gestita da systemd-networkd.

Cerchi altro? Dai un’occhiata alla nostra lista dei migliori strumenti di monitoraggio della rete Linux.