Após sete anos de desenvolvimento, foi lançado o release da ferramenta Netplan 1.0, que desenvolve o formato para armazenamento de configurações de interfaces de rede e as utilidades relacionadas para gestão de configurações de rede. O Netplan garante o armazenamento de parâmetros no formato YAML e fornece backends que abstraem o acesso à configuração para o NetworkManager e o systemd-networkd. O código do projeto é escrito nas linguagens Python e C, e é distribuído sob a licença GPLv3.
Além dos funcionários da Canonical, também participam do desenvolvimento do projeto funcionários da Microsoft e da Deutsche Telekom. O Netplan já está em uso no Ubuntu desde a versão 17.10, sendo utilizado no Ubuntu 23.10 Desktop como backend padrão no NetworkManager e aplicado por padrão para gestão de configurações de rede nas compilações oficiais do Debian 12 para sistemas em nuvem. O suporte ao Netplan também é implementado para o cloud-init e o instalador Calamares. A nova versão 1.0 do Netplan fará parte da distribuição do Ubuntu 24.04 e será incluída no Debian 13.
O Netplan 1.0 é considerado o primeiro lançamento significativo e estável, eliminando algumas funcionalidades há muito obsoletas. A eliminação da dívida técnica resultou em uma simplificação na manutenção da base de código e removeu obstáculos que dificultavam a implementação de novas ideias. Além da estabilização da API da biblioteca libnetplan1, a nova versão inclui as seguintes mudanças:
- Suporte simultâneo a WPA2 e WPA3.
- Suporte para dispositivos de rede Mellanox VF-LAG com SR-IOV (Virtualização de Entrada/Saída de Raiz Única).
- Novas opções ‘hairpin’ e ‘port-mac-learning’, úteis na configuração de túneis VXLAN usando o FRRouting.
- Um novo conjunto de wrappers em Python (python3-netplan), facilitando a integração com sistemas de terceiros.
- O comando ‘netplan status —diff’, que permite visualizar claramente as diferenças entre o estado real das configurações e os arquivos de configuração.

A aplicação do netplan unifica a definição de arquivos de configuração básicos utilizados no NetworkManager e no systemd-networkd, eliminando a necessidade de estudar os detalhes dos formatos de configuração de cada um desses sistemas. O funcionamento do netplan resume-se a que, durante o processo de inicialização, ele lê as configurações de rede básicas dos arquivos ‘/{lib,etc,run}/netplan/*.yaml’ e grava a configuração no diretório /run em um formato adequado para processamento posterior no systemd-networkd ou NetworkManager.

Características do Netplan:
- Ignorar dispositivos não marcados na configuração;
- Toda a configuração é armazenada apenas no arquivo YAML original (sem usar /etc/network/interfaces);
- Possibilidade de dividir a configuração em vários arquivos (por exemplo, para extrair as configurações do libvirt e lxd);
- Opções flexíveis para seleção e mudança de backend.
- A descrição dos parâmetros das interfaces de rede no netplan é feita usando uma sintaxe declarativa que permite descrever facilmente a estrutura de uma rede complexa.
Entre as vantagens do netplan em comparação com ifupdown:
- Sintaxe declarativa;
- Possibilidade de aplicar máscaras para nomes de interfaces de rede, endereços MAC, drivers e outros componentes;
- Consideração do contexto ao analisar a hierarquia dos parâmetros das interfaces de rede, o que permite transmitir as configurações corretamente e na ordem certa para os manipuladores (no ifupdown, ao analisar configurações complexas, podem ocorrer problemas devido a condições de corrida).
Fonte: opennet.ru

