Dominando o Netplan no Ubuntu: Guia Completo de Configuração de Rede com YAML

1. Visão Geral do Netplan no Ubuntu

O que é Netplan?

Netplan é uma ferramenta de gerenciamento de configuração de rede introduzida nas versões do Ubuntu a partir de 17.10. Anteriormente, ferramentas como ifconfig e /etc/network/interfaces eram usadas, mas o Netplan fornece uma nova abordagem para configuração de rede. Uma das maiores vantagens do Netplan é que ele usa arquivos YAML para descrever as configurações de rede. Isso torna a configuração simples e consistente, permitindo que até ambientes de rede complexos sejam gerenciados facilmente.

Netplan suporta backends como NetworkManager e systemd-networkd e está disponível tanto nas edições Desktop quanto Server do Ubuntu. Isso permite o gerenciamento unificado de rede em diferentes ambientes.

Por que usar o Netplan?

Em comparação com métodos tradicionais de configuração de rede, o Netplan oferece as seguintes vantagens:

  1. Sintaxe simples : O formato YAML é intuitivo e claramente estruturado, tornando as configurações fáceis de entender mesmo para iniciantes.
  2. Gerenciamento unificado : Como funciona em ambientes de desktop e servidor, várias configurações de rede podem ser gerenciadas centralmente.
  3. Mudanças dinâmicas : Editar e aplicar o arquivo de configuração permite atualizações em tempo real das configurações de rede.

Estrutura básica do Netplan

Os arquivos de configuração do Netplan geralmente estão localizados no diretório /etc/netplan/ e usam a extensão .yaml. Esses arquivos contêm informações como configurações de interfaces de rede, endereços IP e detalhes de servidores DNS.

Abaixo está um exemplo de uma configuração básica do Netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

Neste exemplo, a interface Ethernet enp3s0 é configurada para obter um endereço IP via DHCP.

O papel do Netplan no Ubuntu 18.04 LTS e versões posteriores

O Netplan é instalado por padrão no Ubuntu 18.04 LTS e versões posteriores e é amplamente usado para gerenciamento de rede em ambientes de desktop e servidor. Em ambientes de servidor, onde múltiplas interfaces de rede ou atribuições de IP estático são frequentemente necessárias, a flexibilidade do Netplan se torna particularmente útil.

Em seguida, exploraremos exemplos práticos de configuração de redes usando o Netplan.

2. Configuração Básica do Netplan

Localização dos arquivos de configuração do Netplan

Os arquivos de configuração do Netplan geralmente são armazenados no diretório /etc/netplan/. Você pode modificar as configurações de rede editando esses arquivos .yaml. Nomes de arquivos como 50-cloud-init.yaml são comuns, mas podem variar dependendo do ambiente.

Para abrir o arquivo de configuração, use um editor de texto como vi ou nano:

sudo vi /etc/netplan/50-cloud-init.yaml

Configuração de endereço IP dinâmico (DHCP)

Para obter automaticamente um endereço IP usando DHCP, use a seguinte configuração YAML. Esta é a configuração mais simples e é comumente usada em ambientes domésticos e de escritório.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

Configuração de endereço IP estático

Alguns ambientes exigem a atribuição de um endereço IP estático a servidores ou dispositivos específicos. O exemplo a seguir demonstra como configurar um endereço IP estático.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Aplicando a configuração

Após editar o arquivo de configuração, aplique a configuração do Netplan usando o comando abaixo:

sudo netplan apply

Verificando a configuração

Para verificar se as configurações do Netplan foram aplicadas com sucesso, verifique o status da interface de rede com o seguinte comando:

ip a

3. Configurando Múltiplas Interfaces de Rede

Configuração de múltiplas interfaces Ethernet

Dispositivos com múltiplas interfaces de rede podem atribuir configurações diferentes a cada interface. O exemplo abaixo configura duas interfaces Ethernet:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Bonding para redundância

Bonding combina múltiplas interfaces de rede em uma única interface virtual, proporcionando redundância e melhorando a disponibilidade. O exemplo abaixo cria uma interface bond chamada bond0:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

Configuração de Wi‑Fi

O Netplan também suporta configuração de Wi‑Fi. O exemplo a seguir conecta a um SSID específico:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

Configuração de VLAN

VLANs (Virtual LANs) podem segmentar redes logicamente. O exemplo abaixo cria uma VLAN em enp3s0:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

4. Configuração Avançada do Netplan

Configuração de roteamento estático

Ao conectar redes através de múltiplos roteadores, o roteamento estático é necessário. O exemplo abaixo especifica uma rota para acessar uma rede específica:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

Esta configuração define uma rota estática para a rede 10.0.0.0/24 através do gateway padrão 192.168.1.1.

Múltiplos gateways padrão

O Netplan permite definir diferentes gateways padrão por interface. Isso é útil ao acessar a Internet através de diferentes segmentos de rede:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

Configuração de servidores DNS

O exemplo abaixo especifica os servidores DNS públicos do Google:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Configuração avançada de bonding

Os modos de bonding podem ser alterados para diferentes comportamentos. O exemplo abaixo configura bonding round‑robin:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

O modo balance-rr alterna o tráfego entre as duas interfaces, melhorando o desempenho por meio da distribuição de largura de banda.

Configuração avançada de VLAN

VLANs são usadas em redes de grande escala para dividir ambientes logicamente. O exemplo abaixo atribui a VLAN ID 100:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

Isso atribui a VLAN ID 100 à interface enp3s0, criando uma rede virtual segmentada.

5. Solução de Problemas do Netplan

Embora o Netplan seja conveniente, erros de configuração ou limitações do sistema podem causar problemas. Esta seção explica problemas comuns e suas soluções.

Problemas comuns do Netplan e causas

1. Configuração não aplicada

  • Erro de indentação YAML : YAML é rigoroso quanto à indentação. Espaçamento incorreto impede a análise correta.
  • Nomes de interface incorretos : Certifique‑se de que os nomes das interfaces correspondam à saída do comando ip a.

Soluções

  1. Execute netplan apply após salvar o arquivo de configuração.
  2. Use sudo netplan try para testar as alterações antes de aplicá‑las permanentemente.
    sudo netplan apply
    
    sudo netplan try
    

2. Erros de conexão de rede

  • Gateway ou configurações DNS incorretas : Verifique os endereços IP e a configuração DNS.
  • Problemas físicos na interface : Verifique cabos e hardware.

Soluções

  1. Use o comando ping para testar a conectividade:
    ping 8.8.8.8
    
  1. Reaplique a configuração de rede e reinicie os serviços:
    sudo systemctl restart networkd
    

3. Mensagens de erro ao executar netplan apply

Erros ocorrem quando a configuração está incorreta ou a interface não é reconhecida.

  • Exemplo de mensagem de erro : Error in network configuration: failed to bring up device enp3s0

Verifique o nome correto da interface usando ip a.

Solução

Confira a indentação, ortografia, nomes das interfaces e a correção dos endereços IP.

Verificando logs

Os logs do sistema são úteis para solução de problemas. Use o comando abaixo para visualizar logs relacionados à rede:

journalctl -u systemd-networkd

Isso exibe informações detalhadas para ajudar a resolver erros de configuração.

6. Resumo e Próximos Passos

Usar o Netplan permite que as configurações de rede do Ubuntu sejam gerenciadas de forma simples e eficiente. A seguir, um resumo e sugestões de próximos passos para aprofundamento.

Principais vantagens do Netplan

  1. Configuração YAML intuitiva : Fácil de ler e modificar.
  2. Design de rede flexível : Suporta múltiplas interfaces, bonding, rotas e VLANs.
  3. Interface unificada : Funciona tanto com systemd-networkd quanto com NetworkManager.
  4. Atualizações em tempo real : Aplique alterações imediatamente com um único comando.

Próximos passos recomendados

  1. Design de rede virtual : Use múltiplas VLANs para segmentar redes logicamente.
  2. Configuração IPv6 : Prepare-se para a infraestrutura de rede moderna.
  3. Scripts de automação : Automatize configurações usando Ansible ou Puppet.
  4. Aprimoramentos de segurança : Fortaleça o firewall e as configurações de controle de acesso.

Recursos adicionais