Netplan e come prepararlo correttamente

Ubuntu è un sistema operativo straordinario, non lavoravo con Ubuntu server da tempo e non aveva senso aggiornare il mio Desktop da una versione stabile. E così, di recente, mi sono trovato di fronte al nuovo rilascio di Ubuntu server 18.04; la mia sorpresa non aveva limiti quando ho capito di essere rimasto indietro e non riuscivo a configurare la rete poiché il buon vecchio sistema di configurazione delle interfacce di rete tramite la modifica del file /etc/network/interfaces è andato in disuso. Ma cosa l'ha sostituito? Qualcosa di terribile e, a prima vista, del tutto incomprensibile: ecco a voi «Netplan».

A dire il vero, all'inizio non riuscivo a capire di cosa si trattasse e 'perché fosse necessario, dato che tutto era così comodo', ma dopo un po' di pratica ho realizzato che ha il suo fascino. Dobbiamo smettere di piagnucolare e continuare: cos'è Netplan? È un nuovo strumento per la configurazione della rete in Ubuntu; almeno 'non ho mai visto nulla del genere in altri sistemi operativi'. La principale differenza di Netplan è che la configurazione viene scritta in un linguaggio YAML, sì, sì, non avete sentito male, YAML. Gli sviluppatori hanno deciso di stare al passo con i tempi (e per quanto ne parlino bene, io lo considero comunque un linguaggio terribile). Il principale svantaggio di questo linguaggio è che è molto sensibile agli spazi; consideriamo ora la configurazione con un esempio.

I file di configurazione si trovano nel percorso /etc/netplan/nomefile.yaml; tra ciascun blocco devono esserci + 2 spazi.

1) L'intestazione standard appare così:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

Esaminiamo cosa abbiamo appena fatto:

  • network: — questo è il blocco di apertura della configurazione.
  • renderer: networkd — qui indichiamo il gestore di rete che utilizzeremo, che può essere networkd o NetworkManager.
  • version: 2 — qui, come ho capito, è la versione di YAML.
  • ethernets: — questo blocco indica che configureremo il protocollo Ethernet.
  • enps0f0: — indichiamo quale adattatore di rete configureremo.
  • dhcp4:no — disabilitiamo DHCP v4; per DHCP v6, lo indichiamo con dhcp6.

2) Proviamo a impostare indirizzi IP:

    enp3s0f0:
      dhcp4:no
      macaddress: bb:11:13:ab:ff:32
      addresses: [10.10.10.2/24, 10.10.10.3/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: 8.8.8.8

Qui abbiamo impostato il MAC, l'IPv4, il gateway e il server DNS. Notate che se abbiamo bisogno di più di un indirizzo IP, dobbiamo scriverli separati da una virgola con uno spazio obbligatorio dopo.

3) E se avessimo bisogno di bonding?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • bonds: — blocco che spiega che configureremo il bonding.
  • bond0: — nome arbitrario dell'interfaccia.
  • interfaces: — insieme di interfacce raccolte in un bonding, »come detto in precedenza, se ci sono più parametri, li descriviamo tra parentesi quadre".
  • parameters: — descriviamo il blocco di configurazione dei parametri.
  • mode: — indichiamo la modalità secondo cui funzionerà il bonding.
  • mii-monitor-interval: — impostiamo l'intervallo di monitoraggio a 1 secondo.

All'interno del blocco con il nome del bonding, è possibile configurare parametri come addresses, gateway4, routes, ecc.

Abbiamo aggiunto la ridondanza alla nostra rete, ora resta solo da aggiungere vlan e la configurazione può essere considerata completata.

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true

  • vlans: — dichiariamo il blocco di configurazione vlan.
  • vlan10: — nome arbitrario dell'interfaccia vlan.
  • id: — tag della nostra vlan.
  • link: — interfaccia tramite cui sarà disponibile la vlan.
  • routes: — dichiariamo il blocco di descrizione delle rotte.
  • — to: — definiamo l'indirizzo/rete per cui è necessaria la rotta.
  • via: — indichiamo il gateway tramite cui sarà accessibile la nostra rete.
  • on-link: — indichiamo che devono essere sempre impostate le rotte all'attivazione del link.

Fate attenzione a come dispongo gli spazi, nel linguaggio YAML questo è molto importante.

Ecco, abbiamo descritto le interfacce di rete, creato il bonding e persino aggiunto le vlan. Applichiamo la nostra configurazione, il comando netplan apply verificherà che non ci siano errori e la applicherà in caso di successo. In seguito, la configurazione si attiverà automaticamente al riavvio del sistema.

Riunendo tutti i blocchi di codice precedenti, ecco cosa abbiamo ottenuto:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: no
    ensp3s0f1:
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  vlan20:
    id: 20
    link: bond0
    dhcp4: no
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

Ecco la nostra rete pronta per l'uso, non è stato così spaventoso come sembrava inizialmente e il codice è risultato molto bello e leggibile. P.C grazie a un ottimo manuale su netplan disponibile al link https://netplan.io/.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster