Al giorno d'oggi non si può fare molto con un computer senza la connettività di rete. Sia che dobbiate aggiornare i pacchetti su un server, sia che dobbiate semplicemente navigare su siti web esterni dal vostro portatile, avrete bisogno di un accesso alla rete! Questa guida si propone di fornire agli utenti di Rocky Linux le conoscenze di base sull'impostazione della connettività di rete.
A partire da Rocky Linux 9 sono cambiate molte cose nella configurazione di rete. Uno dei cambiamenti principali è il passaggio da Network-Scripts (ancora disponibile per l'installazione, ma di fatto deprecato) all'uso di Network Manager e di file chiave, piuttosto che di file basati su ifcfg'. A partire dal 9,NetworkManagerdà priorità aikeyfilesrispetto ai precedentiifcfg`. Dal momento che questa è l'impostazione predefinita, l'operazione di configurazione della rete dovrebbe considerare l'impostazione predefinita come il modo corretto di fare le cose, dato che altri cambiamenti nel corso degli anni hanno comportato la deprecazione e la rimozione di utilità più vecchie. Questa guida cercherà di guidarvi nell'uso di Network Manager e delle ultime modifiche apportate a Rocky Linux 9.
A livello utente, lo stack di rete è gestito da NetworkManager. Questo strumento viene eseguito come servizio ed è possibile verificarne lo stato con il seguente comando:
Come indicato all'inizio, i file di configurazione predefiniti sono ora file keys. È possibile vedere come NetworkManager assegna la priorità a questi file eseguendo il seguente comando:
Notate all'inizio del file di configurazione il riferimento al keyfile seguito da ifcfg-rh. Questo significa che l'impostazione predefinita è il keyfile. Ogni volta che si esegue uno degli strumenti di NetworkManager per configurare un'interfaccia (ad esempio: nmcli o nmtui), questo costruisce o aggiorna automaticamente i file delle chiavi.
Configurazione posizione di archiviazione
In Rocky Linux 8, la posizione di memorizzazione per la configurazione di rete era in /etc/sysconfig/Network-Scripts/. Con Rocky Linux 9, il nuovo percorso di archiviazione predefinito per i file chiave è in /etc/NetworkManager/system-connections.
L'utilità principale (ma non l'unica) utilizzata per configurare un'interfaccia di rete è il comando nmtui. Questo può essere fatto anche con il comando nmcli, ma è molto meno intuitivo. Possiamo mostrare l'interfaccia come è attualmente configurata usando nmcli con:
Esistono alcuni modi o meccanismi per assegnare ai sistemi le informazioni di configurazione IP. I due metodi più comuni sono: lo schema Configurazione IP statica e lo schema Configurazione IP dinamica.
Lo schema di configurazione IP statico è molto diffuso nei sistemi o nelle reti di tipo server.
L'approccio IP dinamico è molto diffuso nelle reti domestiche e di ufficio o nei sistemi di classe workstation e desktop in ambiente aziendale. Lo schema dinamico di solito necessita di qualcosa in più che sia disponibile localmente e che possa fornire le informazioni di configurazione IP corrette alle workstation e ai desktop richiedenti. Questo qualcosa si chiama Dynamic Host Configuration Protocol (DHCP). In una rete domestica, e anche nella maggior parte delle reti aziendali, questo servizio è fornito da un server DHCP configurato allo scopo. Può trattarsi di un server separato o di una parte della configurazione del router.
Nella sezione precedente, la configurazione visualizzata per l'interfaccia enp0s3 è generata dal file .ini/etc/NetworkManager/system-connections/enp0s3.nmconnection. Questo indica che l'indirizzo IP4.ADDRESS[1] è stato configurato staticamente e non dinamicamente tramite DHCP. Se si vuole riportare questa interfaccia a un indirizzo allocato dinamicamente, il modo più semplice è usare il comando nmtui.
Per prima cosa, eseguire il comando nmtui alla riga di comando, che dovrebbe mostrare quanto segue
È già presente la selezione "Edit a connection", quindi premere il tasto TAB in modo da evidenziare "OK" e premere INVIO
Verrà visualizzata una schermata che mostra le connessioni Ethernet della macchina e consentirà di sceglierne una. Nel nostro caso, ce n'è SOLO uno, quindi è già evidenziato; dobbiamo semplicemente premere il tasto TAB finché non viene evidenziato "Edit" e poi premere INVIO
Una volta fatto questo, ci troveremo nella schermata che mostra la nostra configurazione attuale. Occorre passare da " Manual " a " Automatic ", quindi premere più volte il tasto TAB fino a evidenziare " Manual " e poi premere INVIO.
La freccia verso l'alto fino a evidenziare " Automatic" e quindi premere INVIO
Una volta che l'interfaccia è passata ad "Automatic", è necessario rimuovere l'IP assegnato staticamente, quindi premere il tasto TAB fino a evidenziare "Remove"accanto all'indirizzo IP e premere INVIO.
Infine, premete più volte il tasto TAB finché non arrivate in fondo alla schermata nmtui e non viene evidenziato "OK" e premete INVIO
È possibile disattivare e riattivare l'interfaccia anche con nmtui, ma facciamo questo con nmcli. In questo modo è possibile regolare la disattivazione dell'interfaccia e la sua riattivazione, in modo che l'interfaccia non sia mai inattiva per molto tempo:
nmcli con down enp0s3 && nmcli con up enp0s3
È l'equivalente del vecchio ifdown enp0s3 && ifup enp0s3 usato nelle vecchie versioni del sistema operativo.
Per verificare che abbia funzionato, controllate con il comando ip addr o con il comando nmcli device show enp0s3 che abbiamo usato in precedenza.
ip addr
In caso di successo, si dovrebbe vedere che l'IP statico è stato rimosso e che è stato aggiunto un indirizzo allocato dinamicamente, come in questo caso:
L'uso di nmtui è piacevole, ma se si vuole solo riconfigurare rapidamente l'interfaccia di rete senza dover passare tra una schermata e l'altra, probabilmente è meglio usare nmcli da solo. Vediamo l'esempio precedente di un IP assegnato staticamente e i passi per riconfigurare l'interfaccia in DHCP usando solo nmcli.
Prima di iniziare, è necessario sapere che per riconfigurare l'interfaccia in DHCP è necessario:
Rimuovere il gateway IPv4
Rimuovere l'indirizzo IPv4 assegnato staticamente
Cambiare il metodo IPv4 in automatico
Disattivare e riattivare l'interfaccia
Si noti anche che non stiamo usando esempi che dicono di usare -ipv4.address ecc. Questi non cambiano completamente l'interfaccia. Per farlo, è necessario impostare ipv4.address e ipv4.gateway su una stringa vuota. Anche in questo caso, per risparmiare il più possibile tempo con il nostro comando, li uniremo tutti in un'unica riga:
nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3
Eseguendo nuovamente il comando ip addr si otterranno gli stessi risultati di quando abbiamo eseguito le modifiche con nmtui. Ovviamente potremmo fare tutto anche al contrario (cambiando il nostro indirizzo DHCP con uno statico). Per farlo, si eseguono i comandi al contrario, iniziando con il cambiare ipv4.method in manual, impostando ipv4.gateway e quindi impostando ipv4.address. Poiché in tutti questi esempi stiamo riconfigurando completamente l'interfaccia e non aggiungendo o sottraendo valori ad essa, non utilizzeremo gli esempi che parlano dell'uso di +ipv4.method,+ipv4.gateway, and +ipv4.address. Se si usassero questi comandi al posto di quelli usati sopra, si otterrebbe un'interfaccia con sia un indirizzo assegnato da DHCP che uno assegnato staticamente. Detto questo, a volte può essere molto utile. Se si dispone di un servizio Web in ascolto su un IP e di un server SFTP in ascolto su un altro IP. È molto utile disporre di un metodo per assegnare più IP a un'interfaccia.
L'impostazione dei server DNS può essere effettuata con nmtui o nmcli. Sebbene l'interfaccia nmtui sia facile da navigare e molto più intuitiva, il processo è molto più lento. L'operazione con nmcli è molto più veloce. Nel caso dell'indirizzo assegnato dal DHCP, di solito non è necessario impostare i server DNS, perché di solito vengono inoltrati dal server DHCP. Detto questo, è possibile aggiungere staticamente i server DNS a un'interfaccia DHCP. Nel caso di un'interfaccia assegnata staticamente, sarà NECESSARIO fare questa operazione, poiché dovrà sapere come ottenere la risoluzione DNS e non avrà un metodo assegnato automaticamente.
Poiché l'esempio migliore per tutto questo è un IP assegnato staticamente, torniamo al nostro indirizzo statico originale della nostra interfaccia di esempio (enp0s3). Prima di modificare i parametri DNS, dobbiamo vedere quali sono gli attuali valori. Per ottenere una risoluzione corretta dei nomi, rimuovere i server DNS già impostati e aggiungerne di diversi. Attualmente ipv4.dns è impostato su 8.8.8.8.8.8.4.4.192.168.1.1. In questo caso, non è necessario impostare ipv4.dns come una stringa vuota. Possiamo semplicemente usare il comando seguente per sostituire i nostri valori:
nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1'
L'esecuzione di nmcli con show enp0s3 | grep ipv4.dns dovrebbe mostrare che la modifica dei server DNS è avvenuta con successo. Per attivare tutto, disattiviamo e riattiviamo l'interfaccia in modo che le modifiche vengano attivate:
nmcli con down enp0s3 && nmcli con up enp0s3
Per verificare se la risoluzione dei nomi viene effettuata, provare a eseguire il ping di un host noto. Utilizzeremo google.com come esempio:
Il comando ip (fornito dal pacchetto iproute2) è un potente strumento per ottenere informazioni e configurare la rete di un sistema Linux moderno come Rocky Linux.
In questo esempio, assumeremo i seguenti parametri:
Sebbene sia ancora possibile utilizzare questo metodo per portare l'interfaccia su e giù in Rocky Linux 9, il comando reagisce molto più lentamente rispetto al semplice comando nmcli.
Per far cadere e ripartire il enp0s3 possiamo semplicemente usare:
Se si volesse assegnare un secondo IP all'interfaccia, invece di rimuovere l'indirizzo 192.168.1.151, sarebbe sufficiente aggiungere il secondo indirizzo con:
ipaddradd192.168.1.152/24devenp0s3
Si può verificare se l'indirizzo IP è stato aggiunto con
Mentre porta l'interfaccia su e giù usando l'utilità ip è molto più lenta di nmcli, ip ha un vantaggio distinto quando si impostano indirizzi IP nuovi o aggiuntivi, come accade in tempo reale, senza portare l'interfaccia giù e su.
Negli esempi precedenti abbiamo effettuato alcuni test. La cosa migliore da fare è iniziare con il ping del gateway predefinito. Questo dovrebbe funzionare sempre:
Eseguire un test per verificare che venga visualizzato un host raggiungibile esterno alla rete. Per il test che segue, utilizziamo il server DNS aperto di Google:
Se la macchina dispone di diverse interfacce e si desidera eseguire il test da una particolare interfaccia, è sufficiente utilizzare l'opzione -I con ping:
In Rocky Linux 9 sono state apportate molte modifiche allo stack di rete. Tra queste c'è la priorità dei keyfile rispetto ai file ifcfg usati in precedenza e presenti in Network-Scripts. Poiché la direzione del cambiamento nelle future versioni di Rocky Linux prevede la deprecazione e la rimozione degli script di rete, è meglio concentrare l'attenzione su metodologie come nmcli, nmtui e, in alcuni casi, ip, per la configurazione della rete.
A livello utente, lo stack di rete è gestito da NetworkManager. Questo strumento viene eseguito come servizio ed è possibile verificarne lo stato con il seguente comando:
NetworkManager applica semplicemente una configurazione letta dai file presenti in /etc/sysconfig/network-scripts/ifcfg-<IFACE_NAME>.
Ogni interfaccia di rete ha il suo file di configurazione. Di seguito è riportato un esempio di configurazione predefinita di un server:
Il nome dell'interfaccia è enp1s0, quindi il nome del file sarà /etc/sysconfig/network-scripts/ifcfg-enp1s0.
Consigli:
Esistono alcuni modi o meccanismi per assegnare ai sistemi le informazioni di configurazione IP. I due metodi più comuni sono: lo schema di configurazione IP statica e lo schema di configurazione IP dinamica.
Lo schema di configurazione IP statico è molto diffuso nei sistemi o nelle reti di tipo server.
L'approccio IP dinamico è molto diffuso nelle reti domestiche e di ufficio o nei sistemi di classe workstation e desktop. Lo schema dinamico di solito necessita di qualcosa di aggiuntivo, disponibile localmente, in grado di fornire le informazioni di configurazione IP corrette alle workstation e ai desktop che ne fanno richiesta. Questo qualcosa si chiama Dynamic Host Configuration Protocol (DHCP).
Gli utenti di casa o dell'ufficio spesso non devono preoccuparsi del DHCP. Questo perché qualcosa di diverso se ne occupa automaticamente in background. L'utente finale deve connettersi fisicamente o in modalità wireless alla rete giusta (e naturalmente assicurarsi che i suoi sistemi siano accesi)!
Nel precedente elenco /etc/sysconfig/network-scripts/ifcfg-enp1s0, vediamo che il valore del parametro o chiave BOOTPROTO è impostato su none. Il sistema configurato è impostato su uno schema di indirizzi IP statici.
Se invece si vuole configurare il sistema per utilizzare uno schema di indirizzi IP dinamici, si dovrà cambiare il valore del parametro BOOTPROTO da none a dhcp e rimuovere anche le linee IPADDR, PREFIX e GATEWAY. Questo è necessario perché tutte le informazioni saranno ottenute automaticamente da qualsiasi server DHCP disponibile.
Per configurare l'attribuzione di un indirizzo IP statico, impostare quanto segue:
IPADDR: l'indirizzo IP da assegnare all'interfaccia
La funzione principale di NetworkManager è la gestione delle "connessioni", che mappano un dispositivo fisico a più componenti di rete logici, come l'indirizzo IP e le impostazioni DNS. Per visualizzare le connessioni esistenti gestite da NetworkManager, è possibile eseguire nmcli connection show.
Dall'output precedente, possiamo determinare che NetworkManager gestisce una connessione (NAME) chiamata enp1s0 che si riferisce al dispositivo fisico (DEVICE) enp1s0.
Nome della connessione
In questo esempio, la connessione e il dispositivo condividono lo stesso nome, ma ciò potrebbe non essere sempre vero. È comune vedere una connessione chiamata System eth0 che mappa un dispositivo chiamato eth0, ad esempio.
Ora che conosciamo il nome della nostra connessione, possiamo visualizzarne le impostazioni. A tale scopo, utilizzare il comando nmcli connection show [connection], che stamperà tutte le impostazioni registrate da NetworkManager per la connessione in questione.
Nella colonna di sinistra si trova il nome dell'impostazione e in quella di destra il valore.
Ad esempio, possiamo vedere che il metodo ipv4.method qui è attualmente impostato su auto. Ci sono molti valori consentiti per l'impostazione ipv4.method, ma i due principali che molto probabilmente si vedranno sono:
auto: per l'interfaccia viene utilizzato il metodo automatico appropriato (DHCP, PPP, ecc.) e la maggior parte delle altre proprietà possono essere lasciate non impostate.
manual: viene utilizzato un indirizzamento IP statico e almeno un indirizzo IP deve essere indicato nella proprietà 'addresses'.
Se invece si desidera configurare il sistema in modo che utilizzi uno schema di indirizzi IP statici, è necessario modificare il valore di ipv4.method in manual e specificare anche ipv4.gateway e ipv4.addresses.
Per modificare un'impostazione, è possibile utilizzare il comando nmcli nmcli connection modify [connection] [setting] [value].
# set 10.0.0.10 as the static ipv4 address[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.addresses10.0.0.10
# set 10.0.0.1 as the ipv4 gateway[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.gateway10.0.0.1
# change ipv4 method to use static assignments (set in the previous two commands)[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.methodmanual
Quando viene aggiornata la connessione?
nmcli connection edit non modificherà la configurazione runtime, ma aggiornerà i file di configurazione /etc/sysconfig/network-scripts con i valori appropriati in base a ciò che si è detto a nmcli di configurare.
Per configurare i server DNS con NetworkManager tramite la CLI, è possibile modificare l'impostazione ipv4.dns.
# set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.dns'10.0.0.1 1.1.1.1'
Il comando ip (fornito dal pacchetto iproute2) è un potente strumento per ottenere informazioni e configurare la rete di un sistema Linux moderno come Rocky Linux.
In questo esempio, assumeremo i seguenti parametri:
Per aggiungere all'interfaccia ens19 il nostro nuovo indirizzo IP di esempio, utilizzare il seguente comando:
ifcfgens19add192.168.20.10/24
Per rimuovere l'indirizzo:
ifcfgens19del192.168.20.10/24
Per disattivare completamente l'indirizzo IP su questa interfaccia:
ifcfgens19stop
Si noti che questa operazione non comporta la disattivazione dell'interfaccia, ma semplicemente la disassegnazione di tutti gli indirizzi IP dall'interfaccia.
Quindi, per assicurarsi che la configurazione del routing sia corretta, provare a puntare un host esterno, come questo noto resolver DNS pubblico:
ping-c38.8.8.8
Se la macchina dispone di diverse interfacce di rete e si desidera effettuare una richiesta ICMP attraverso un'interfaccia specifica, è possibile utilizzare la flag -I:
ping-Iens19-c3192.168.20.42
Ora è il momento di verificare che la risoluzione DNS funzioni correttamente. Come promemoria, la risoluzione DNS è un meccanismo utilizzato per convertire i nomi delle macchine a misura d'uomo nei loro indirizzi IP e viceversa (reverse DNS).
Se il file /etc/resolv.conf indica un server DNS raggiungibile, dovrebbe funzionare quanto segue:
Rocky Linux 8 dispone degli strumenti per configurare la rete dalla riga di comando. Questo documento dovrebbe consentirvi di utilizzare rapidamente questi strumenti.
Contributors: Steven Spencer, Hayden Young, Ganna Zhyrnova