Netplan și cum să-l pregătești corect

Ubuntu este un sistem de operare uimitor, nu am lucrat de mult cu Ubuntu server și nu avea sens să îmi actualizez Desktop-ul de la o versiune stabilă. Și acum ceva timp a fost nevoie să mă confrunt cu cea mai recentă versiune a Ubuntu server 18.04, surpriza mea a fost uriașă când am realizat că am rămas complet în urmă și nu pot configura rețeaua deoarece vechiul sistem de configurare a interfețelor de rețea prin editarea fișierului /etc/network/interfaces a dispărut. Dar ce a venit în loc? ceva teribil și, la prima vedere, complet neînțeles, să-l întâmpinăm pe „Netplan”.

Să fiu sincer, la început nu am putut înțelege ce se întâmplă și „de ce este nevoie de asta, deoarece totul era atât de convenabil”, dar după ce am câteva experiențe am realizat că are farmecul său. Așa că să lăsăm lirica, ce este Netplan? Este o nouă utilitate pentru configurarea rețelei în Ubuntu, cel puțin „în alte distribuții nu am întâlnit așa ceva”. Principala diferență a Netplan este că configurația este scrisă în limbajul YAML, da, da, nu ați auzit greșit, YAML, dezvoltatorii au decis să țină pasul cu vremurile (și, oricât de mult aș lăuda, eu tot îl consider un limbaj groaznic). Principalul dezavantaj al acestui limbaj este că este foarte sensibil la spații. Hai să analizăm configurația pe un exemplu.

Fișierele de configurare se află la calea /etc/netplan/numeafisier.yaml, între fiecare bloc trebuie să fie + 2 spații.

1) Antetul standard arată așa:

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

Să analizăm ce am realizat acum:

  • network: — acesta este blocul care începe configurația.
  • renderer: networkd — aici specificăm managerul de rețea pe care îl vom folosi, fie că este networkd, fie NetworkManager.
  • version: 2 — aici, după cum am înțeles, versiunea YAML.
  • ethernets: — acest bloc indică faptul că vom configura protocolul Ethernet.
  • enp3s0f0: — specificăm ce adaptor de rețea vom configura.
  • dhcp4:no — dezactivăm DHCP v4, pentru dhcp6 se folosește 6 v6.

2) Să încercăm să atribuim adrese 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

Aici am stabilit adresa MAC, IPv4, gateway și server DNS. Observați că dacă avem nevoie de mai mult de o adresă IP, le scriem separate prin virgulă, cu un spațiu obligatoriu după.

3) Și ce facem dacă avem nevoie de bonding?

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

  • bonds: — bloc care explică că vom configura bonding.
  • bond0: — nume arbitrar al interfeței.
  • interfaces: — un set de interfețe care sunt adunate în bonding, »după cum s-a menționat anterior, dacă există mai multe parametrii, le descriem între paranteze pătrate".
  • parameters: — descriem blocul de configurare a parametrilor
  • mode: — indicăm modul în care va funcționa bonding.
  • mii-monitor-interval: — setăm intervalul de monitorizare la 1 secundă.

În interiorul blocului cu numele bond-ului, se pot configura și parametrii precum addresses, gateway4, routes etc.

Am adăugat redundanță pentru rețeaua noastră, acum rămâne doar să adăugăm vlan și configurația poate fi considerată finalizată.

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: nu
      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: — declarăm blocul de configurare vlan.
  • vlan10: — nume arbitrar al interfeței vlan.
  • id: — eticheta vlan-ului nostru.
  • link: — interfața prin care vlan-ul va fi accesibil.
  • routes: — declarăm blocul de descriere a rutelor.
  • — to: — indicăm adresa/subrețeaua pentru care este necesar ruta.
  • via: — specificăm gateway-ul prin care va fi accesibilă subrețeaua noastră.
  • on-link: — specificăm că rutele trebuie să fie întotdeauna configurate când se activează link-ul.

Atenție la modul în care așez spațiile, în limbajul YAML acest lucru este foarte important.

Iată că am descris interfețele de rețea, am creat bonding și am adăugat vlan-uri. Să aplicăm configurația noastră, comanda netplan apply va verifica configurația pentru erori și o va aplica în cazul unui succes. Ulterior, configurația se va activa automat la repornirea sistemului.

Aducând împreună toate blocurile de cod anterioare, iată ce am obținut:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: nu
    ensp3s0f1:
      dhcp4: nu
  bonds:
    bond0:
      dhcp4: nu
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: nu
      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: nu
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

Iată că rețeaua noastră este gata de utilizare, totul s-a dovedit a fi mai puțin înfricoșător decât părea la început și codul a ieșit foarte frumos și citibil. P.S. Mulțumesc că există un excelent ghid despre netplan la acest link. https://netplan.io/.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster