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 , 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:noEsaminiamo 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.8Qui 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 ?
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 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 .
Fonte: habr.com
