Configurare Indirizzi IP Statici con NetworkManager su RHEL/CentOS

Configura un IP statico persistente su RHEL o CentOS con `nmcli`, includendo gateway, DNS, attivazione e controlli di rollback.

Configurare Indirizzi IP Statici con NetworkManager su RHEL/CentOS

La rete è una delle prime cose da configurare correttamente su un server. Su RHEL e CentOS, NetworkManager può configurare un indirizzo IP statico persistente senza modificare manualmente i file di interfaccia, il che è più sicuro sulle nuove versioni di Enterprise Linux.

Questa guida illustra i comandi nmcli per impostare un indirizzo, gateway e server DNS, attivare il profilo e verificare che la modifica sopravviva a un riavvio.

Comprendere NetworkManager e nmcli

Prima di addentrarci nei passaggi di configurazione, chiariamo i componenti principali che utilizzeremo:

Cos'è NetworkManager?

NetworkManager è un demone che gestisce le impostazioni di rete, semplificando la gestione delle connessioni di rete. Può gestire vari tipi di connessione, tra cui Ethernet, Wi-Fi, banda larga mobile e VPN. Rileva e configura automaticamente i dispositivi di rete e cerca di mantenere una connessione di rete attiva, passando da una connessione disponibile all'altra quando necessario. Per i server, garantisce che le interfacce di rete siano configurate correttamente e persistano tra i riavvii.

Cos'è nmcli?

nmcli è il client a riga di comando per NetworkManager. Permette di controllare NetworkManager e configurare le connessioni di rete dal terminale. È particolarmente utile in ambienti server headless dove non è disponibile un'interfaccia grafica. I comandi nmcli sono intuitivi e forniscono un modo robusto per interagire con l'intera gamma di funzionalità di NetworkManager, dalla visualizzazione dello stato dei dispositivi di rete alla creazione e modifica di profili di connessione complessi.

Prerequisiti

Per seguire questa guida, assicurati di avere:

  • Privilegi di Root: Avrai bisogno di accesso sudo o di essere loggato come utente root per apportare modifiche alla configurazione di rete.
  • Informazioni di Sistema: L'indirizzo IP statico, la maschera di sottorete (o notazione CIDR), il gateway predefinito e gli indirizzi IP del server DNS che intendi utilizzare.
  • Interfaccia di Rete Identificata: Conoscenza del nome dell'interfaccia di rete (es. enp0s3, eth0) che desideri configurare. Vedremo come trovarlo.

Configurazione Passo-Passo di un Indirizzo IP Statico

Ecco come configurare un indirizzo IP statico usando nmcli.

Passo 1: Identificare la Propria Interfaccia di Rete

Prima di tutto, devi conoscere il nome dell'interfaccia di rete che vuoi configurare. Puoi elencare tutti i dispositivi di rete attivi e il loro stato usando nmcli device o nmcli device status:

nmcli device status

Output di Esempio:

DEVICE     TYPE      STATE                   CONNECTION
enp0s3     ethernet  connected               System enp0s3
lo         loopback  unmanaged               --

In questo esempio, enp0s3 è la nostra interfaccia Ethernet. Prendi nota del nome della tua interfaccia.

Passo 2: Creare un Nuovo Profilo di Connessione di Rete

In generale, è buona pratica creare un nuovo profilo di connessione per la configurazione IP statica, piuttosto che modificare direttamente uno esistente gestito da DHCP, specialmente se potresti voler tornare indietro facilmente. Un profilo di connessione memorizza tutte le impostazioni per una specifica connessione di rete.

Per creare un nuovo profilo di connessione Ethernet, usa il comando nmcli connection add. Specificherai il tipo di connessione, un nome descrittivo (con-name) e il nome dell'interfaccia (ifname).

sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
  • type ethernet: Specifica una connessione Ethernet.
  • con-name my-static-eth: Assegna un nome a questo nuovo profilo di connessione. Scegli qualcosa di descrittivo.
  • ifname enp0s3: Collega questo profilo di connessione all'interfaccia di rete fisica enp0s3.

Alternativa: Modificare un Profilo Esistente

Se preferisci modificare una connessione esistente (es. System enp0s3 dall'output di nmcli device status), useresti nmcli connection modify con il suo con-name esistente.

sudo nmcli connection modify "System enp0s3" # sostituisci con il nome della tua connessione

Nota: Per semplicità e chiarezza, questa guida presuppone che tu abbia creato un nuovo profilo di connessione chiamato my-static-eth.

Passo 3: Configurare le Impostazioni IPv4 (IP, Gateway, DNS)

Ora configuriamo l'indirizzo IP statico, il gateway e i server DNS per il nostro profilo di connessione my-static-eth. È fondamentale impostare il metodo IPv4 su manual per disabilitare DHCP.

Impostare l'Indirizzo IP e il Gateway

Usa le proprietà ipv4.addresses e ipv4.gateway. L'indirizzo IP deve essere in notazione CIDR (es. 192.168.1.100/24).

sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
  • ipv4.addresses 192.168.1.100/24: Imposta l'indirizzo IP statico a 192.168.1.100 con una maschera di sottorete a 24 bit (255.255.255.0).
  • ipv4.gateway 192.168.1.1: Imposta il gateway predefinito per la rete.

Impostare i Server DNS

Specifica uno o più indirizzi IP del server DNS. Separa più indirizzi con virgole.

sudo nmcli connection modify my-static-eth ipv4.dns "1.1.1.1,8.8.8.8"

Se la tua organizzazione utilizza DNS interni, usa quegli indirizzi resolver. Ad esempio, un server privato potrebbe usare 192.168.1.10 e 192.168.1.11.

Disabilitare DHCP per IPv4

Imposta il metodo IPv4 su manual; altrimenti NetworkManager potrebbe ancora tentare DHCP per questo profilo.

sudo nmcli connection modify my-static-eth ipv4.method manual

Se il server non deve utilizzare IPv6 su questa connessione, disabilitalo esplicitamente:

sudo nmcli connection modify my-static-eth ipv6.method disabled

Fallo solo se la tua rete non si basa su IPv6.

Passo 4: Attivare il Profilo Statico

Attiva la nuova connessione. Se stai lavorando tramite SSH, esegui questo comando da accesso console o pianifica un rollback prima di cambiare l'interfaccia attiva.

sudo nmcli connection up my-static-eth

Se un vecchio profilo DHCP è ancora attivo sulla stessa interfaccia, disattivalo dopo aver confermato che il profilo statico funzioni:

sudo nmcli connection down "System enp0s3"

Sostituisci "System enp0s3" con il nome effettivo della vecchia connessione da nmcli connection show.

Passo 5: Verificare l'Indirizzo, la Route e il DNS

Controlla la connessione attiva:

nmcli connection show --active

Conferma l'indirizzo IP:

ip addr show enp0s3

Conferma la route predefinita:

ip route

Dovresti vedere una route simile a:

default via 192.168.1.1 dev enp0s3

Controlla le impostazioni DNS gestite da NetworkManager:

nmcli device show enp0s3 | grep DNS

Poi testa la connettività reale:

ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
getent hosts example.com

Il primo comando controlla il gateway, il secondo controlla la connettività IP in uscita e il terzo controlla la risoluzione DNS.

Modifiche Remote Più Sicure

Le modifiche all'IP statico possono disconnettere la tua sessione SSH se digiti male l'indirizzo o il gateway. Prima di applicare il profilo in remoto, mantieni una seconda sessione aperta e considera di pianificare un rollback:

sudo shutdown -r +5 "Riavvio per rollback di rete"

Se il nuovo IP statico funziona, annulla il riavvio:

sudo shutdown -c

Su sistemi dove un riavvio non è accettabile, crea un job at temporaneo o usa accesso console out-of-band in modo da poter recuperare se la route è sbagliata.

Conclusione

Usa i profili di connessione nmcli per la configurazione IP statica persistente su RHEL e CentOS. Il set minimo di lavoro è ipv4.addresses, ipv4.gateway, ipv4.dns e ipv4.method manual; il flusso di lavoro più sicuro è attivare il profilo, verificare il comportamento della route e del DNS, quindi rimuovere o disabilitare il vecchio profilo DHCP solo dopo che il server è raggiungibile al suo nuovo indirizzo.