Padroneggiare Netplan su Ubuntu: Guida completa alla configurazione di rete con YAML

1. Panoramica di Netplan su Ubuntu

Che cos’è Netplan?

Netplan è uno strumento di gestione della configurazione di rete introdotto nelle versioni di Ubuntu a partire dalla 17.10. In precedenza, si utilizzavano strumenti come ifconfig e /etc/network/interfaces, ma Netplan offre un nuovo approccio alla configurazione di rete. Uno dei maggiori vantaggi di Netplan è che utilizza file YAML per descrivere le impostazioni di rete. Questo rende la configurazione semplice e coerente, consentendo di gestire facilmente anche ambienti di rete complessi.

Netplan supporta backend come NetworkManager e systemd-networkd ed è disponibile sia nelle edizioni Ubuntu Desktop che Server. Ciò permette una gestione unificata della rete su diversi ambienti.

Perché usare Netplan?

Rispetto ai metodi tradizionali di configurazione di rete, Netplan offre i seguenti vantaggi:

  1. Sintassi semplice: il formato YAML è intuitivo e chiaramente strutturato, rendendo le configurazioni facili da comprendere anche per i principianti.
  2. Gestione unificata: poiché funziona sia su desktop che su server, varie configurazioni di rete possono essere gestite centralmente.
  3. Modifiche dinamiche: modificare e applicare il file di configurazione consente aggiornamenti in tempo reale delle impostazioni di rete.

Struttura di base di Netplan

I file di configurazione di Netplan si trovano tipicamente nella directory /etc/netplan/ e utilizzano l’estensione .yaml. Questi file contengono informazioni come la configurazione delle interfacce di rete, gli indirizzi IP e i dettagli dei server DNS.

Di seguito è riportato un esempio di configurazione di base di Netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

In questo esempio, l’interfaccia Ethernet enp3s0 è configurata per ottenere un indirizzo IP tramite DHCP.

Il ruolo di Netplan su Ubuntu 18.04 LTS e versioni successive

Netplan è installato di default su Ubuntu 18.04 LTS e versioni successive ed è ampiamente utilizzato per la gestione della rete sia su desktop che su server. Negli ambienti server, dove spesso sono necessarie più interfacce di rete o assegnazioni di IP statici, la flessibilità di Netplan diventa particolarmente utile.

Successivamente, esploreremo esempi pratici di configurazione della rete usando Netplan.

2. Configurazione di base di Netplan

Posizione dei file di configurazione di Netplan

I file di configurazione di Netplan sono tipicamente memorizzati nella directory /etc/netplan/. È possibile modificare le impostazioni di rete editando questi file .yaml. Nomi di file come 50-cloud-init.yaml sono comuni, ma possono variare a seconda dell’ambiente.

Per aprire il file di configurazione, usate un editor di testo come vi o nano:

sudo vi /etc/netplan/50-cloud-init.yaml

Configurazione di indirizzo IP dinamico (DHCP)

Per ottenere automaticamente un indirizzo IP tramite DHCP, utilizzate la seguente configurazione YAML. Si tratta della configurazione più semplice ed è comunemente usata in ambienti domestici e d’ufficio.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

Configurazione di indirizzo IP statico

Alcuni ambienti richiedono l’assegnazione di un indirizzo IP statico a server o dispositivi specifici. L’esempio seguente mostra come configurare un indirizzo IP statico.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Applicare la configurazione

Dopo aver modificato il file di configurazione, applicate la configurazione di Netplan usando il comando seguente:

sudo netplan apply

Verificare la configurazione

Per verificare se le impostazioni di Netplan sono state applicate correttamente, controllate lo stato dell’interfaccia di rete con il comando seguente:

ip a

3. Configurazione di più interfacce di rete

Configurazione di più interfacce Ethernet

I dispositivi con più interfacce di rete possono assegnare impostazioni diverse a ciascuna interfaccia. L’esempio qui sotto configura due interfacce Ethernet:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Bonding per ridondanza

Bonding combina più interfacce di rete in un’unica interfaccia virtuale, fornendo ridondanza e migliorando la disponibilità. L’esempio seguente crea un’interfaccia bond denominata bond0:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

Configurazione Wi‑Fi

Netplan supporta anche la configurazione Wi‑Fi. L’esempio seguente si connette a un SSID specifico:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

Configurazione VLAN

Le LAN virtuali (VLAN) possono segmentare logicamente le reti. L’esempio seguente crea una VLAN su enp3s0:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

4. Configurazione avanzata di Netplan

Configurazione routing statico

Quando si collegano reti tramite più router, è necessario il routing statico. L’esempio seguente specifica una rotta per accedere a una rete specifica:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

Questa configurazione imposta una rotta statica per la rete 10.0.0.0/24 tramite il gateway predefinito 192.168.1.1.

Gateway predefiniti multipli

Netplan consente di impostare gateway predefiniti diversi per interfaccia. Questo è utile quando si accede a Internet attraverso segmenti di rete differenti:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

Configurazione server DNS

L’esempio seguente specifica i server DNS pubblici di Google:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Configurazione avanzata del bonding

I modi di bonding possono essere cambiati per comportamenti diversi. L’esempio seguente configura il bonding round‑robin:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

La modalità balance-rr alterna il traffico tra le due interfacce, migliorando le prestazioni mediante la distribuzione della larghezza di banda.

Configurazione VLAN avanzata

Le VLAN sono utilizzate in reti su larga scala per dividere logicamente gli ambienti. L’esempio seguente assegna l’ID VLAN 100:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

Questo assegna l’ID VLAN 100 all’interfaccia enp3s0, creando una rete virtuale segmentata.

5. Risoluzione dei problemi di Netplan

Anche se Netplan è comodo, errori di configurazione o limitazioni del sistema possono causare problemi. Questa sezione spiega i problemi comuni e le loro soluzioni.

Problemi comuni di Netplan e cause

1. Configurazione non applicata

  • Errore di indentazione YAML : YAML è rigido sull’indentazione. Spaziature errate impediscono il corretto parsing.
  • Nomi di interfaccia errati : Assicurati che i nomi delle interfacce corrispondano all’output del comando ip a.

Soluzioni

  1. Esegui netplan apply dopo aver salvato il file di configurazione.
  2. Usa sudo netplan try per testare le modifiche prima di applicarle permanentemente.
    sudo netplan apply
    
    sudo netplan try
    

2. Errori di connessione di rete

  • Impostazioni di gateway o DNS errate : Verifica gli indirizzi IP e la configurazione DNS.
  • Problemi di interfaccia fisica : Controlla i cavi e l’hardware.

Soluzioni

  1. Usa il comando ping per testare la connettività:
    ping 8.8.8.8
    
  1. Riapplica la configurazione di rete e riavvia i servizi:
    sudo systemctl restart networkd
    

3. Messaggi di errore durante netplan apply

Gli errori si verificano quando la configurazione è errata o l’interfaccia non è riconosciuta.

  • Messaggio di errore di esempio : Error in network configuration: failed to bring up device enp3s0

Verifica il nome corretto dell’interfaccia usando ip a.

Soluzione

Controlla l’indentazione, l’ortografia, i nomi delle interfacce e la correttezza degli indirizzi IP.

Controllo dei log

I log di sistema sono utili per la risoluzione dei problemi. Usa il comando qui sotto per visualizzare i log relativi alla rete:

journalctl -u systemd-networkd

Questo mostra informazioni dettagliate per aiutare a risolvere gli errori di configurazione.

6. Riepilogo e prossimi passi

Usare Netplan permette di gestire le impostazioni di rete di Ubuntu in modo semplice ed efficiente. Di seguito trovi un riepilogo e i prossimi passi consigliati per approfondire.

Principali vantaggi di Netplan

  1. Configurazione YAML intuitiva : Facile da leggere e modificare.
  2. Progettazione di rete flessibile : Supporta più interfacce, bonding, rotte e VLAN.
  3. Interfaccia unificata : Funziona sia con systemd-networkd che con NetworkManager.
  4. Aggiornamenti in tempo reale : Applica le modifiche immediatamente con un solo comando.

Prossimi passi consigliati

  1. Progettazione di rete virtuale : Usa più VLAN per segmentare le reti logicamente.
  2. Configurazione IPv6 : Preparati per l’infrastruttura di rete moderna.
  3. Script di automazione : Automatizza le configurazioni usando Ansible o Puppet.
  4. Miglioramenti della sicurezza : Rafforza le impostazioni del firewall e del controllo accessi.

Risorse aggiuntive