Ubuntu is een geweldige besturingssysteem, ik had al een tijd niet meer met Ubuntu server gewerkt en het had geen zin om mijn Desktop te vernieuwen met de stabiele versie. En onlangs moest ik me bezighouden met de gloednieuwe release van Ubuntu server 18.04, mijn verbazing was groot toen ik me realiseerde dat ik eindeloos achter de feiten aanliep en ik het netwerk niet kon instellen omdat het oude vertrouwde systeem voor het configureren van netwerkinterfaces door het bewerken van het bestand /etc/network/interfaces in de vergetelheid was geraakt. Wat is daar in de plaats gekomen? Iets verschrikkelijks dat op het eerste gezicht totaal onbegrijpelijk leek, maak kennis met "Netplan".
Om eerlijk te zijn, in het begin kon ik niet begrijpen wat er aan de hand was en "waarom dit nodig was, want alles was zo handig", maar na wat praktijkervaring begreep ik dat het zijn eigen charme heeft. Dus laten we de lyriek achterwege laten en doorgaan, wat is Netplan? Het is een nieuwe tool voor netwerkconfiguratie in Ubuntu, althans "in andere distributies heb ik iets dergelijks niet gezien". Het belangrijkste verschil van Netplan is dat de configuratie wordt geschreven in de taal , ja, ja, je hebt het goed gehoord YAML, de ontwikkelaars besloten om met de tijd mee te gaan (hoezeer men het ook prijst, ik vind het nog steeds een vreselijke taal). Het grootste nadeel van deze taal is dat het zeer gevoelig is voor spaties, laten we de configuratie aan de hand van een voorbeeld bekijken.
De configuratiebestanden bevinden zich op het pad /etc/netplan/naamvanhetbestand.yaml, tussen elk blok moeten + 2 spaties staan.
1) De standaard header ziet er als volgt uit:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noLaten we eens bekijken wat we nu hebben gedaan:
- network: — dit is het beginblok van de configuratie.
- renderer: networkd — hier geven we de netwerkbeheerder aan die we gaan gebruiken, dit is ofwel networkd of NetworkManager.
- version: 2 — hier begrijp ik het als de versie van YAML.
- ethernets: — dit blok geeft aan dat we het ethernetprotocol gaan configureren.
- enps0f0: — hier geven we aan welke netwerkadapter we gaan configureren.
- dhcp4:no — we schakelen DHCP v4 uit, voor v6 dhcp6 dienovereenkomstig.
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.8Hier hebben we mac, ipv4, gateway en dns-server ingesteld. Let op dat als we meer dan één ip-adres nodig hebben, we deze gescheiden door een komma met een verplicht spatie daarna schrijven.
3) En wat als we nodig hebben ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: — een blok dat uitlegt wat we gaan instellen voor bonding.
- bond0: — een willekeurige naam voor de interface.
- interfaces: — een set interfaces die worden samengevoegd in bonding, »zoals eerder vermeld, als er meerdere parameters zijn, beschrijven we deze in vierkante haken".
- parameters: — we beschrijven het blok voor het instellen van parameters.
- mode: — we geven de modus aan waarin bonding zal werken.
- mii-monitor-interval: — we stellen het monitorinterval in op 1 seconde.
Binnen het blok met de naam bond kunnen ook parameters zoals addresses, gateway4, routes enz. worden geconfigureerd.
We hebben redundantie voor ons netwerk toegevoegd, nu hoeven we alleen nog maar te bevestigen en de configuratie kan als voltooid worden beschouwd.
vlans:
vlan10:
id: 10
link: bond0
dhcp4: nee
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: waar
- vlans: — we verklaren het blok voor de vlan-configuratie.
- vlan10: — een willekeurige naam voor de vlan-interface.
- id: — de tag van onze vlan.
- link: — de interface waardoor de vlan toegankelijk zal zijn.
- routes: — we verklaren het blok voor het beschrijven van routes.
- — to: — we geven het adres/subnet op waarvoor de route vereist is.
- via: — we geven de gateway op waardoor ons subnet toegankelijk zal zijn.
- on-link: — we geven aan dat routes altijd moeten worden ingesteld bij het opstarten van de link.
Let op hoe ik de spaties plaats, in YAML is dit essentieel.
Hier hebben we de netwerkinterfaces beschreven, bonding opgezet en zelfs vlans toegevoegd. Laten we onze configuratie toepassen, het commando netplan apply controleert onze configuratie op fouten en past deze toe bij succes. De configuratie zal ook automatisch worden opgestart bij het herstarten van het systeem.
Hier is wat we hebben gekregen door alle vorige codeblokken samen te voegen:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: nee
ensp3s0f1:
dhcp4: nee
bonds:
bond0:
dhcp4: nee
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: nee
addresses: [10.10.10.2/24]
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: waar
vlan20:
id: 20
link: bond0
dhcp4: nee
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Hier is ons netwerk klaar voor gebruik, het was niet zo eng als het in eerste instantie leek en de code is erg mooi en leesbaar geworden. P.C. bedankt dat er een geweldige handleiding voor netplan is via de link. .
Bron: habr.com
