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:
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.
Parabéns pelo trabalho
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.
Excelente! Estive quebrando a cabeça em definir um ip estático e finalmente consegui através do artigo.
Muito obrigado pelo tutorial e também ao ‘joao sousa’ pelo comentário, eu já estava arrancando os cabelos com erro de sintaxe.
Obrigado, foi perfeito o seu artigo consegui inserir um IP fixo na minha VM
Obrigado Evandro!
Muito bom, Fábio sobre o “alias” como fica.
eth1:
eth1:1:
eth1:2:
eth1:3:
eth1:4:
eth1:5:
eth2:
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