Netplan a jak jej správně připravit

Ubuntu je úžasný operační systém, dlouho jsem nepracoval s Ubuntu serverem a aktualizovat svůj Desktop ze stabilní verze nemělo smysl. A tak jsem nedávno narazil na čerstvý release Ubuntu server 18.04, moje překvapení bylo bezmezným, když jsem pochopil, že jsem nekonečně pozadu a nemohu nastavit síť, protože starý dobrý systém konfigurace síťových rozhraní prostřednictvím úpravy souboru /etc/network/interfaces už neexistuje. Co přišlo místo něj? něco strašného a na první pohled zcela nepochopitelného, vítejte v "Netplan".

Musím přiznat, že zpočátku jsem nemohl pochopit, o co jde a "proč je to potřeba, vždyť to bylo tak pohodlné", ale po získání trochu praxe jsem pochopil, že v tom je své kouzlo. A tak dost lyriky, pokračujme, co to Netplan vlastně je? Je to nová utilita pro konfiguraci sítě v Ubuntu, alespoň "v jiných distribucích jsem něco podobného nepotkal." Podstatný rozdíl Netplan je, že konfigurace se píše pomocí jazyka YAML, ano, slyšíte správně, YAML, vývojáři se rozhodli jít s dobou (a jak moc ho chválím, stejně ho považuji za strašný jazyk). Hlavní nevýhodou tohoto jazyka je, že je velmi citlivý na mezery, pojďme se podívat na konfiguraci na příkladu.

Konfigurační soubory se nacházejí v cestě /etc/netplan/nazevsouboru.yaml, mezi každým blokem by měly být + 2 mezery.

1) Standardní hlavička vypadá takto:

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

Podívejme se, co jsme udělali:

  • network: — to je blok začátku konfigurace.
  • renderer: networkd — zde uvádíme síťového správce, kterého budeme používat, a to buď networkd nebo NetworkManager.
  • version: 2 — tady, jak jsem pochopil, je verze YAML.
  • ethernets: — tento blok říká, že budeme konfigurovat ethernetový protokol.
  • enps0f0: — uvádíme, které síťové rozhraní budeme konfigurovat.
  • dhcp4:no — vypínáme DHCP v4, pro v6 dhcp6 odpovídajícím způsobem.

2) Zkusme přiřadit IP adresy:

    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

Zde jsme nastavili MAC, IPv4, bránu a DNS server. Všimněte si, že pokud potřebujeme více než jednu IP adresu, píšeme je čárkou s povinnou mezerou za každou.

3) A co když potřebujeme bonding?

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

  • bonds: — blok, který vysvětluje, co budeme nastavovat v bonding.
  • bond0: — libovolný název rozhraní.
  • interfaces: — soubor rozhraní shromážděných v bondingu, "jak bylo zmíněno dříve, pokud je více parametrů, popisujeme je v hranatých závorkách".
  • parameters: — popisujeme blok nastavení parametrů.
  • mode: — uvádíme mód, podle kterého bude bonding fungovat.
  • mii-monitor-interval: — nastavujeme interval monitorování na 1 sekundu.

V rámci bloku s názvem bond- lze také nakonfigurovat parametry jako addresses, gateway4, routes atd.

Přidali jsme zálohování pro naší síť, teď už jen zbývá zavěsit vlan a nastavení lze považovat za dokončené.

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: ne
      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: — vyhlašujeme blok nastavení vlan.
  • vlan10: — libovolný název vlan rozhraní.
  • id: — tag našeho vlan.
  • link: — rozhraní, přes které bude vlan dostupná.
  • routes: — vyhlašujeme blok popisu tras.
  • — to: — uvádíme adresu/podsíť, pro kterou je nutná trasa.
  • via: — uvádíme bránu, přes kterou bude naše podsíť dostupná.
  • on-link: — uvádíme, že se trasy mají vždy zadávat při aktivaci linku.

Všimněte si, jak rozmisťuji mezery, v jazyce YAML je to velmi důležité.

Popisali jsme síťová rozhraní, vytvořili bonding a dokonce přidali vlany. Pojďme aplikovat naši konfiguraci, příkaz netplan apply zkontroluje naši konfiguraci na chyby a v případě úspěchu ji aplikuje. Dále se konfigurace sama aktivuje při restartu systému.

Sestavili jsme všechny předchozí bloky kódu, tady je, co jsme vytvořili:

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

Naše síť je nyní připravena k použití, všechno se ukázalo být mnohem jednodušší, než se zdálo zpočátku, a kód je velmi krásný a čitelný. P.C děkuji, že na netplan je skvělý manuál na odkazu https://netplan.io/.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster