Vai al contenuto

Configurazione della Rete

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.

Prerequisiti

  • Una certa comodità nell'operare dalla riga di comando
  • Privilegi elevati o amministrativi sul sistema (per esempio root, sudo e così via)
  • Opzionale: familiarità con i concetti di rete

Configurazione di rete - Rocky Linux 9

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.

Prerequisiti

  • Una certa dimestichezza nell'operare dalla riga di comando
  • Privilegi elevati o amministrativi sul sistema (per esempio root, sudo e così via)
  • Opzionale: familiarità con i concetti di rete

Usare il servizio NetworkManager

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:

systemctl status NetworkManager

File di configurazione

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:

NetworkManager --print-config

Si ottiene così un risultato simile a questo:

[main]
# plugins=keyfile,ifcfg-rh
# rc-manager=auto
# auth-polkit=true
# iwd-config-path=
dhcp=dhclient
configure-and-quit=no

[logging]
# backend=journal
# audit=false

[device]
# wifi.backend=wpa_supplicant

# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state"

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:

nmcli device show enp0s3
GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:BA:CE:88
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp0s3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.1.151/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP4.DNS[3]:                             192.168.1.1
IP6.ADDRESS[1]:                         fe80::a00:27ff:feba:ce88/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

Suggerimento:

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.

Indirizzi IP

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.

  1. Per prima cosa, eseguire il comando nmtui alla riga di comando, che dovrebbe mostrare quanto segue

    nmtui

  2. È già presente la selezione "Edit a connection", quindi premere il tasto TAB in modo da evidenziare "OK" e premere INVIO

  3. 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

    nmtui_edit

  4. 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.

    nmtui_manual

  5. La freccia verso l'alto fino a evidenziare " Automatic" e quindi premere INVIO

    nmtui_automatic

  6. 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.

    nmtui_remove

  7. 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:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3
   valid_lft 6342sec preferred_lft 6342sec
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

Modifica dell'indirizzo IP con nmcli

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.

Risoluzione DNS

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:

ping google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=14.6 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms
^C

Usare l'utilità ip

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:

  • nome dell'interfaccia: enp0s3
  • indirizzo ip: 192.168.1.151
  • maschera di sottorete: 24
  • gateway: 192.168.1.1

Ottenere informazioni di carattere generale

Per vedere lo stato dettagliato di tutte le interfacce, usare

ip a

"Suggerimenti professionali:

  • usare il flag -c per ottenere un output colorato più leggibile: ip -c a.
  • ip accetta l'abbreviazione quindi ip a, ip addr e ip address sono equivalenti

Porta l'interfaccia su o giù

Nota

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:

ip link set enp0s3 down && ip link set enp0s3 up

Assegnare all'interfaccia un indirizzo statico

Attualmente, la nostra interfaccia enp0s3 ha un indirizzo IP di 192.168.1.151. Per passare a 192.168.1.152, si rimuove il vecchio IP con

ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3

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:

ip addr add 192.168.1.152/24 dev enp0s3

Si può verificare se l'indirizzo IP è stato aggiunto con

ip a show dev enp0s3

verrà visualizzato:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.151/24 brd 192.168.1.255 scope global noprefixroute enp0s3
   valid_lft forever preferred_lft forever
inet 192.168.1.152/24 scope global secondary enp0s3
   valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

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.

Configurazione del gateway

Ora che l'interfaccia ha un indirizzo, dobbiamo impostare il suo percorso predefinito. Questo può essere fatto con:

ip route add default via 192.168.1.1 dev enp0s3

La tabella di routing del kernel può essere visualizzata con

ip route

o ip r in breve.

Il risultato dovrebbe essere simile a questo:

default via 192.168.1.1 dev enp0s3 
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100

Controllo della connettività di rete

Negli esempi precedenti abbiamo effettuato alcuni test. La cosa migliore da fare è iniziare con il ping del gateway predefinito. Questo dovrebbe funzionare sempre:

ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms

Quindi, verificare se il routing LAN funziona completamente eseguendo il ping di un host sulla rete locale:

ping -c3 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms

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:

ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=19.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms

Il test finale consiste nel verificare che la risoluzione DNS funzioni. Per questo esempio, utilizziamo google.com:

ping -c3 google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms

Se la macchina dispone di diverse interfacce e si desidera eseguire il test da una particolare interfaccia, è sufficiente utilizzare l'opzione -I con ping:

ping -I enp0s3 -c3 192.168.1.10

Conclusioni

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.

Configurazione della rete - Rocky Linux 8

Utilizzo del servizio NetworkManager

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:

systemctl status NetworkManager

File di configurazione

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:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=enp1s0
UUID=74c5ccee-c1f4-4f45-883f-fc4f765a8477
DEVICE=enp1s0
ONBOOT=yes
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=1.1.1.1
IPV6_DISABLED=yes

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)!

Indirizzo IP

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 si rende necessario dal momento che 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
  • PREFIX: la maschera di sottorete in CIDR notation
  • GATEWAY: il gateway predefinito

Il parametro ONBOOT impostato su yes indica che questa connessione sarà attivata durante l'avvio.

Risoluzione DNS

Per ottenere una risoluzione corretta dei nomi, è necessario impostare i seguenti parametri:

  • DNS1: indirizzo IP del nameserver principale
  • DNS2: l'indirizzo IP del nameserver secondario

Controllo della configurazione

È possibile verificare che la configurazione sia stata applicata correttamente con il seguente comando nmcli:

[user@server ~]$ sudo nmcli device show enp1s0

che dovrebbe fornire il seguente risultato:

GENERAL.DEVICE:                         enp1s0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         6E:86:C0:4E:15:DB
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connecté)
GENERAL.CONNECTION:                     enp1s0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               marche
IP4.ADDRESS[1]:                         10.0.0.10/24
IP4.GATEWAY:                            10.0.0.1
IP4.ROUTE[1]:                           dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.0.0.1, mt = 100
IP4.DNS[1]:                             10.0.0.1
IP4.DNS[2]:                             1.1.1.1
IP6.GATEWAY:                            --

CLI

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.

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

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.

[user@server ~]$ sudo nmcli connection show enp1s0
...
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
...

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 ~]$ sudo nmcli connection modify enp1s0 ipv4.addresses 10.0.0.10

# set 10.0.0.1 as the ipv4 gateway
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.gateway 10.0.0.1

# change ipv4 method to use static assignments (set in the previous two commands)
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.method manual

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 ~]$ sudo nmcli connection modify enp1s0 ipv4.dns '10.0.0.1 1.1.1.1'

Applicare la configurazione

Per applicare la configurazione di rete, si può usare il comando nmcli connection up [connection].

[user@server ~]$ sudo nmcli connection up enp1s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Per ottenere lo stato della connessione, è sufficiente utilizzare:

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

Puoi anche usare i comandi ifup e ifdown per portare l'interfaccia su e giù (sono semplici wrapper intorno a nmcli):

[user@server ~]$ sudo ifup enp1s0
[user@server ~]$ sudo ifdown enp1s0

Usare l'utilità ip

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:

  • nome dell'interfaccia: ens19
  • indirizzo ip: 192.168.20.10
  • maschera di sottorete: 24
  • gateway: 192.168.20.254

Ottenere informazioni di carattere generale

Per vedere lo stato dettagliato di tutte le interfacce, usare

ip a

"Suggerimenti professionali:

  • usare il flag -c per ottenere un output colorato più leggibile: ip -c a.
  • ip accetta l'abbreviazione quindi ip a, ip addr e ip address sono equivalenti

Portare l'interfaccia su o giù

Per portare l'interfaccia ens19 su, basta usare ip link set ens19 up e per portarla giù, usare ip link set ens19 down.

Assegnare all'interfaccia un indirizzo statico

Il comando da utilizzare è del tipo:

ip addr add <IP ADDRESS/CIDR> dev <IFACE NAME>

Per assegnare i parametri dell'esempio precedente, utilizzeremo:

ip a add 192.168.20.10/24 dev ens19

Quindi, controllare il risultato con:

ip a show dev ens19

verrà visualizzato:

3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4a:f2:f5:b6:aa:9f brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.10/24 scope global ens19
    valid_lft forever preferred_lft forever

La nostra interfaccia è attiva e configurata, ma manca ancora qualcosa!

Usare l'utilità ifcfg

Per aggiungere all'interfaccia ens19 il nostro nuovo indirizzo IP di esempio, utilizzare il seguente comando:

ifcfg ens19 add 192.168.20.10/24

Per rimuovere l'indirizzo:

ifcfg ens19 del 192.168.20.10/24

Per disattivare completamente l'indirizzo IP su questa interfaccia:

ifcfg ens19 stop

Si noti che questa operazione non comporta la disattivazione dell'interfaccia, ma semplicemente la disassegnazione di tutti gli indirizzi IP dall'interfaccia.

Configurazione del gateway

Ora che l'interfaccia ha un indirizzo, dobbiamo impostare la sua rotta predefinita:

ip route add default via 192.168.20.254 dev ens19

La tabella di routing del kernel può essere visualizzata con

ip route

o ip r in breve.

Controllo della connettività di rete

A questo punto, l'interfaccia di rete dovrebbe essere attiva e configurata correttamente. Esistono diversi modi per verificare la connettività.

Facendo il ping un altro indirizzo IP della stessa rete (useremo 192.168.20.42 come esempio):

ping -c3 192.168.20.42

Questo comando emette 3 ping (noti come richieste ICMP) e attende una risposta. Se tutto è andato bene, si dovrebbe ottenere questo risultato:

PING 192.168.20.42 (192.168.20.42) 56(84) bytes of data.
64 bytes from 192.168.20.42: icmp_seq=1 ttl=64 time=1.07 ms
64 bytes from 192.168.20.42: icmp_seq=2 ttl=64 time=0.915 ms
64 bytes from 192.168.20.42: icmp_seq=3 ttl=64 time=0.850 ms

--- 192.168.20.42 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.850/0.946/1.074/0.097 ms

Quindi, per assicurarsi che la configurazione del routing sia corretta, provare a puntare un host esterno, come questo noto resolver DNS pubblico:

ping -c3 8.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 -I ens19 -c3 192.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:

host rockylinux.org

Il risultato dovrebbe essere:

rockylinux.org has address 76.76.21.21

Conclusioni

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