Pesquisa de site

Como gerenciar redes com NetworkManager no RHEL/CentOS 8


No RHEL e no CentOS 8 o serviço de rede é gerenciado pelo daemon NetworkManager e é usado para configurar e controlar dinamicamente dispositivos de rede e manter as conexões ativas. e ativos quando estão disponíveis.

NetworkManager vem com inúmeros benefícios, como suporte para fácil configuração e gerenciamento de rede usando interface de linha de comando e ferramentas de interface gráfica de usuário, fornece uma API através de D-Bus que permite consultar e controlar a configuração de rede, suporte para flexibilidade de configuração e muito mais.

Além disso, o NetworkManager também pode ser configurado usando arquivos e console web Cockpit e suporta o uso de scripts personalizados para iniciar ou parar outros serviços com base no status da conexão.

Leia também: Como configurar e gerenciar conexões de rede usando a ferramenta ‘nmcli’

Antes de prosseguirmos, a seguir estão alguns outros pontos importantes a serem observados sobre redes no CentOS/RHEL 8:

  • Os arquivos de configuração tradicionais do tipo ifcfg (por exemplo, ifcfg-eth0, ifcfg-enp0s3) ainda são suportados.
  • Os scripts de rede estão obsoletos e não são mais fornecidos por padrão.
  • Uma instalação mínima fornece uma nova versão dos scripts ifup e ifdown que chamam o NetworkManager por meio da ferramenta nmcli.
  • Para executar os scripts ifup e ifdown, o NetworkManager deve estar em execução.

Instalando o NetworkManager no CentOS/RHEL 8

O NetworkManager deve vir pré-instalado em uma instalação básica do CentOS/RHEL 8, caso contrário, você pode instalá-lo usando o gerenciador de pacotes DNF conforme mostrado.

dnf install NetworkManager

O arquivo de configuração global do NetworkManager está localizado em /etc/NetworkManager/NetworkManager.conf e arquivos de configuração adicionais podem ser encontrados em /etc/NetworkManager/ >.

Gerenciando NetworkManager usando Systemctl no CentOS/RHEL 8

No CentOS/RHEL 8 e em outros sistemas Linux modernos que adotaram o systemd (gerenciador de sistemas e serviços), os serviços são gerenciados usando a ferramenta systemctl.

A seguir estão comandos systemctl úteis para gerenciar o serviço NetworkManager.

Verificando o status do NetworkManager

Uma instalação mínima do CentOS/RHEL 8 deve ter o NetworkManager iniciado e habilitado para iniciar automaticamente no momento da inicialização, por padrão. Você pode usar os seguintes comandos para verificar se o NetworkManager está ativo, habilitado e imprimir informações de status de tempo de execução do NetworkManager.

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

Iniciando o NetworkManager

Se o NetworkManager não estiver em execução, você poderá iniciá-lo simplesmente executando-o.

systemctl start NetworkManager

Parando o NetworkManager

Para parar ou desativar o NetworkManager por um motivo ou outro, emita o seguinte comando.

systemctl stop NetworkManager

Reiniciando o NetworkManager

Se você tiver feito alguma alteração nos arquivos de configuração da interface ou na configuração do daemon do NetworkManager (normalmente localizado no diretório /etc/NetworkManager/), poderá reiniciar (parar e iniciar) o NetworkManager para aplicar as alterações conforme necessário. mostrando.

systemctl restart NetworkManager

Recarregando o NetworkManager

Para recarregar a configuração do daemon NetworkManager (mas não o arquivo de configuração da unidade do systemd) sem reiniciar o serviço, execute o seguinte comando.

systemctl reload NetworkManager

Usando ferramentas do NetworkManager e trabalhando com arquivos ifcfg

O NetworkManager suporta algumas ferramentas para os usuários interagirem com ele, que são:

  1. nmcli – uma ferramenta de linha de comando usada para configurar a rede.
  2. nmtui – uma interface de usuário de texto simples baseada em maldições, que também é usada para configurar e gerenciar conexões de interface de rede.
  3. Outras ferramentas incluem o editor de conexão nm, o centro de controle e o ícone de conexão de rede (todos na GUI).

Para listar os dispositivos detectados pelo NetworkManager, execute o comando nmcli.

 
nmcli device 
OR
nmcli device status

Para visualizar todas as conexões ativas, execute o seguinte comando (observe que sem o -a, ele lista os perfis de conexão disponíveis).

nmcli connection show -a

Definir endereço IP estático no CentOS/RHEL 8

Os arquivos de configuração específicos da interface de rede estão localizados no diretório /etc/sysconfig/network-scripts/. Você pode editar qualquer um desses arquivos, por exemplo, para definir um endereço IP estático para seu servidor CentOS/RHEL 8.

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

Aqui está um exemplo de configuração para definir um endereço IP estático.

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

Depois de salvar as alterações, você precisa recarregar todos os perfis de conexão ou reiniciar o NetworkManager para que as novas alterações sejam aplicadas.

nmcli connection reload
OR
systemctl restart NetworkManager

Iniciando ou interrompendo serviços/scripts de rede com base na conectividade de rede

NetworkManager possui uma opção útil que permite aos usuários executar serviços (como NFS, SMB, etc.) ou scripts simples baseados em conectividade de rede.

Por exemplo, se você deseja montar automaticamente um diretório remoto localmente com sshfs, monte compartilhamentos SMB ou monte compartilhamentos NFS após alternar entre redes. Você pode querer que tais serviços de rede não sejam executados até que o NetworkManager esteja instalado e funcionando (todas as conexões estejam ativas).

Este recurso é fornecido pelo serviço NetworkManager-dispatcher (que deve ser iniciado e habilitado para iniciar automaticamente na inicialização do sistema). Assim que o serviço estiver em execução, você poderá adicionar seus scripts ao diretório /etc/NetworkManager/dispatcher.d.

Todos os scripts devem ser executáveis e graváveis e de propriedade do root, por exemplo:

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

Importante: Os scripts do despachante serão executados em ordem alfabética no momento da conexão e em ordem alfabética inversa nos momentos de desconexão.

Usando scripts de rede legados

Como mencionamos anteriormente, os scripts de rede estão obsoletos no CentOS/RHEL 8 e não vêm instalados por padrão. Se você ainda quiser usar os scripts de rede, será necessário instalar o pacote network-scripts.

yum install network-scripts

Uma vez instalado, este pacote fornece uma nova versão dos scripts ifup e ifdown que chamam o NetworkManager através da ferramenta nmcli vimos acima. Observe que NetworkManager deve estar em execução para você executar esses scripts.

Para obter mais informações, consulte as páginas man systemctl e NetworkManager.

man systemctl
man NetworkManager

Isso é tudo que preparamos neste artigo. Você pode solicitar esclarecimentos sobre qualquer um dos pontos ou fazer perguntas ou fazer acréscimos a este guia por meio do formulário de feedback abaixo.