Ricerca nel sito web

Come gestire la rete con NetworkManager in RHEL/CentOS 8


In RHEL e CentOS 8 il servizio di rete è gestito dal demone NetworkManager e viene utilizzato per configurare e controllare dinamicamente i dispositivi di rete e mantenere attive le connessioni e attivi quando sono disponibili.

NetworkManager offre numerosi vantaggi come il supporto per una facile configurazione e gestione della rete utilizzando sia l'interfaccia della riga di comando che gli strumenti dell'interfaccia utente grafica, fornisce un'API tramite D-Bus che consente di interrogare e controllare la configurazione della rete, supporta per flessibilità di configurazione e molto altro ancora.

Inoltre, il NetworkManager può anche essere configurato utilizzando file e la console web Cockpit e supporta l'uso di script personalizzati per avviare o arrestare altri servizi in base allo stato della connessione.

Leggi anche: Come configurare e gestire le connessioni di rete utilizzando lo strumento "nmcli".

Prima di andare oltre, di seguito sono riportati alcuni altri punti importanti da notare sulla rete in CentOS/RHEL 8:

  • I tradizionali file di configurazione di tipo ifcfg (es. ifcfg-eth0, ifcfg-enp0s3) sono ancora supportati.
  • Gli script di rete sono deprecati e non vengono più forniti per impostazione predefinita.
  • Un'installazione minima fornisce una nuova versione degli script ifup e ifdown che chiamano NetworkManager tramite lo strumento nmcli.
  • Per eseguire gli script ifup e ifdown, NetworkManager deve essere in esecuzione.

Installazione di NetworkManager su CentOS/RHEL 8

Il NetworkManager dovrebbe essere preinstallato su un'installazione di base di CentOS/RHEL 8, altrimenti puoi installarlo utilizzando il gestore pacchetti DNF come mostrato.

dnf install NetworkManager

Il file di configurazione globale per NetworkManager si trova in /etc/NetworkManager/NetworkManager.conf e file di configurazione aggiuntivi possono essere trovati in /etc/NetworkManager/ .

Gestione di NetworkManager utilizzando Systemctl su CentOS/RHEL 8

In CentOS/RHEL 8 e altri moderni sistemi Linux che hanno adottato systemd (gestore di sistema e servizi), i servizi vengono gestiti utilizzando lo strumento systemctl.

Di seguito sono riportati i comandi systemctl utili per la gestione del servizio NetworkManager.

Controllo dello stato di NetworkManager

Un'installazione minima di CentOS/RHEL 8 dovrebbe avere NetworkManager avviato e abilitato per l'avvio automatico all'avvio, per impostazione predefinita. È possibile utilizzare i seguenti comandi per verificare se NetworkManager è attivo, abilitato e stampare le informazioni sullo stato di runtime di NetworkManager.

systemctl is-active NetworkManager
systemctl is-enabled NetworkManager
systemctl status NetworkManager 

Avvio di NetworkManager

Se il NetworkManager non è in esecuzione, puoi avviarlo semplicemente eseguendo.

systemctl start NetworkManager

Arresto di NetworkManager

Per arrestare o disattivare NetworkManager per un motivo o per l'altro, immetti il seguente comando.

systemctl stop NetworkManager

Riavvio di NetworkManager

Se sono state apportate modifiche ai file di configurazione dell'interfaccia o alla configurazione del demone NetworkManager (in genere situato nella directory /etc/NetworkManager/), è possibile riavviare (arrestare e quindi avviare) NetworkManager per applicare le modifiche come mostrato.

systemctl restart NetworkManager

Ricaricamento di NetworkManager

Per ricaricare la configurazione del demone NetworkManager (ma non il file di configurazione dell'unità di systemd) senza riavviare il servizio, esegui il comando seguente.

systemctl reload NetworkManager

Utilizzo degli strumenti NetworkManager e utilizzo dei file ifcfg

Il NetworkManager supporta alcuni strumenti con cui gli utenti possono interagire con esso, che sono:

  1. nmcli: uno strumento da riga di comando utilizzato per configurare la rete.
  2. nmtui – una semplice interfaccia utente testuale basata su maledizioni, che viene utilizzata anche per configurare e gestire le connessioni dell'interfaccia newtwork.
  3. Altri strumenti includono nm-connection-editor, control-center e l'icona della connessione di rete (tutti nella GUI).

Per elencare i dispositivi rilevati da NetworkManager, esegui il comando nmcli.

 
nmcli device 
OR
nmcli device status

Per visualizzare tutte le connessioni attive, esegui il seguente comando (nota che senza -a, elenca i profili di connessione disponibili).

nmcli connection show -a

Imposta l'indirizzo IP statico su CentOS/RHEL 8

I file di configurazione specifici dell'interfaccia di rete si trovano nella directory /etc/sysconfig/network-scripts/. È possibile modificare uno qualsiasi di questi file, ad esempio, per impostare un indirizzo IP statico per il server CentOS/RHEL 8.

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Di seguito è riportato un esempio di configurazione per l'impostazione di un indirizzo IP statico.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=e81c46b7-441a-4a63-b695-75d8fe633511
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.0.110
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
PEERDNS=no

Dopo aver salvato le modifiche, è necessario ricaricare tutti i profili di connessione o riavviare NetworkManager affinché le nuove modifiche vengano applicate.

nmcli connection reload
OR
systemctl restart NetworkManager

Avvio o arresto di servizi/script di rete in base alla connettività di rete

NetworkManager ha un'utile opzione che consente agli utenti di eseguire servizi (come NFS, SMB, ecc.) o semplici script basati sulla connettività di rete.

Ad esempio, se desideri montare automaticamente una directory remota localmente con sshfs, montare le condivisioni SMB o montare le condivisioni NFS dopo il passaggio da una rete all'altra. Potresti volere che tali servizi di rete non vengano eseguiti finché NetworkManager non è attivo e funzionante (tutte le connessioni sono attive).

Questa funzionalità è fornita dal servizio NetworkManager-dispatcher (che deve essere avviato e abilitato per l'avvio automatico all'avvio del sistema). Una volta che il servizio è in esecuzione, puoi aggiungere i tuoi script alla directory /etc/NetworkManager/dispatcher.d.

Tutti gli script devono essere eseguibili e scrivibili e di proprietà di root, ad esempio:

chown root:root /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
chmod 755 /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh

Importante: gli script del dispatcher verranno eseguiti in ordine alfabetico al momento della connessione e in ordine alfabetico inverso al momento della disconnessione.

Utilizzo di script di rete legacy

Come accennato in precedenza, gli script di rete sono deprecati in CentOS/RHEL 8 e non vengono installati per impostazione predefinita. Se desideri comunque utilizzare gli network script, devi installare il pacchetto network-scripts.

yum install network-scripts

Una volta installato, questo pacchetto fornisce una nuova versione degli script ifup e ifdown che chiamano NetworkManager tramite lo strumento nmcli abbiamo visto sopra. Tieni presente che NetworkManager dovrebbe essere in esecuzione per poter eseguire questi script.

Per ulteriori informazioni, vedere le pagine man systemctl e NetworkManager.

man systemctl
man NetworkManager

Questo è tutto ciò che abbiamo preparato in questo articolo. Puoi chiedere chiarimenti su uno qualsiasi dei punti o porre domande o apportare eventuali aggiunte a questa guida tramite il modulo di feedback riportato di seguito.