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 , 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:noEsaminiamo 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.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: — 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 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. .
Fonte: habr.com
