Rocky Linux: configurare IP statico, DHCP e DNS con nmcli

Su Rocky Linux configurate un indirizzo IP modificando il profilo di NetworkManager con nmcli e poi attivando il profilo. Prima distinguete nome della connessione e dispositivo; su un server remoto preparate una console indipendente da SSH per recuperare l'accesso se il cambio di indirizzo interrompe la sessione.

Controllare lo stato attuale della rete

Verificate dispositivi, profili attivi, indirizzi e instradamento:

nmcli device status
nmcli connection show --active
ip -brief address
ip route

DEVICE è il nome dell'interfaccia fisica o virtuale; NAME identifica il profilo di connessione. Una scheda può avere più profili salvati, mentre un dispositivo non gestito da NetworkManager richiede prima una verifica del sistema di gestione effettivamente in uso. Questi esempi presuppongono un profilo gestito da NetworkManager.

Negli esempi il profilo si chiama System eth0: sostituitelo con il nome reale e mantenete le virgolette se contiene spazi. Se il nome è duplicato, usate l'UUID (Universally Unique Identifier), l'identificativo univoco mostrato nell'elenco, per selezionare il profilo. Annotate anche il dispositivo associato.

Indirizzo statico e DHCP (Dynamic Host Configuration Protocol, assegnazione automatica dei parametri di rete) sono alternative; anche le due modalità IPv6 sono alternative. Scegliete soltanto i passaggi necessari alla rete, senza eseguire l'intero articolo come una sequenza di comandi. Non applicate questi esempi generici a bond, bridge, VPN o reti cloud senza verificarne i requisiti specifici.

Configurare un indirizzo IPv4 statico

Registrare i valori e preparare il ripristino

Prima di modificare qualcosa, annotate metodo, indirizzi, prefissi, gateway, DNS (Domain Name System, risoluzione dei nomi), rotte, metriche e UUID del profilo. Potete conservare l'output in una directory privata e scrivibile:

nmcli connection show 'System eth0'
(
  umask 077
  nmcli connection show 'System eth0' > system-eth0-before.txt
)

Con un file nuovo, umask 077 limita l'accesso al proprietario. Il reindirizzamento sovrascrive un file omonimo senza correggerne i permessi già esistenti: scegliete un nome nuovo se necessario. Controllate che il comando sia riuscito e che il file contenga i valori previsti; esaminate informazioni e permessi prima di condividere l'output.

Questo testo è un promemoria, non un file importabile per ripristinare il profilo. nmcli connection export supporta i profili VPN e non è il metodo per esportare una normale connessione Ethernet, come spiega il manuale di nmcli.

Per un backup del profilo persistente conservate anche una copia del file effettivamente usato dal backend, con proprietario e permessi originali. Con il backend keyfile i percorsi includono /etc/NetworkManager/system-connections/ e /run/NetworkManager/system-connections/; il secondo è volatile. Individuate il file corrispondente all'UUID prima dell'intervento, senza presumere che il nome del file coincida con quello del profilo. I sistemi che usano altri backend richiedono il relativo file di configurazione. Il riferimento keyfile di NetworkManager descrive percorsi e protezione dei file.

Impostare indirizzo, gateway e DNS

Usate valori assegnati dall'amministratore e verificate che l'indirizzo sia libero. 192.0.2.0/24 è una rete per documentazione: gli indirizzi qui sotto devono essere sostituiti, non copiati in produzione. Il prefisso /24 definisce la sottorete dell'esempio.

sudo nmcli connection modify 'System eth0' \
  ipv4.method manual \
  ipv4.addresses '192.0.2.20/24' \
  ipv4.gateway '192.0.2.1' \
  ipv4.dns '192.0.2.53 192.0.2.54'

Questa assegnazione sostituisce l'elenco ipv4.addresses del profilo. Se esistono indirizzi aggiuntivi da conservare, ricostruite l'elenco previsto prima di procedere. L'esempio presume che questa connessione debba fornire un gateway predefinito e che non sia impostato ipv4.never-default yes. Con più interfacce, rotte o metriche particolari, verificate il percorso desiderato: non aggiungete un gateway a ogni scheda.

Il comando modifica il profilo salvato. Dopo aver verificato il successo e i valori con nmcli connection show 'System eth0', attivatelo dalla console o dal percorso di gestione predisposto:

sudo nmcli connection up 'System eth0'

La riattivazione può interrompere SSH. Se l'indirizzo cambia, provate una nuova connessione al nuovo indirizzo e controllate indirizzo effettivo, route, risoluzione dei nomi e servizi necessari. Un messaggio di attivazione riuscita non prova da solo che il server sia raggiungibile dai client.

In caso di errore, usate la console per rileggere il profilo e ripristinare con nmcli connection modify i valori originari annotati, quindi riattivatelo e verificate il percorso. Tornare a DHCP non è un ripristino universale: su una rete che richiede configurazione statica può lasciare il server senza indirizzo utile.

Passare all'assegnazione IPv4 tramite DHCP

Usate questa alternativa solo su una rete che offre DHCP. Il comando seguente svuota indirizzo, gateway e DNS manuali dell'esempio e torna ad accettare i DNS automatici. La riattivazione parte soltanto se la modifica riesce:

sudo nmcli connection modify 'System eth0' \
  ipv4.method auto \
  ipv4.addresses '' \
  ipv4.gateway '' \
  ipv4.dns '' \
  ipv4.ignore-auto-dns no &&
sudo nmcli connection up 'System eth0'

ipv4.ignore-auto-dns no è necessario se in precedenza avete escluso i DNS ricevuti automaticamente. Questo esempio non azzera tutte le altre proprietà: rotte manuali, domini di ricerca, ipv4.ignore-auto-routes, metriche e ipv4.never-default vanno controllati separatamente in base al risultato desiderato.

Per mantenere DHCP ma scegliere i DNS IPv4 del profilo, impostate ipv4.ignore-auto-dns yes insieme all'elenco ipv4.dns, poi riattivate e verificate. Le impostazioni di altri profili, VPN o IPv6 possono contribuire alla risoluzione complessiva. La documentazione delle proprietà IPv4 distingue DNS, rotte e gateway.

Scegliere la configurazione IPv6

Usare la configurazione automatica

Per l'autoconfigurazione IPv6, che dipende dagli annunci del router e dalle condizioni della rete, il metodo è auto:

sudo nmcli connection modify 'System eth0' ipv6.method auto

Questo imposta il metodo del profilo, non cancella eventuali indirizzi, gateway o DNS manuali già registrati. Se volete rimuoverli, esaminate e svuotate esplicitamente le rispettive proprietà, controllando anche ipv6.ignore-auto-dns e le rotte. Non disabilitate IPv6 su un server operativo senza conoscere le dipendenze dei servizi.

Usare un indirizzo IPv6 statico

sudo nmcli connection modify 'System eth0' \
  ipv6.method manual \
  ipv6.addresses '2001:db8:100::20/64' \
  ipv6.gateway '2001:db8:100::1' \
  ipv6.dns '2001:db8:100::53'

Anche 2001:db8::/32 è riservato agli esempi: indirizzo, gateway e DNS vanno sostituiti con valori assegnati alla vostra rete. Questo comando sostituisce l'elenco degli indirizzi IPv6 manuali del profilo. Verificate inoltre che il gateway sia raggiungibile e che una route predefinita sia appropriata.

Dopo aver scelto e verificato una delle due modalità, applicatela con sudo nmcli connection up 'System eth0' dalla console, considerando l'interruzione possibile anche del collegamento IPv4 sullo stesso profilo. Controllate indirizzi e rotte IPv6 con ip -6 address e ip -6 route. Il riferimento delle proprietà IPv6 di NetworkManager chiarisce il rapporto tra metodo automatico e proprietà aggiuntive.

Configurare il profilo dal menu testuale

sudo nmtui

In nmtui aprite Modifica una connessione (Edit a connection), selezionate il profilo e controllate le sezioni IPv4 e IPv6. Scegliete metodo, indirizzo con prefisso, gateway e DNS coerenti con la rete, poi salvate. In Attiva una connessione (Activate a connection) riattivate il profilo quando siete pronti all'interruzione.

Le etichette dipendono dalla lingua installata. nmtui modifica gli stessi profili di NetworkManager: rileggete il risultato con nmcli connection show. Se il programma non è disponibile, controllate il pacchetto della vostra distribuzione che lo fornisce. La guida Rocky alla gestione della rete tratta nmcli, nmtui e il comando ip.

Verificare la configurazione applicata

Verifica Comando
Indirizzi sulle interfacce ip -brief address
Rotte IPv4 e gateway predefinito ip route
Route scelta verso una destinazione ip route get 192.0.2.1
Valori del profilo nmcli connection show 'System eth0'
Stato di NetworkManager systemctl status NetworkManager
Informazioni applicate al dispositivo, inclusi i DNS nmcli device show

Sostituite la destinazione di esempio con un indirizzo pertinente alla vostra rete. ip route get mostra la scelta di instradamento senza provare la consegna dei pacchetti. Anche vedere un DNS in nmcli device show non dimostra che risponda: verificate la risoluzione di un nome noto e il servizio applicativo effettivamente necessario, dal punto di accesso previsto.

Se la comunicazione fallisce, controllate collegamento e VLAN, indirizzo/prefisso, duplicati, raggiungibilità del gateway, firewall e router a monte. Distinguete un errore di instradamento da uno di DNS. NetworkManager o altri gestori del resolver possono rigenerare /etc/resolv.conf: configurate le proprietà del profilo e verificate il resolver in uso prima di modificare direttamente il file.

Controlli per un intervento remoto

  • Provate prima una console della macchina virtuale, IPMI o una console seriale cloud indipendente da SSH.
  • Verificate disponibilità dell'indirizzo, prefisso, switch e VLAN con l'amministratore della rete.
  • Controllate gateway, metriche e route di ritorno verso il computer di gestione.
  • Adeguate firewall, liste di controllo degli accessi e regole cloud al nuovo indirizzo.
  • Pianificate record DNS, monitoraggio e aggiornamento dei client che usano il vecchio IP.
  • Tenete i valori originari e i file di configurazione protetti disponibili dalla console; confermate il successo con una nuova connessione, oltre a quella già aperta.

Riferimento delle impostazioni

La descrizione dei profili e delle proprietà nmcli distingue la configurazione salvata dalla connessione attiva. Confrontate sempre opzioni e proprietà con la versione installata e con i requisiti della vostra rete.