Netplan e come prepararlo correttamente

Ubuntu è un sistema operativo straordinario; non avevo lavorato con Ubuntu server da un po' e non aveva senso aggiornare il mio Desktop con una versione stabile. Recentemente, mi sono trovato di fronte al nuovo rilascio di Ubuntu server 18.04, e la mia sorpresa è stata enorme quando ho capito di essere rimasto indietro e di non riuscire a configurare la rete, poiché il vecchio metodo di configurazione delle interfacce di rete tramite la modifica del file /etc/network/interfaces è ormai obsoleto. E cosa l'ha sostituito? Qualcosa di terribile e, a prima vista, completamente incomprensibile: ecco a voi «Netplan».

Devo ammettere che, inizialmente, non riuscivo a capire di cosa si trattasse e «a cosa servisse, dato che tutto era così comodo», ma dopo un po' di pratica ho capito che ha il suo fascino. Quindi basta con la poesia e continuiamo: cos'è Netplan? È un nuovo strumento per la configurazione della rete in Ubuntu, almeno «non ho incontrato nulla di simile in altre distribuzioni». 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 tenere il passo con i tempi (e per quanto possa essere lodato, continuo a considerarlo un linguaggio terribile). Il principale svantaggio di questo linguaggio è che è molto sensibile agli spazi, vediamo un esempio di configurazione.

I file di configurazione si trovano nel percorso /etc/netplan/nomefile.yaml, tra ogni 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: — è il blocco iniziale della configurazione.
  • renderer: networkd — qui indichiamo il gestore di rete che utilizzeremo, può essere networkd o NetworkManager.
  • version: 2 — qui, come ho capito, è la versione di YAML.
  • ethernets: — questo blocco indica che configureremo il protocollo ethernet.
  • enp3s0f0: — indichiamo quale adattatore di rete configureremo.
  • dhcp4:no — disattiviamo DHCP v4, per il 6 v6 dhcp6 di conseguenza.

2) Proviamo ad assegnare 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: — un blocco che spiega cosa configureremo per il bonding.
  • bond0: — un nome arbitrario per l'interfaccia.
  • interfaces: — un insieme di interfacce raccolte nel bonding; come accennato in precedenza, se ci sono più parametri, li descriviamo tra parentesi quadre.
  • parameters: — descriviamo il blocco delle impostazioni dei parametri.
  • mode: — indichiamo la modalità con 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 anche parametri come addresses, gateway4, routes, ecc.

Abbiamo aggiunto il failover per la nostra rete, ora rimane solo da aggiungere vlan e la configurazione può considerarsi conclusa.

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 del vlan.
  • vlan10: — un nome arbitrario per l'interfaccia vlan.
  • id: — il tag del nostro vlan.
  • link: — interfaccia tramite la quale il vlan sarà disponibile.
  • routes: — dichiariamo il blocco di descrizione dei percorsi.
  • — to: — impostiamo l'indirizzo/rete per il quale è necessario il percorso.
  • via: — indichiamo il gateway attraverso il quale la nostra rete sarà accessibile.
  • on-link: — indichiamo che i percorsi devono sempre essere specificati al sollevamento del link.

Fai attenzione a come sposto gli spazi, nel linguaggio YAML è molto importante.

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

Raccogliendo 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 all'inizio e il codice è venuto molto bello e leggibile. P.S. Grazie per il fantastico manuale su netplan a questo link. https://netplan.io/.

Fonte: habr.com

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