Netplan en hoe u het correct voorbereidt

Ubuntu is een geweldig besturingssysteem, ik heb al een hele tijd niet meer met de Ubuntu-server gewerkt en het had geen zin om mijn bureaublad te upgraden vanaf de stabiele versie. En niet zo lang geleden kreeg ik te maken met de nieuwste release van Ubuntu-server 18.04, mijn verbazing kende geen grenzen toen ik besefte dat ik oneindig achterliep en geen netwerk kon opzetten omdat het goede oude systeem voor het opzetten van netwerkinterfaces door het bewerken van het /etc/network-bestand /interfaces is verloren gegaan. En wat kwam er voor in de plaats? iets vreselijks en op het eerste gezicht volkomen onbegrijpelijk, maak kennis met “Netplan”.

Eerlijk gezegd kon ik eerst niet begrijpen wat er aan de hand was en “waarom is dit nodig, omdat alles zo handig was”, maar na een beetje oefenen besefte ik dat het zijn eigen charme heeft. En zo genoeg over de teksten, laten we doorgaan met wat Netplan is, dit is een nieuw hulpprogramma voor netwerkinstellingen in Ubuntu, tenminste “Ik heb zoiets nog nooit gezien in andere distributies.” Een belangrijk verschil tussen Netplan is dat de configuratie is geschreven in de taal Yamla, ja, je hoort het goed YAML, de ontwikkelaars hebben besloten om met de tijd mee te gaan (en hoezeer ze het ook prijzen, ik vind het nog steeds een vreselijke taal). Het grootste nadeel van deze taal is dat deze erg gevoelig is voor spaties. Laten we de configuratie bekijken aan de hand van een voorbeeld.

De configuratiebestanden bevinden zich langs het pad /etc/netplan/filename.yaml, tussen elk blok moeten er + 2 spaties zijn.

1) De standaard header ziet er als volgt uit:

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

Laten we eens kijken wat we nu hebben gedaan:

  • netwerk: - dit is het begin van het configuratieblok.
  • renderer: networkd - hier geven we de netwerkbeheerder aan die we zullen gebruiken, dit is networkd of NetworkManager
  • versie: 2 - hier is, zoals ik het begrijp, de YAML-versie.
  • ethernets: - dit blok geeft aan dat we het ethernetprotocol gaan configureren.
  • enps0f0: — geef aan welke netwerkadapter we zullen configureren.
  • dhcp4:no - schakel DHCP v4 uit, respectievelijk voor 6 v6 dhcp6

2) Laten we proberen IP-adressen toe te wijzen:

    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

Hier stellen we de poppy-, ipv4-, gateway- en dns-server in. Houd er rekening mee dat als we meer dan één IP-adres nodig hebben, we deze gescheiden door komma's schrijven met een verplichte spatie erna.

3) Wat als we het nodig hebben bonding?

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

  • obligaties: - een blok waarin wordt uitgelegd dat we bonding zullen configureren.
  • bond0: - willekeurige interfacenaam.
  • interfaces: - een reeks interfaces verzameld in een bond-ding, "zoals eerder vermeld, als er meerdere parameters zijn, beschrijven we deze tussen vierkante haken."
  • parameters: — beschrijf het parameterinstellingenblok
  • modus: — specificeer de modus waarin bonding zal werken.
  • mii-monitor-interval: — stel het monitoringinterval in op 1 seconde.

Binnen het blok met de naam bond kunt u ook parameters configureren zoals adressen, gateway4, routes, enz.

We hebben redundantie voor ons netwerk toegevoegd, nu hoeft u alleen nog maar te installeren vlan en de installatie kan als voltooid worden beschouwd.

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: — declareer het vlan-configuratieblok.
  • vlan10: — willekeurige naam van de vlan-interface.
  • id: — tag van onze vlan.
  • link: — interface waarmee de vlan toegankelijk zal zijn.
  • routes: — declareer een routebeschrijvingsblok.
  • — om: — het adres/subnet in te stellen waarnaar de route nodig is.
  • via: — geef de gateway op via welke ons subnet toegankelijk zal zijn.
  • on-link: — wij geven aan dat routes altijd geregistreerd moeten worden als de link wordt geplaatst.

Let op hoe ik spaties plaats; dit is erg belangrijk in YAML.

Dus hebben we de netwerkinterfaces beschreven, bonding gecreëerd en zelfs vlans toegevoegd. Laten we onze configuratie toepassen, de opdracht netplan apply controleert onze configuratie op fouten en past deze toe als deze succesvol is. Vervolgens wordt de configuratie automatisch gegenereerd wanneer het systeem opnieuw wordt opgestart.

Nadat we alle voorgaande codeblokken hebben verzameld, hebben we dit gekregen:

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]
    

Nu is ons netwerk klaar voor gebruik, alles bleek niet zo eng als het in eerste instantie leek en de code bleek erg mooi en leesbaar. PC bedankt voor netplan. Er staat een uitstekende handleiding op de link https://netplan.io/.

Bron: www.habr.com

Voeg een reactie