GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Tutorial di configurazione della rete Netplan per principianti

Netplan è un'utilità sviluppata da Canonical, la società dietro Ubuntu. Fornisce un'astrazione della configurazione di rete sui due sistemi "backend" attualmente supportati (o "renderer" nella terminologia Netplan):networkd e Gestore di rete . Utilizzando Netplan, le interfacce di rete fisiche e virtuali vengono configurate tramite yaml file che vengono tradotti in configurazioni compatibili con il backend selezionato.

Su Ubuntu 20.04 Netplan sostituisce il metodo tradizionale di configurazione delle interfacce di rete usando il /etc/network/interfaces file; mira a rendere le cose più semplici e centralizzate (il vecchio modo di configurare le interfacce può ancora essere utilizzato:controlla il nostro articolo su Come tornare in rete a /etc/network/interfaces su Ubuntu 20.04 Focal Fossa Linux). In questo articolo impareremo i principi di base alla base dell'utilità e, solo a titolo di esempio, come possiamo utilizzarla per configurare un indirizzo IPv4 statico per un'interfaccia di rete.

In questo tutorial imparerai :

  • La struttura di base dei file di configurazione di yaml utilizzati da Netplan
  • Come creare una semplice regola per assegnare un IP statico a un'interfaccia di rete
  • Come applicare le configurazioni utilizzando genera , prova e applica sottocomandi

Tutorial di configurazione della rete Netplan per principianti

Requisiti software e convenzioni utilizzati

Requisiti software e convenzioni della riga di comando Linux
Categoria Requisiti, convenzioni o versione del software utilizzata
Sistema Ubuntu 20.04 (Focale Fossa)
Software Netplan (installato per impostazione predefinita)
Altro Autorizzazioni di root per modificare i file di configurazione
Convenzioni # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando
$ – richiede l'esecuzione di determinati comandi linux come un normale utente non privilegiato

File di configurazione Netplan

Ci sono tre posizioni in cui possono essere collocati i file di configurazione di Netplan; in ordine di priorità sono:

  1. /run/netplan
  2. /etc/netplan
  3. /lib/netplan

Panoramica del design Netplan

All'interno di ciascuna di queste directory le configurazioni vengono create utilizzando file con .yaml estensione che vengono elaborati in lessicografico ordine, indipendentemente dalla directory in cui si trovano.

La priorità della directory ha un ruolo solo quando esistono file con lo stesso nome:in questi casi, viene analizzato solo il file contenuto nella directory con la priorità più alta.

Se un booleano o scalare parametro è definito in più di un file di configurazione, assumerà il valore definito nell'ultimo file analizzato; se i valori sono sequenze , invece, sono concatenati.

Gli utenti devono inserire le loro configurazioni all'interno di /etc/netplan directory; per impostazione predefinita l'unico file presente su un sistema Ubuntu 20.04 appena installato è /etc/netplan/01-network-manager-all.yaml . Nella prossima sezione vedremo le istruzioni che contiene e qual è il loro significato.

Il file /etc/netplan/01-network-manage-all.yaml

L'unico file di configurazione esistente /etc/netplan/ la directory su un sistema Ubuntu 20.04 appena installato è 01-network-manage-all.yaml . Diamo un'occhiata al suo contenuto:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

Come suggerito dal commento nel file, la configurazione ha lo scopo di impostare tutte le interfacce di rete del sistema che devono essere gestite dal NetworkManager renderer. Possiamo osservare che le direttive sono rientrate all'interno del nodo principale, network . Dal momento che abbiamo a che fare con file yaml, il rientro è fondamentale.

Altre due parole chiave che possiamo trovare nel file sono version e renderer :il primo specifica la versione della sintassi in uso, il secondo il backend di sistema (rete rispetto a NetworkManager ).

Nella prossima sezione di questo tutorial creeremo un esempio di configurazione leggermente più complesso e lo useremo per assegnare un indirizzo IPv4 statico a un'interfaccia di rete.

Un esempio di configurazione:impostazione di un indirizzo IPv4 statico

Il file di configurazione che abbiamo visto sopra è piuttosto semplice; proviamo qualcosa di un po' più complesso e vediamo come possiamo configurare un indirizzo IPv4 statico utilizzando Netplan.

La prima cosa che dobbiamo fare è creare un nuovo file di configurazione, da analizzare dopo quello di default:chiamiamolo /etc/netplan/02-static-ip.yaml . All'interno del file, creiamo una regola che corrisponda alle interfacce di rete che vogliamo configurare:possiamo portare a termine l'attività utilizzando il match strofa.

Dentro il match sezione, possiamo selezionare una serie di interfacce fisiche in base al valore delle proprietà specificate. Affinché le impostazioni vengano applicate, tutte le proprietà devono corrispondere alla regola.

Nel file di configurazione scriviamo:

# Set static ip address for enp1s0 interface
network:
    version: 2
    renderer: NetworkManager
    ethernets:
        id0:
            match:
                name: enp1s0
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            gateway4: 192.168.122.1

Diamo un'occhiata più da vicino alle nuove istruzioni che abbiamo utilizzato nella configurazione. All'interno della network principale nodo, i dispositivi possono essere raggruppati per tipo:

  • ethernets
  • wifis
  • bridges

Poiché nel nostro esempio abbiamo a che fare con un dispositivo ethernet, abbiamo usato ethernets stanza. Dentro il match stanza, abbiamo fatto riferimento all'interfaccia con il suo name :enp1s0 . Le regole di corrispondenza possono anche essere basate su macaddress e, solo quando si utilizza networkd come renderer, su driver che è il nome del driver del kernel Linux utilizzato per i dispositivi.

Per raggiungere la configurazione desiderata, abbiamo utilizzato una serie di direttive. Poiché vogliamo assegnare un indirizzo statico, abbiamo disabilitato dhcp4 e utilizzato gli addresses parola chiave per associare un indirizzo IPv4 all'interfaccia. È possibile specificare più indirizzi:devono essere forniti insieme alla subnet mask.

Impostiamo anche gli indirizzi dei nameservers nell'omonima strofa. Infine, impostiamo l'indirizzo IPv4 del gateway che l'interfaccia dovrebbe utilizzare con il gateway4 parola chiave.

Semplificazione della configurazione

La configurazione che abbiamo utilizzato nell'esempio sopra può essere leggermente semplificata. Per fare riferimento all'interfaccia a cui vogliamo assegnare l'indirizzo statico abbiamo usato il match strofa, tuttavia, avremmo potuto ometterla. Poiché desideriamo che le nostre impostazioni vengano applicate a un solo dispositivo specifico, possiamo fare riferimento direttamente utilizzando il suo nome prevedibile (enp1s0 ) come id :

network:
    version: 2
    renderer: NetworkManager
    ethernets:
        enp1s0:
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            gateway4: 192.168.122.1

Quando il match viene utilizzata la stanza, l'id (id0 nell'esempio precedente) è arbitrario e viene utilizzato per fare riferimento ai dispositivi configurati da altre sezioni del file di configurazione. Quando il match viene omesso, invece, l'id deve corrispondere al nome prevedibile del dispositivo. Quando si lavora con dispositivi virtuali come bridge o bond, l'id non viene utilizzato per fare riferimento a un'interfaccia esistente, ma rappresenta il nome da utilizzare al momento della creazione dell'interfaccia.

A questo punto la nostra configurazione è pronta; tutto ciò che dobbiamo fare è salvarlo e testarlo.

Test e applicazione di una configurazione Netplan

Nella sezione precedente abbiamo visto come creare una semplice configurazione Netplan per fornire un indirizzo IPv4 statico per un'interfaccia di rete. Ora è il momento di testare la configurazione, per vedere se funziona correttamente. Per raggiungere il nostro obiettivo possiamo utilizzare il netplan utilità e il try sottocomando.

Il try sottocomando del netplan l'utilità, come suggerisce il nome, viene utilizzata per provare una configurazione e, facoltativamente, ripristinarla se l'utente non la conferma dopo un certo periodo di tempo. Il timeout predefinito è 120 secondi ma può essere modificato usando il --timeout opzione.

Come puoi vedere dall'output dell'ip address comando, l'indirizzo IPv4 corrente per enp1s0 l'interfaccia è 192.168.122.200 :

$ ip address|grep enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.122.200/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0

Applichiamo la configurazione:

$ sudo netplan try

Una volta eseguito il comando, sullo schermo viene visualizzato il seguente messaggio:

Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 120 seconds

Abbiamo abbastanza tempo per verificare se l'indirizzo IP dell'interfaccia è cambiato:

$ ip address|grep enp1s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.122.250/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0

Come possiamo vedere, l'indirizzo IPv4 è cambiato come previsto. In questo caso, tuttavia, trascorso il timeout, il comando non è riuscito a ripristinare la configurazione. Questo è un problema noto, riportato anche nella manpage dell'utility. In questi casi, per tornare completamente allo stato iniziale, dovrebbe essere sufficiente un riavvio.

È possibile utilizzare altri due comandi:

  • netplan generate
  • netplan apply

Il netplan generate Il comando converte le impostazioni nei file yaml in configurazioni appropriate per il renderer in uso, ma non le applica. Nella stragrande maggioranza dei casi non è pensato per essere chiamato direttamente:è invocato, ad esempio, da netplan apply che applica inoltre le modifiche senza un timeout di "ripristino".

Conclusioni

In questo tutorial ci siamo avvicinati a Netplan, un'utilità sviluppata da Canonical, attiva di default su Ubuntu 20.04 Focal Fossa. Lo scopo di questa utilità è di astrarre le configurazioni per le interfacce di rete utilizzando un file di configurazione yaml.

Tali configurazioni vengono quindi tradotte in configurazioni per il renderer specificato, come NetworkManager o networkd. In questo tutorial abbiamo visto come scrivere una semplice regola per impostare un indirizzo IP statico per un'interfaccia di rete, abbiamo imparato alcuni dei nodi che possono essere utilizzati nei file di configurazione e abbiamo visto come applicare le modifiche tramite il netplan try e netplan apply comandi. Qui abbiamo appena scalfito la superficie di ciò che può essere realizzato utilizzando Netplan. Se vuoi saperne di più, dai un'occhiata al sito Web di Netplan e alla pagina man dell'utilità.


Ubuntu
  1. Python SciPy Tutorial - Una guida per principianti

  2. Tutorial Jenkins:Nozioni di base per principianti

  3. Tutorial Podman - Nozioni di base per principianti

  4. Tutorial sul comando cd di Linux per principianti (8 esempi)

  5. Tutorial sul comando della data di Linux per principianti (8 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Bash Scripting Tutorial per principianti

Bash Heredoc Tutorial per principianti

Come installare Google Chrome su Ubuntu 20.04:Tutorial per principianti