Como configurar endereço IP estático no Linux Ubuntu 18.04 com netplan

Como configurar endereço IP estático no Linux Ubuntu 18.04 com netplan

O Ubuntu vem utilizando desde a versão 17.10 o utilitário de configuração de rede em linha de comandos Netplan, o qual opera por meio do emprego de arquivos YAML para descrição das interfaces de rede. Esta ferramenta substitui o tradicional arquivo /etc/network/interfaces.

O Netplan lê as configurações de rede a partir de arquivos .yaml, que podem estar localizados nos seguintes diretórios:

  • /run/netplan/
  • /etc/netplan/
  • /lib/netplan/

O diretório /etc/netplan/ é o local mais comum para encontrar e colocar esses arquivos de configuração.

O Netplan processa os arquivos yaml e a partir deles gera as configurações de backend necessárias para o renderizador (daemon) de rede do sistema. Suporta os renderizadores de rede NetworkManager e Systemd-networkd (ou simplesmente networkd), o qual é o padrão.

Quando o sistema é inicializado, o netplan verifica o conteúdo dos diretórios citados anteriormente e lê os arquivos de configuração encontrados. As configurações são então gravadas em arquivos (um para cada interface de rede) no diretório /run/systemd/network/, a partir do qual o daemon de rede (renderizador) assume o controle dos dispositivos de rede configurados.

Por exemplo, em uma distro Ubuntu Desktop você poderá encontrar um arquivo com um nome  como 10-netplan-enp0s3.network neste diretório, cujo conteúdo é mostrado a seguir:

utilitário netplan no Ubuntu Linux 18.04

Como está bem claro, este arquivo se refere à configuração da interface de rede enp0s3. Mas não é esse arquivo que configuramos manualmente; são os arquivos presentes no diretório /etc/netplan/. Vamos a eles.

Configuração básica

Ao abrir o arquivo 01-network-manager-all.yaml, presente no diretório /etc/netplan em uma distribuição Ubuntu Linux Desktop 18.04 nos deparamos com o seguinte conteúdo:

network:
   version: 2
   renderer: NetworkManager

Esta configuração básica faz com que o NetworkManager seja responsável por gerenciar todos os dispositivos de rede. Por padrão, as interfaces utilizarão configuração via DHCP. Note que as linhas do arquivo são identadas – é importante prestar atenção a isso, ou a configuração não terá efeito. E a identação deve ser feita com espaços, e não tecla tab.

Já se for utilizado o networkd como renderizador de rede, os dispositivos não serão configurados automaticamente como DHCP – as interfaces deverão ser especificadas no arquivo de configuração do diretório /etc/netplan para funcionarem.

Vejamos outra configuração básica, desta vez em um sistema Ubuntu Server com uma interface de rede configurada por DHCP:

network:
   renderer: networkd
   ethernets:
      enp0s3:
         dhcp4: yes
         dhcp6: yes
   version: 2

Procedimentos básicos para configuração de IP estático

Vamos realizar uma configuração de rede para que o sistema use IP estático. Siga os passos a seguir (meu exemplo usa Ubuntu Server):

1 – Entre no diretório netplan pelo terminal:

$ cd /etc/netplan

2 – Verifique o nome do arquivo de configuração existente em sua distribuição:

$ ls

Por exemplo, no Ubuntu Server 18.04 o arquivo de configuração padrão é o 50-cloud-init.yaml

Caso nenhum arquivo YAML tenha sido configurado durante a instalação da distribuição, e nada apareça neste diretório, você pode gerar um novo arquivo de configurações para os renderizadores emitindo o comando a seguir:

$ sudo netplan generate

Ou simplesmente criar um novo arquivo usando um editor de textos, que use a extensão .yaml. Recomenda-se inicias o nome do arquivo com um número também.

3 – Fazer backup de arquivo de configuração atual:

$ sudo cp 50-cloud-init.yaml.old

4 – Abrir o arquivo de configuração para edição (use o editor de textos de sua preferência):

$ sudo nano 50-cloud-init.yaml

5 – Configure o arquivo como segue:

network:
   version: 2
   renderer: networkd
   ethernets:
      enp0s3:
         dhcp4: no
         dhcp6: no
         addresses: [192.168.100.2/24]
         gateway4: 192.168.100.1
         nameservers:
            addresses: [192.168.100.1,8.8.8.8]

Neste exemplo temos:

  • renderer: Renderizador (daemon de rede). Aceita os valores NetworkManager e networkd. O padrão é networkd. Pode ser aplicada globalmente ou para um dispositivo específico.
  • ethernets: Seção das interfaces de rede a configurar
  • enp0s3: Nome de uma interface de rede a configurar
  • dhcp4: Propriedades da interface para o DHCP versão 4
  • dhcp6: Propriedades da interface para o DHCP versão 6
  • addresses: Lista de IPs a serem atribuídos
  • gateway4: Endereço do gateway padrão da rede
  • nameservers: Seção de Servidores DNS e domínios de busca a usar

6 – Salve e saia do arquivo.

7 – Testando a sintaxe do arquivo:

$ sudo netplan try

8 – Aplicar a configuração:

$ sudo netplan apply

9 – Finalmente, verificar se o IP foi alterado de acordo com nossa necessidade:

$ ip addr show

Configuração realizada com sucesso. Mas e se nosso servidor possuir duas interfaces de rede, por exemplo as interfaces enp0s3 e enp0s8? Neste caso, basta adicionar as interfaces no mesmo arquivo:

network:
   version: 2
   renderer: networkd
   ethernets:
      enp0s3:
         dhcp4: no
         addresses: [192.168.100.2/24]
         gateway4: 192.168.100.1
         nameservers:
            addresses: [192.168.100.1,8.8.8.8]
      enp0s8:
         dhcp4: no
         addresses: [192.168.100.4/24]
         gateway4: 192.168.100.1
         nameservers:
            addresses: [192.168.100.1,8.8.8.8]

É isso! Outras configurações de rede que podem ser realizadas com o netplan incluem:

  • macaddress: Endereço físico da interface, no formato “XX:XX:XX:XX:XX:XX”
  • mtu: Valor de MTU da interface
  • gateway6: gateway padrão da rede, IPv6

Também é possível configurar rotas e redes sem fio, criar bonds e configurar vlans. Veremos essas opções em uma próxima lição.

Maiores informações sobre o netplan podem ser obtidas em sua página de manual:

$ man netplan

Ou em seu site oficial: https://netplan.io/

Já sobre arquivos .yaml: https://yaml.org/

É isso aí! Até o próximo tutorial.

 

Sobre Fábio dos Reis (1194 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

8 Comentários em Como configurar endereço IP estático no Linux Ubuntu 18.04 com netplan

  1. carlos alberto soares batista // 10/07/2019 em 17:40 // Responder

    Parabéns pelo trabalho

  2. joao sousa // 21/07/2019 em 14:14 // Responder

    Otimo artigo. Caso voce esteja editando as conmfiguraçoes e fica dando erro de sintaxe, gere um novo arquivo de configuração e preencha conforme este artigo.
    Fiz isso e deu certo de primeira.

  3. Luiz Henrique // 13/10/2019 em 10:35 // Responder

    Excelente! Estive quebrando a cabeça em definir um ip estático e finalmente consegui através do artigo.

  4. Muito obrigado pelo tutorial e também ao ‘joao sousa’ pelo comentário, eu já estava arrancando os cabelos com erro de sintaxe.

  5. Obrigado, foi perfeito o seu artigo consegui inserir um IP fixo na minha VM

  6. Muito bom, Fábio sobre o “alias” como fica.
    eth1:
    eth1:1:
    eth1:2:
    eth1:3:
    eth1:4:
    eth1:5:
    eth2:

  7. muito boa a explicaç ão
    somente uma duvida professor, o meu está dando erro no carregamento do arquivo

    sudo nano 01-config rede.yaml
    # configuração de ip estático zabbix
    network:
    version: 2
    renderer: networkd
    ethernets:
    ens18:
    dhcp4: no
    dhcp6: no
    adresses:[xx.235.144.xx/21]
    gateway4: xx.235.144.x
    nameservers:
    addresses: [xx.235.144.10,xx.235.144.11]

    está correto a sintaxe/ poderia me dar uma luz
    já fiz varias vezes e econtinua dando erro ao carregar

Escreva um comentário

Seu e-mail não será divulgado


*