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:

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/