31.01.2025

Como configurar várias interfaces de rede no CentOS 8

Se houver duas ou mais interfaces de rede com endereços IP públicos no sistema, não basta fazer as configurações de rede corretas para garantir sua disponibilidade na Internet. A desvantagem do roteamento padrão é que todos os pacotes de rede deixarão o host pelo gateway padrão. E, ao mesmo tempo, não importa a qual das interfaces eles chegaram inicialmente. Neste tutorial, configuraremos a disponibilidade de várias interfaces de rede externas no CentOS 8 usando o roteamento baseado na origem.

Parâmetros da interface de rede

Os servidores em nuvem no Serverspace têm a função de configurar automaticamente as interfaces de rede quando são adicionados ou quando um servidor é criado. Portanto, se você os usar, passe para a próxima etapa. Caso contrário, primeiro você precisa definir os parâmetros corretos das interfaces de rede.

Abra o arquivo de configurações da interface de rede. Seus nomes podem ser visualizados com o comando ip a ou definir novos nomes se eles não estiverem configurados.

nano /etc/sysconfig/network-scripts/ifcfg-enp0s5

Você pode copiar a configuração abaixo e substituir os seguintes valores pelos seus próprios:

  • nome da interface (enp0s5)
  • gateway (GATEWAY)
  • endereço MAC (HWADDR)
  • Endereço IP (IPADDR)
  • máscara de sub-rede (NETMASK)
BOOTPROTO=none
DEFROUTE=yes
DEVICE=enp0s5
GATEWAY=54.43.32.1
HWADDR=56:67:78:89:01:ab
IPADDR=54.43.32.11
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet

Configure todas as interfaces de rede da mesma forma. O GATEWAY para a segunda, terceira, etc. interfaces não é especificado, pois esse é o gateway padrão e deve haver apenas um.

Desabilitar o NetworkManager

Configuraremos o roteamento baseado em políticas usando scripts de rede, portanto, desativaremos o NetworkManager e os serviços relacionados:

systemctl mask NetworkManager.service
systemctl stop NetworkManager.service
systemctl mask NetworkManager-wait-online.service
systemctl mask NetworkManager-dispatcher.service

Instale o pacote network-scripts.
[/passo]

dnf install network-scripts

Vamos iniciar o serviço de rede:
[/passo]

systemctl enable network
systemctl start network

Configuração do roteamento baseado na origem

Vamos verificar se o pacote iproute está presente. Se não estiver, instale-o.

dnf install iproute

Adicionar novas tabelas para configurar políticas de roteamento.

nano /etc/iproute2/rt_tables

Adicione registros ao final do arquivo:

400 400
401 401

Cada linha é uma nova tabela. Formato do registro - prioridade espaço nome da tabela. Esses valores devem ser exclusivos em relação a outras entradas no arquivo. A prioridade é numérica, e o nome da tabela pode conter letras. Adicione tantas tabelas novas quantas forem as interfaces que estiver configurando.

Os arquivos a seguir conterão as configurações de roteamento. Para cada interface, você precisa criar um par de arquivos: rule-eth-name, route-eth-name, em que eth-name deve ser substituído pelo nome da interface. Exemplo para a interface enp0s5:

nano /etc/sysconfig/network-scripts/rule-enp0s5

Insira a seguinte linha nela com o endereço IP atual em vez de 54.43.32.11 e o nome da tabela criada na etapa anterior em vez de 400:

from 54.43.32.11 lookup 400

Segundo arquivo:

nano /etc/sysconfig/network-scripts/route-enp0s5

Substitua 54.43.32.0/24 pelo endereço de sua sub-rede, enp0s5 pelo nome da interface, 400 pelo nome da tabela correspondente e 54.43.32.1 pelo gateway para roteamento do tráfego e insira-o no arquivo aberto:

54.43.32.0/24 dev enp0s5 table 400
default dev enp0s5 via 54.43.32.1 table 400

Depois de criar esses arquivos para cada interface de rede, reinicie o serviço de rede e nosso objetivo será alcançado.

systemctl restart network