Netplan і як яго правільна прыгатаваць

Ubuntu узрушаючая аперацыйная сістэма, даўно не працаваў з Ubuntu server а абнаўляць свой Desktop са стабільнай версіі не было сэнсу. І вось нядаўна прыйшлося сутыкнуцца са свежанькім рэлізам Ubuntu server 18.04, майму здзіўленню не было мяжы, калі я зразумеў што я бясконца адстаў ад жыцця і не магу наладзіць сетку т.к старая добрая сістэма налады сеткавых інтэрфейсаў па сродках рэдагавання файла /etc/net /interfaces адышла ў лепту. А што ж прыйшло ёй на змену? што тое жудаснае і на першы погляд зусім не зразумелае, сустракайце "Netplan".

Прызнацца сапраўды, спачатку я не мог зразумець у чым справа і "навошта гэта трэба, бо ўсё было так зручна", але атрымаўшы трохі практыкі зразумеў што ў ім ёсць свой шарм. І так хопіць лірыкі працягнем, што ж такое Netplan гэта новая ўтыліта для налады сеткі ў Ubuntu, прынамсі "ў іншых дыстрыбутывах я не сустракаў падобнага". Істотнай адрозненне Netplan з'яўляецца тое што канфігурацыя пішацца на мове YAML, Ды ды вы не недачулі YAML, распрацоўшчыкі вырашылі ісці ў нагу з часам (і як бы шмат не расхвальвалі яго я ўсё-такі лічу яго жахлівым мовай). Асноўны мінус гэтай мовы ў тым што ён вельмі адчувальны да прабелаў, давайце ж разгледзім канфіг на прыкладзе.

Файлы канфігурацыі знаходзяцца па шляху /etc/netplan/імяфайла.yaml, паміж кожным блокам калі павінна быць + 2 прабелы.

1) Стандартная шапка выглядае так:

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

Давайце разгледзім што мы зараз зрабілі:

  • network: - гэта блок пачатак канфігурацыі.
  • renderer: networkd - тут мы паказваем сеткавы менеджэр які будзем выкарыстоўваць, гэта альбо networkd альбо NetworkManager
  • version: 2 - тут як я зразумеў версія YAML.
  • ethernets: - гэты блок кажа аб тым што будзем канфігураваць ethernet пратакол.
  • enps0f0: - паказваем які сеткавы адаптар будзем канфігураваць.
  • dhcp4:no - адключаем DHCP v4, для 6 v6 dhcp6 адпаведна

2) Паспрабуем прызначыць 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

Тут мы задалі мак, ipv4, шлюз і сервер DNS. Заўваж тыя што калі нам трэба больш аднаго ip адрасу то мы пішам іх праз коску з абавязковым прабелам пасля.

3) А што калі нам патрэбен склейванне?

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

  • bonds: - блок які тлумачыць што мы будзем наладжваць bonding.
  • bond0: - адвольнае імя інтэрфейсу.
  • interfaces: - набор інтэрфейсаў якія збіраюцца ў bond-дынг, »як агаворвалася раней калі параметраў некалькі апісваем іх у квадратных дужках».
  • parameters: - апісваем блок налады параметраў
  • mode: - паказваем мод па якім будзе працаваць bonding.
  • mii-monitor-interval: - задаем інтэрвал маніторынгу 1 сек.

Усярэдзіне блока з імем bond-а таксама можна канфігураваць такія параметры як addresses,gateway4,routes і т.д.

Мы дадалі рэзерваванне для нашай сеткі, зараз засталося толькі павесіць бяда і настройку можна лічыць скончанай.

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]
    

Вось наша сетка і гатова да эксплуатацыі, усё аказалася не так страшна як здалося спачатку і код атрымаўся вельмі прыгожы і чытэльны. PC дзякуй што па netplan ёсць выдатны мануал па спасылцы https://netplan.io/.

Крыніца: habr.com

Дадаць каментар