Vai al contenuto

NetworkManager Suite di strumenti per la configurazione della rete

Nel 2004, Red Hat ha lanciato il progetto NetworkManager, che mira a rendere più facile per gli utenti Linux soddisfare le esigenze di gestione delle reti attuali, in particolare la gestione delle reti wireless. Oggi il progetto è gestito da GNOME. La homepage di NetworkManager si trova qui.

Introduzione ufficiale - NetworkManager è una suite di strumenti standard per la configurazione della rete Linux. Supporta diverse impostazioni di rete, dal desktop al server e ai dispositivi mobili, ed è perfettamente integrato con i più diffusi ambienti desktop e strumenti di gestione della configurazione dei server.

La suite comprende principalmente due strumenti a riga di comando:

  • nmtui. Configurare la rete con un'interfaccia grafica.
shell > dnf -y install NetworkManager NetworkManager-tui
shell > nmtui
NetworkManager TUI
Modifica di una connessione
Attiva una connessione
Imposta nome host del sistema
Esci
OK
  • nmcli. Per configurare la rete, utilizzare la riga di comando pura o interattiva.
Shell > nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens160  25106d13-ba04-37a8-8eb9-64daa05168c9  ethernet  ens160

Per RockyLinux 8.x, abbiamo introdotto come configurare la rete in questo documento. Si può usare vim per modificare il file di configurazione della scheda di rete nella directory /etc/sysconfig/network-script/, oppure si può usare nmcli/nmtui, entrambi utilizzabili.

Regole di denominazione per udev device Manager

Per RockyLinux 9.x, se si va nella directory /etc/sysconfig/network-scripts/, ci sarà un testo di descrizione readme-ifcfg-rh.txt che richiede di andare nella directory /etc/NetworkManager/system-connections/.

Shell > cd /etc/NetworkManager/system-connections/  && ls 
ens160.nmconnection

Ens160 si riferisce al nome della scheda di rete del sistema. Vi chiederete perché il nome sembra così strano? Questo è dovuto al gestore di dispositivi udev. Supporta diversi schemi di denominazione. Per impostazione predefinita, i nomi fissi vengono assegnati in base al firmware, alla topologia e alle informazioni sulla posizione. I suoi vantaggi includono:

  • I nomi dei dispositivi sono completamente prevedibili.
  • I nomi dei dispositivi rimangono fissi anche se si aggiunge o si rimuove hardware, perché non avviene una nuova enumerazione.
  • L'hardware difettoso può essere sostituito senza problemi.

In RHEL 9 e nei sistemi operativi corrispondenti alla versione della comunità, la denominazione coerente dei dispositivi è abilitata per impostazione predefinita. Il gestore di dispositivi udev genera i nomi dei dispositivi secondo il seguente schema:

Schema Descrizione Esempio
1 I nomi dei dispositivi incorporano i numeri di indice forniti dal firmware o dal BIOS per i dispositivi onboard. Se questa informazione non è disponibile o non è applicabile, udev utilizza lo schema 2. eno1
2 I nomi dei dispositivi incorporano i numeri di indice degli slot hot plug PCI Express (PCIe) forniti dal firmware o dal BIOS. Se questa informazione non è disponibile o non è applicabile, udev utilizza lo schema 3. ens1
3 I nomi dei dispositivi incorporano la posizione fisica del connettore dell'hardware. Se questa informazione non è disponibile o non è applicabile, udev utilizza lo schema 5. enp2s0
4 I nomi dei dispositivi incorporano l'indirizzo MAC. Red Hat Enterprise Linux non utilizza questo schema per impostazione predefinita, ma gli amministratori possono utilizzarlo facoltativamente. enx525400d5e0fb
5 Il tradizionale schema di denominazione del kernel non prevedibile. Se udev non può applicare nessuno degli altri schemi, il gestore di dispositivi utilizza questo schema. eth0

udev device Manager nomina il prefisso della NIC in base al tipo di interfaccia:

  • en per Ethernet.
  • wl per LAN senza fili (WLAN).
  • ww per la rete wireless wide area (WWAN).
  • ib, rete InfiniBand.
  • sl, linea seriale Protocollo Internet (slip)

Aggiungere alcuni suffissi al prefisso, come ad esempio:

  • o on-board_index_number
  • s hot_plug_slot_index_number [f] function [d] device_id
  • x MAC_address
  • [P] domain number p bus s slot [f] function [d] device_id
  • [P] domain number p buss s slot [f] function [u] usb port [c] config [i] interface

È possibile utilizzare man 7 systemd.net-naming-scheme per ottenere informazioni più dettagliate.

comando nmcli (consigliato)

Gli utenti possono non solo configurare la rete in modalità puramente a riga di comando, ma anche utilizzare comandi interattivi per configurare la rete.

nmcli connection

Il comando nmcli connection può mostrare, cancellare, aggiungere, modificare, editare, aumentare, diminuire e così via.

Per un utilizzo specifico, consultare nmcli connection add --help, nmcli connection edit --help, nmcli connection modify --help e così via.

Ad esempio, per configurare una nuova connessione ipv4 statica tramite una linea di comando pura e avviarla automaticamente, può essere:

Shell > nmcli  connection  add  type  ethernet  con-name   CONNECTION_NAME  ifname  NIC_DEVICE_NAME   \
ipv4.method  manual  ipv4.address "192.168.10.5/24"  ipv4.gateway "192.168.10.1"  ipv4.dns "8.8.8.8,114.114.114.114" \
ipv6.method  disabled  autoconnect yes

Se si utilizza il DHCP per ottenere l'indirizzo ipv4, può essere:

Shell > nmcli  connection  add  type ethernet con-name CONNECTION_NAME  ifname  NIC_DEVICE_NAME \
ipv4.method  auto  ipv6.method  disabled  autoconnect  yes

Con la configurazione precedente, la connessione non viene attivata. È necessario eseguire le seguenti operazioni:

Shell > nmcli connection up  NIC_DEVICE_NAME

Accedere all'interfaccia interattiva attraverso la parola chiave edit sulla base della connessione esistente e modificarla:

Shell > nmcli connection  edit  CONNECTION_NAME
nmcli > help

È anche possibile modificare una o più proprietà della connessione direttamente dalla riga di comando con la parola chiave modify. Per esempio:

Shell > nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp

Informazione

Le operazioni effettuate tramite nmcli o nmtui vengono salvate in modo permanente, non temporaneo.

Aggregazione dei collegamenti

Alcuni utilizzano più schede di rete per l'aggregazione dei collegamenti. All'inizio, utilizzando la tecnologia bonding, c'erano sette modalità di lavoro (0~6) e la modalità bond supportava solo due schede di rete al massimo; in seguito, la tecnologia teaming è stata gradualmente utilizzata come alternativa, ci sono cinque modalità di lavoro e la modalità team può utilizzare fino a otto schede di rete. Il link di confronto tra bonding e teaming può essere trovato a questo link.

Ad esempio, la modalità 0 di bonding:

Shell > nmcli  connection  add  type  bond  con-name  BOND_CONNECTION_NAME   ifname  BOND_NIC_DEVICE_NAME  mode 0
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME1   master  BOND_NIC_DEVICE_NAME
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME2   master  BOND_NIC_DEVICE_NAME

Configurazione della scheda di rete

Attenzione

Non è consigliabile apportare modifiche con vim o altri editor.

Informazioni più dettagliate sono disponibili in man 5 NetworkManager.conf e man 5 nm-settings-nmcli.

Il contenuto del file di configurazione della scheda di rete NetworkManager è un file chiave di tipo init. Per esempio:

Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection
[connection]
id=ens160
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e
type=ethernet
interface-name=ens160
timestamp=1670056998

[ethernet]
mac-address=00:0C:29:47:68:D0

[ipv4]
address1=192.168.100.4/24,192.168.100.1
dns=8.8.8.8;114.114.114.114;
method=manual

[ipv6]
addr-gen-mode=default
method=disabled

[proxy]
  • Le righe che iniziano con # e le righe vuote sono considerate commenti;
  • Racchiusa tra [ e ] c'è la sezione che intende dichiarare il titolo e sotto di essa ci sono le coppie chiave-valore specifiche contenute. Ogni titolo dichiarato e la sua coppia chiave-valore formano un segmento di sintassi;
  • Qualsiasi file con il suffisso .nmconnection può essere utilizzato da NetworkManager.

I nomi dei titoli di connessione possono contenere queste coppie chiave-valore comuni:

nome della chiave descrizione
id L'alias di con-name, il cui valore è una stringa.
uuid Identificatore univoco universale, il cui valore è una stringa.
type Il tipo di connessione, i cui valori possono essere ethernet, bluetooth, vpn, vlan e così via. È possibile utilizzare man nmcli per visualizzare tutti i tipi supportati.
interface-name Il nome dell'interfaccia di rete a cui è legata la connessione, il cui valore è una stringa.
timestamp Timestamp Unix, in secondi. Il valore è il numero di secondi dal 1° gennaio 1970.
autoconnect Se si avvia automaticamente all'avvio del sistema. Il valore è di tipo Booleano.

i nomi dei titoli ethernet possono contenere queste coppie chiave-valore comuni:

nome della chiave descrizione
mac-address Indirizzo fisico MAC.
mtu Maximum Transmission Unit.
auto-negotiate Se negoziare automaticamente. Il valore è di tipo Booleano.
duplex I valori possono essere half (half-duplex), full (full-duplex)
speed Specificare la velocità di trasmissione della scheda di rete. 100 è 100Mbit/s. Se auto-negotiate=false, devono essere impostate le chiavi speed e la chiave duplex; se auto-negotiate=true, la velocità utilizzata è quella negoziata e la scrittura qui non ha effetto (questo è applicabile solo alla specifica BASE-T 802.3); se non è zero, la chiave duplex deve avere un valore.

i nomi dei titoli ipv4 possono contenere queste coppie chiave-valore comuni:

nome della chiave descrizione
addresses Indirizzi IP assegnati
gateway Gateway (next hop) dell'interfaccia
dns Server dei nomi di dominio in uso
method Il metodo da ottenere tramite IP. Il valore è di tipo stringa. Il valore può essere: auto, disabled, link-local, manual, shared

Author: tianci li

Contributors: Steven Spencer