Ubuntu é um sistema operacional incrível. Eu não trabalhava com o Ubuntu Server há muito tempo e não fazia sentido atualizar meu Desktop a partir de uma versão estável. Recentemente, tive que lidar com o lançamento do Ubuntu Server 18.04 e fiquei surpreso ao perceber que estava extremamente desatualizado e não conseguia configurar a rede, pois o sistema antigo de configuração de interfaces de rede, editando o arquivo /etc/network/interfaces, passou a ser obsoleto. O que veio em seu lugar? Algo assustador e, à primeira vista, completamente incompreensível: conheçam o «Netplan».
Para ser honesto, no início eu não conseguia entender qual era a necessidade, já que tudo era tão conveniente, mas após algumas práticas, percebi que havia seu charme. Então, basta de lirismo, vamos continuar. O que é o Netplan? É uma nova ferramenta para configuração de rede no Ubuntu; pelo menos, nunca vi algo parecido em outras distribuições. A principal diferença do Netplan é que a configuração é escrita em uma linguagem , sim, sim, você não ouviu errado: YAML. Os desenvolvedores decidiram acompanhar os tempos (e, por mais que o elogie, ainda considero esta linguagem terrível). O principal problema dessa linguagem é que ela é muito sensível a espaços. Vamos examinar a configuração com um exemplo.
Os arquivos de configuração estão localizados em /etc/netplan/nome_do_arquivo.yaml; entre cada bloco, deve haver + 2 espaços.
1) O cabeçalho padrão se parece com isto:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noVamos analisar o que fizemos até agora:
- network: — este é o bloco de início da configuração.
- renderer: networkd — aqui especificamos o gerenciador de rede que estaremos usando, que pode ser networkd ou NetworkManager.
- version: 2 — aqui, conforme entendi, está a versão do YAML.
- ethernets: — este bloco indica que vamos configurar o protocolo Ethernet.
- enp3s0f0: — especificamos qual adaptador de rede vamos configurar.
- dhcp4:no — desativamos o DHCP v4; para o v6, seria dhcp6, respectivamente.
2) Vamos tentar assignar endereços IP:
enp3s0f0:
dhcp4:no
macaddress: bb:11:13:ab:ff:32
addresses: [10.10.10.2/24, 10.10.10.3/24]
gateway4: 10.10.10.1
nameservers:
addresses: 8.8.8.8Aqui estamos definindo o MAC, o IPv4, o gateway e o servidor DNS. Observe que, se precisarmos de mais de um endereço IP, devemos escrevê-los separados por vírgula, com um espaço obrigatoriamente após a vírgula.
3) E se precisarmos de ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: — um bloco explicativo sobre o que vamos configurar no bonding.
- bond0: — um nome arbitrário para a interface.
- interfaces: — um conjunto de interfaces reunidas em bonding, »como mencionado anteriormente, se houver vários parâmetros, descrevemos eles entre colchetes".
- parameters: — descrevemos o bloco de configuração dos parâmetros.
- mode: — especificamos o modo em que o bonding funcionará.
- mii-monitor-interval: — definimos um intervalo de monitoramento de 1 segundo.
Dentro do bloco nomeado bond também é possível configurar parâmetros como addresses, gateway4, routes, etc.
Adicionamos redundância para nossa rede, agora só falta configurar e a configuração pode ser considerada finalizada.
vlans:
vlan10:
id: 10
link: bond0
dhcp4: no
addresses: [10.10.10.2/24]
gateway: 10.10.10.1
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: true
- vlans: — declaramos o bloco de configuração de vlan.
- vlan10: — um nome arbitrário para a interface vlan.
- id: — a tag da nossa vlan.
- link: — a interface pela qual a vlan estará acessível.
- routes: — declaramos o bloco de descrição das rotas.
- — to: — especificamos o endereço/sub-rede para a qual a rota é necessária.
- via: — indicamos o gateway pelo qual nossa sub-rede estará acessível.
- on-link: — indicamos que as rotas devem ser sempre configuradas ao ativar o link.
Observe como eu distribuo os espaços, na linguagem YAML isso é muito importante.
Aqui descrevemos as interfaces de rede, criamos o bonding e até adicionamos vlans. Vamos aplicar nossa configuração, o comando netplan apply verificará nossa configuração em busca de erros e aplicará caso tenha sucesso. Depois, a configuração será iniciada automaticamente na reinicialização do sistema.
Reunindo todos os blocos de código anteriores, aqui está o que conseguimos:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: no
ensp3s0f1:
dhcp4: no
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: no
addresses: [10.10.10.2/24]
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: true
vlan20:
id: 20
link: bond0
dhcp4: no
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Aqui está nossa rede pronta para uso, tudo se revelou mais simples do que parecia no início e o código ficou muito bonito e legível. P.S. Obrigado por haver um ótimo manual sobre netplan no link .
Fonte: habr.com
