Netplan e como prepará-lo corretamente

Ubuntu é um sistema operacional incrível, faz muito tempo que não trabalho com servidor Ubuntu e não fazia sentido atualizar meu Desktop da versão estável. E não faz muito tempo tive que lidar com a última versão do servidor Ubuntu 18.04, minha surpresa não teve limites quando percebi que estava infinitamente atrasado e não conseguia configurar uma rede porque o bom e velho sistema para configurar interfaces de rede por editar o arquivo /etc/network /interfaces foi por água abaixo. E o que veio para substituí-lo? algo terrível e à primeira vista completamente incompreensível, conheça “Netplan”.

Para ser sincero, no começo não consegui entender o que estava acontecendo e “por que isso é necessário, porque tudo era tão conveniente”, mas depois de um pouco de prática percebi que tem seu próprio charme. E chega de letra, vamos continuar com o que é o Netplan, este é um novo utilitário para configurações de rede no Ubuntu, pelo menos “não vi nada parecido em outras distribuições.” Uma diferença significativa do Netplan é que a configuração é escrita na linguagem Yaml, sim, você ouviu direito YAML, os desenvolvedores decidiram acompanhar os tempos (e não importa o quanto elogiem, ainda acho que é uma linguagem terrível). A principal desvantagem desta linguagem é que ela é muito sensível a espaços, vejamos a configuração usando um exemplo.

Os arquivos de configuração estão localizados no caminho /etc/netplan/filename.yaml, entre cada bloco deve haver + 2 espaços.

1) O cabeçalho padrão é assim:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

Vejamos o que fizemos agora:

  • rede: - este é o início do bloco de configuração.
  • renderizador: networkd - aqui indicamos o gerenciador de rede que usaremos, é networkd ou NetworkManager
  • versão: 2 - aqui, pelo que entendi, está a versão YAML.
  • ethernets: - este bloco indica que iremos configurar o protocolo ethernet.
  • enps0f0: — indica qual adaptador de rede iremos configurar.
  • dhcp4:no - desabilita DHCP v4, para 6 v6 dhcp6 respectivamente

2) Vamos tentar atribuir 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.8

Aqui configuramos o servidor poppy, ipv4, gateway e dns. Observe que se precisarmos de mais de um endereço IP, então os escrevemos separados por vírgulas e com um espaço obrigatório depois.

3) E se precisarmos bonding?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • bonds: - um bloco explicando que iremos configurar o bonding.
  • bond0: - nome de interface arbitrário.
  • interfaces: - um conjunto de interfaces coletadas em um bond-ding, “como dito anteriormente, se houver vários parâmetros, nós os descrevemos entre colchetes”.
  • parâmetros: — descreve o bloco de configurações de parâmetros
  • modo: — especifique o modo pelo qual a ligação funcionará.
  • mii-monitor-interval: — defina o intervalo de monitoramento para 1 segundo.

Dentro do bloco denominado bond, você também pode configurar parâmetros como endereços, gateway4, rotas, etc.

Adicionamos redundância para nossa rede, agora só falta instalar vlan e a configuração pode ser considerada completa.

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: — declara o bloco de configuração vlan.
  • vlan10: — nome arbitrário da interface vlan.
  • id: — tag da nossa vlan.
  • link: — interface através da qual a vlan estará acessível.
  • rotas: — declara um bloco de descrição de rota.
  • — para: — definir o endereço/sub-rede para o qual a rota é necessária.
  • via: — especifique o gateway através do qual nossa sub-rede estará acessível.
  • on-link: — indicamos que as rotas devem ser sempre registradas quando o link for criado.

Preste atenção em como coloco os espaços; isso é muito importante no YAML.

Então descrevemos as interfaces de rede, criamos vínculos e até adicionamos vlans. Vamos aplicar nossa configuração, o comando netplan apply irá verificar se há erros em nossa configuração e aplicá-la se for bem-sucedido. Em seguida, a configuração será levantada por conta própria quando o sistema for reinicializado.

Depois de coletar todos os blocos de código anteriores, obtivemos isso:

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]
    

Agora que nossa rede está pronta para funcionar, tudo acabou não sendo tão assustador quanto parecia a princípio e o código ficou muito bonito e legível. PC obrigado pelo netplan existe um excelente manual no link https://netplan.io/.

Fonte: habr.com

Adicionar um comentário