Netplan i kako ga pravilno pripremiti

Ubuntu je nevjerojatan operativni sustav, dugo nisam radio s Ubuntu serverom, a nije imalo smisla ažurirati svoj Desktop sa stabilne verzije. I tako sam se nedavno suočio s novim izdanjem Ubuntu servera 18.04, moje je iznenađenje bilo bezgranično kada sam shvatio da sam beskrajno zaostao i ne mogu postaviti mrežu, jer je stari poznati sustav postavljanja mrežnih sučelja putem uređivanja datoteke /etc/network/interfaces nestao u zaborav. A što ga je zamijenilo? Nešto strašno i na prvi pogled potpuno nejasno, predstavljamo "Netplan".

Iskreno, isprva nisam mogao shvatiti u čemu je stvar i "zašto je to potrebno, jer je sve bilo tako zgodno", ali nakon što sam stekao malo prakse, shvatio sam da ima svoje čari. I tako, dosta lirike, nastavimo, što je zapravo Netplan, to je nova alatka za postavljanje mreže u Ubuntu, barem "u drugim distribucijama nisam naišao na nešto slično". Bitna razlika Netplana je da se konfiguracija piše na jeziku YAML, da, da, niste pogriješili, YAML, programeri su odlučili ići s vremenom (i koliko god ga hvalili, ja ga ipak smatram strašnim jezikom). Osnovni nedostatak ovog jezika je što je vrlo osjetljiv na razmake, hajde da razmotrimo konfiguraciju na primjeru.

Datoteke s konfiguracijom nalaze se na putu /etc/netplan/ime_datoteke.yaml, između svakog bloka treba biti + 2 razmaka.

1) Standardni header izgleda ovako:

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

Hajde da pogledamo što smo trenutno učinili:

  • network: — ovo je blok početka konfiguracije.
  • renderer: networkd — ovdje navodimo mrežnog upravitelja koji ćemo koristiti, to je ili networkd ili NetworkManager
  • version: 2 — ovdje, koliko sam shvatio, verzija YAML-a.
  • ethernets: — ovaj blok govori da ćemo konfigurirati ethernet protokol.
  • enp3s0f0: — navodimo koji mrežni adapter konfiguriramo.
  • dhcp4:no — isključujemo DHCP v4, za 6 v6 dhcp6 odgovarajuće

2) Pokušajmo dodijeliti IP adrese:

    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

Ovdje smo postavili MAC, IPv4, gateway i DNS poslužitelj. Napominjem da, ako nam treba više od jedne IP adrese, pišemo ih zarezom s obaveznim razmakom nakon.

3) A što ako nam treba bonding?

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

  • bonds: — blok koji objašnjava što ćemo konfigurirati za bonding.
  • bond0: — proizvoljno ime sučelja.
  • interfaces: — skup sučelja koja se skupljaju u bonding, »kao što je prethodno navedeno, ako ima više parametara, opisujemo ih u kvadratnim zagradama".
  • parameters: — opisujemo blok za konfiguraciju parametara.
  • mode: — navodimo način na koji će raditi bonding.
  • mii-monitor-interval: — postavljamo interval nadzora na 1 sekundu.

Unutar bloka s imenom bond-a također se mogu konfigurirati takvi parametri kao što su addresses, gateway4, routes itd.

Dodali smo rezervaciju za našu mrežu, sada je preostalo samo postaviti vlan i konfiguraciju možemo smatrati dovršenom.

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: — objavljujemo blok za konfiguraciju vlan.
  • vlan10: — proizvoljno ime vlan sučelja.
  • id: — oznaka našeg vlana.
  • link: — sučelje preko kojeg će vlan biti dostupan.
  • routes: — objavljujemo blok za opis ruta.
  • — to: — postavljamo adresu/podmrežu do koje je potrebna ruta.
  • via: — navodimo gateway preko kojeg će biti dostupna naša podmreža.
  • on-link: — navodimo da se rute uvijek postavljaju prilikom dizanja veze.

Obratite pažnju na to kako postavljam razmake, u jeziku YAML to je vrlo važno.

Ovdje smo opisali mrežna sučelja, stvorili bonding i čak dodali vlane. Primijenimo naš konfiguracijski fajl, naredba netplan apply provjerit će naš konfiguracijski fajl na greške i primijenit će ga u slučaju uspjeha. Nakon toga, konfiguracija će se sama podizati prilikom ponovnog pokretanja sustava.

Sastavivši sve prethodne blokove koda, evo što smo dobili:

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]
    

Naša mreža je spremna za korištenje, nije bilo tako strašno kao što je u početku izgledalo a kod je ispao vrlo lijep i čitljiv. P.S. Hvala što ste o netplan-u napisali izvrstan priručnik na linku. https://netplan.io/.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster