Netplan i kako ga ispravno pripremiti

Ubuntu je izvanredan operativni sistem. Dugo nisam radio sa Ubuntu serverom i nije bilo smisla ažurirati svoj Desktop sa stabilne verzije. I nedavno sam se susreo s novim izdanjem Ubuntu servera 18.04, bilo mi je neverovatno kada sam shvatio koliko sam zaostao i da ne mogu postaviti mrežu jer je stari način podešavanja mrežnih interfejsa putem uređivanja datoteke /etc/network/interfaces nestao. A šta je to što je došlo umesto njega? Nešto strašno i na prvi pogled potpuno nerazumljivo, upoznajte «Netplan».

Da budem iskren, isprva nisam mogao da razumem o čemu se radi i »zašto je to potrebno, jer je sve bilo toliko zgodno«, ali nakon što sam stekao malo prakse, shvatio sam da ima svoj šarm. I tako, dosta lirskih opisa, šta je Netplan? To je nova alatka za podešavanje mreže u Ubuntu, barem «u drugim distribucijama nisam viđao nešto slično». Suštinska prednost Netplana je da se konfiguracija piše u jeziku YAML, da da, niste se zabrekli, YAML, programeri su odlučili da idu u korak s vremenom (i koliko god ga hvalili, ja i dalje smatram da je to strašan jezik). Glavni nedostatak ovog jezika je što je vrlo osetljiv na razmake, hajde da razmotrimo konfiguraciju na primeru.

Konfiguracione datoteke se nalaze na putu /etc/netplan/nazivdatoteke.yaml, između svake sekcije treba imati + 2 razmaka.

1) Standardna zaglavlja izgledaju ovako:

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

Hajde da razmotrimo šta smo sada uradili:

  • network: — to je sekcija koja označava početak konfiguracije.
  • renderer: networkd — ovde navodimo mrežnog menadžera koji ćemo koristiti, to je ili networkd ili NetworkManager.
  • version: 2 — ovde, koliko sam shvatio, verzija YAML-a.
  • ethernets: — ova sekcija označava da ćemo konfigurirati ethernet protokol.
  • enps0f0: — ovde navodimo koji mrežni adapter ćemo konfigurirati.
  • dhcp4:no — onemogućavamo DHCP v4, a za v6 DHCP6 odgovarajuće.

2) Pokušajmo da dodelimo 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

Ovde smo definisali MAC, IPv4, gateway i DNS server. Uočite da, ako nam je potrebno više od jedne IP adrese, treba da ih navodimo zarezom sa obaveznim razmakom nakon svakog.

3) A šta ako nam je potrebna bonding?

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

  • bonds: — блок, поясняющий наладку bonding-a.
  • bond0: — произвольное имя интерфейса.
  • interfaces: — набор интерфейсов, объединяемых в bonding, »как было указано ранее, если параметров несколько, описываем их в квадратных скобках".
  • parameters: — описываем блок настройки параметров.
  • mode: — указываем режим, по которому будет работать bonding.
  • mii-monitor-interval: — задаем интервал мониторинга в 1 секунду.

Внутри блока с именем bonding-а также можно настроить такие параметры, как addresses, gateway4, routes и т.д.

Мы добавили резервирование для нашей сети, теперь осталось только добавить vlan и настройка будет завершена.

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: — объявляем блок настройки vlan.
  • vlan10: — произвольное имя vlan-интерфейса.
  • id: — идентификатор нашего vlan.
  • link: — интерфейс, через который vlan будет доступен.
  • routes: — объявляем блок описания маршрутов.
  • — to: — задаем адрес/подсеть, для которой необходим маршрут.
  • via: — указываем шлюз, через который будет доступна наша подсеть.
  • on-link: — указываем, что прописывать маршруты всегда при поднятии линка.

Обратите внимание на то, как я расставляю пробелы; в языке YAML это очень важно.

Вот мы описали сетевые интерфейсы, создали bonding и добавили vlan-ы. Давайте применим наш конфиг: команда netplan apply проверит его на наличие ошибок и применит его в случае успеха. Далее конфиг будет автоматически активироваться при перезагрузке системы.

Собрав все предыдущие блоки кода, вот что у нас получилось:

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]
    

Вот наша сеть готова к эксплуатации; все оказалось не так страшно, как казалось вначале, а код вышел очень красивым и читабельным. P.S. спасибо, что по netplan есть великолепный мануал по ссылке. https://netplan.io/.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster