Com gestionar les xarxes amb NetworkManager a RHEL/CentOS 8


A RHEL i CentOS 8, el servei de xarxa està gestionat pel dimoni NetworkManager i s'utilitza per configurar i controlar de manera dinàmica els dispositius de xarxa i mantenir les connexions activades i activades quan estiguin disponibles.

NetworkManager inclou nombrosos avantatges, com ara suport per a una configuració i gestió fàcils de la xarxa utilitzant tant la interfície de línia d'ordres com les eines d'interfície gràfica d'usuari, proporciona una API a través de D-Bus que permet consultar i controlar la configuració de la xarxa, suport per a la flexibilitat de configuració i molt més.

A més, el NetworkManager també es pot configurar mitjançant fitxers i la consola web Cockpit i admet l'ús d'scripts personalitzats per iniciar o aturar altres serveis en funció de l'estat de la connexió.

Abans d'anar més enllà, els següents són alguns altres punts importants a tenir en compte sobre les xarxes a CentOS/RHEL 8:

  • Els fitxers de configuració de tipus ifcfg tradicionals (per exemple, ifcfg-eth0, ifcfg-enp0s3) encara són compatibles.
  • Els scripts de xarxa estan obsolets i ja no es proporcionen de manera predeterminada.
  • Una instal·lació mínima proporciona una versió nova dels scripts ifup i ifdown que criden NetworkManager mitjançant l'eina nmcli.
  • Per executar els scripts ifup i ifdown, NetworkManager s'ha d'executar.

Instal·lació de NetworkManager a CentOS/RHEL 8

El NetworkManager hauria de venir preinstal·lat en una instal·lació bàsica de CentOS/RHEL 8, en cas contrari, podeu instal·lar-lo mitjançant el gestor de paquets DNF tal com es mostra.

# dnf install NetworkManager

El fitxer de configuració global de NetworkManager es troba a /etc/NetworkManager/NetworkManager.conf i es poden trobar fitxers de configuració addicionals a /etc/NetworkManager/.

Gestió de NetworkManager mitjançant Systemctl a CentOS/RHEL 8

A CentOS/RHEL 8 i altres sistemes Linux moderns que han adoptat el systemd (gestor de sistemes i serveis), els serveis es gestionen mitjançant l'eina systemctl.

Les següents són ordres systemctl útils per gestionar el servei NetworkManager.

Una instal·lació mínima de CentOS/RHEL 8 hauria d'haver iniciat i activat NetworkManager per iniciar-se automàticament en el moment de l'arrencada, de manera predeterminada. Podeu utilitzar les ordres següents per comprovar si NetworkManager està actiu, habilitat i imprimir la informació d'estat d'execució del NetworkManager.

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

Si el NetworkManager no s'està executant, podeu iniciar-lo simplement executant-lo.

# systemctl start NetworkManager

Per aturar o desactivar el NetworkManager per un motiu o un altre, emet l'ordre següent.

# systemctl stop NetworkManager

Si heu fet algun canvi als fitxers de configuració de la interfície o a la configuració del dimoni NetworkManager (normalment es troba al directori /etc/NetworkManager/), podeu reiniciar (aturar i iniciar) el NetworkManager per aplicar els canvis tal com es mostra.

# systemctl restart NetworkManager

Per tornar a carregar la configuració del dimoni NetworkManager (però no el fitxer de configuració de la unitat de systemd) sense reiniciar el servei, executeu l'ordre següent.

# systemctl reload NetworkManager

Ús de les eines de NetworkManager i treball amb fitxers ifcfg

El NetworkManager admet algunes eines perquè els usuaris puguin interactuar amb ell, que són:

  1. nmcli: una eina de línia d'ordres que s'utilitza per configurar les xarxes.
  2. nmtui: una interfície d'usuari de text senzilla basada en malediccions, que també s'utilitza per configurar i gestionar connexions d'interfície de newtwork.
  3. Altres eines inclouen l'editor nm-connection-editor, el centre de control i la icona de connexió de xarxa (tots sota la GUI).

Per llistar els dispositius detectats per NetworkManager, executeu l'ordre nmcli.

 
# nmcli device 
OR
# nmcli device status

Per veure totes les connexions actives, executeu l'ordre següent (tingueu en compte que sense el -a, enumera els perfils de connexió disponibles).

# nmcli connection show -a

Els fitxers de configuració específics de la interfície de xarxa es troben al directori /etc/sysconfig/network-scripts/. Podeu editar qualsevol d'aquests fitxers, per exemple, per establir una adreça IP estàtica per al vostre servidor CentOS/RHEL 8.

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

Aquí teniu una configuració de mostra per configurar una adreça IP estàtica.

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

Després de desar els canvis, heu de tornar a carregar tots els perfils de connexió o reiniciar el NetworkManager perquè s'apliquin els nous canvis.

# nmcli connection reload
OR
# systemctl restart NetworkManager

Inici o aturada de serveis de xarxa/scripts basats en la connectivitat de xarxa

NetworkManager té una opció útil que permet als usuaris executar serveis (com NFS, SMB, etc.) o scripts senzills basats en la connectivitat de xarxa.

Per exemple, si voleu muntar automàticament els recursos compartits NFS després de canviar entre xarxes. És possible que vulgueu que aquests serveis de xarxa s'executin fins que NetworkManager estigui en funcionament (totes les connexions estan actives).

Aquesta funció la proporciona el servei NetworkManager-dispatcher (que s'ha d'iniciar i habilitar per iniciar-se automàticament a l'arrencada del sistema). Un cop el servei s'està executant, podeu afegir els vostres scripts al directori /etc/NetworkManager/dispatcher.d.

Tots els scripts han de ser executables i escrivibles, i ser propietat de root, per exemple:

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

Important: els scripts del despatxador s'executaran per ordre alfabètic en el moment de la connexió i en ordre alfabètic invers en els moments de desconnexió.

Com hem esmentat anteriorment, els scripts de xarxa estan obsolets a CentOS/RHEL 8 i no s'instal·len de manera predeterminada. Si encara voleu utilitzar els scripts de xarxa, heu d'instal·lar el paquet network-scripts.

# yum install network-scripts

Un cop instal·lat, aquest paquet proporciona una nova versió dels scripts ifup i ifdown que criden NetworkManager mitjançant l'eina nmcli que hem vist més amunt. Tingueu en compte que NetworkManager s'hauria d'executar perquè executeu aquests scripts.

Per obtenir més informació, consulteu les pàgines de manual systemctl i NetworkManager.

# man systemctl
# man NetworkManager

Això és tot el que hem preparat en aquest article. Pots demanar aclariments sobre qualsevol dels punts o fer preguntes o fer qualsevol addició a aquesta guia mitjançant el formulari de comentaris que hi ha a continuació.