Netplan en hoe u het correct voorbereidt

Ubuntu Geweldig besturingssysteem, ik heb er al heel lang niet meer mee gewerkt. Ubuntu server, en het had geen zin om mijn desktop te updaten vanuit een stabiele versie. En dus moest ik onlangs een gloednieuwe release installeren. Ubuntu Op server 18.04 was ik stomverbaasd toen ik me realiseerde dat ik hopeloos achterliep op de tijd en mijn netwerk niet meer kon configureren, omdat het vertrouwde systeem om netwerkinterfaces te configureren door het bestand /etc/network/interfaces te bewerken, verdwenen was. En wat was ervoor in de plaats gekomen? Iets angstaanjagends en op het eerste gezicht volkomen onbegrijpelijks: "Netplan".

Eerlijk gezegd begreep ik in eerste instantie niet wat het precies inhield en "waarom het nodig was, alles was toch al zo makkelijk", maar na een tijdje oefenen realiseerde ik me dat het wel degelijk zijn charme had. Genoeg gepraat, laten we het nu hebben over wat Netplan is. Het is een nieuw hulpprogramma voor het configureren van een netwerk in Ubuntu"Ik ben in ieder geval nog nooit zoiets tegengekomen in andere distributies." Een belangrijk verschil met Netplan is dat de configuratie in de taal is geschreven. 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

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster