Como configurar várias interfaces de rede no Ubuntu 20.04
Em situações em que há duas ou mais interfaces de rede com endereços IP públicos no servidor Ubuntu 20.04, configurações adicionais devem ser feitas para garantir que o servidor esteja disponível nesses endereços adicionais. Isso ocorre porque a política de roteamento padrão envia todos os pacotes de rede por meio de uma interface, que tem uma rota padrão. Nesse caso, não importa por qual interface o pacote chegou ao servidor. Portanto, mesmo com a configuração correta do Netplan, o servidor não responderá a endereços IP adicionais sem configurações adicionais. Vamos dar uma olhada em como configurar várias interfaces de rede no Ubuntu 20.04.
Como configurar várias interfaces de rede no Ubuntu 20.04:
Configuração automática do Netplan
Os servidores Linux Serverspace foram projetados para facilitar a vida dos usuários. Eles têm a função de configurar interfaces de rede no modo automático quando são adicionadas no painel de controle ou durante a criação do servidor. Mas, para garantir a operação do roteamento baseado em políticas e como resultado da disponibilidade do servidor em várias interfaces de rede ao mesmo tempo, precisamos fazer alterações nas configurações do Netplan. Para evitar que nossas configurações sejam substituídas durante uma reinicialização, precisamos desativar a configuração automática da rede. Depois de se certificar de que o número necessário de interfaces foi adicionado ao servidor, crie um arquivo nele:
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
E adicione um parâmetro a ele:
network: {config: disabled}
Agora, as alterações subsequentes no Netplan não serão sobrescritas automaticamente na reinicialização.
[/passo]
Configurando rotas baseadas em políticas
Roteamento baseado em políticas alimentado por tabelas. Cada tabela tem suas próprias rotas e políticas. Vamos verificar a presença do pacote iproute2 no sistema. Se não estiver, instale-o.
apt install iproute2
Abra o arquivo com as tabelas de roteamento:
nano /etc/iproute2/rt_tables
E adicione no final o número de tabelas correspondente à quantidade de interfaces que você está configurando:
800 800
801 801
Formato do registro: prioridade (número) espaço nome da tabela (número).
Agora abra o arquivo Netplan com as configurações da interface de rede. Ele está localizado no caminho /etc/netplan/ e tem a extensão .yaml. No meu caso, o caminho é o seguinte:
nano /etc/netplan/50-cloud-init.yaml
Cada interface tem um bloco de configurações nesse arquivo. No final desse bloco, adicionaremos configurações para políticas e regras de roteamento para a interface. Nesse arquivo, é importante observar o número de espaços antes de cada parâmetro e valor, e não usar tabulações em vez de espaços. Concentre-se na indentação das entradas existentes e adicione por analogia.
Para cada interface de rede, adicione os blocos routes e routing-policy. O registro final para uma interface terá a seguinte aparência:
rede: version: 2 ethernets: enp0s5: addresses: - 78.89.90.12/24 gateway4: 78.89.90.1 match: macaddress: 54:43:32:21:10:09 mtu: 1500 servidores de nomes: endereços: - 8.8.8.8 - 1.1.1.1 - 8.8.4.4 busca: [] set-name: enp0s5 routes: - to: 0.0.0.0/0 via: 78.89.90.1 tabela: 800 routing-policy: - from: 78.89.90.12 tabela: 800 prioridade: 300
Para outras interfaces, as entradas serão as mesmas, começando com o nome da interface (enp0s5), mas outras não devem ter o parâmetro gateway4, pois deve haver um gateway padrão. Configurações de rotas e política de roteamento:
- to - endereço de destino do pacote. Para nossos propósitos - qualquer um (0.0.0.0/0)
- via - endereço do gateway dessa interface
- table - nome da tabela de roteamento. Os mesmos valores devem ser especificados em routes e routing-policy para uma interface, mas devem ser diferentes de uma interface para outra. Criamos essas tabelas no arquivo rt_tables
- from - o endereço de origem do pacote. Para os fins deste manual, esse é o endereço IP da interface
- prioridade - um valor numérico obrigatório
Depois de fazer as configurações e salvar o arquivo, verifique se há erros na configuração:
netplan generate
Uma saída como essa indicará um erro se estiver presente (nesse caso, está faltando um espaço):
/etc/netplan/50-cloud-init.yaml:23:12: YAML inválido: indentação inconsistente: routes: ^
Se a configuração for compilada corretamente, a saída estará ausente. Isso significa que é hora de aplicar as alterações:
netplan apply
Depois de aplicar as alterações, as interfaces de rede configuradas dessa forma ficarão disponíveis do lado de fora em seus endereços IP públicos.


