Ubuntu er et fantastisk operativsystem, jeg har ikke arbejdet med Ubuntu-server i lang tid, og det gav ikke mening at opdatere min desktop fra en stabil version. For nylig stødte jeg på den nyeste udgave af Ubuntu-server 18.04, og jeg var meget overrasket, da jeg indså, at jeg var uendeligt bagefter og ikke kunne konfigurere netværket, da det gamle gode system til konfiguration af netværksgrænseflader via redigering af filen /etc/network/interfaces var forsvundet. Hvad er det så, der har taget dens plads? Noget forfærdeligt og ved første øjekast helt uforståeligt, mød Netplan.
For at være ærlig, i starten kunne jeg ikke forstå, hvad sagen var, og 'hvorfor det var nødvendigt, for alt var så praktisk', men efter at have fået lidt praksis indså jeg, at der er sin egen charme ved det. Så nok med lyrikken, hvad er Netplan? Det er et nyt værktøj til netværkskonfiguration i Ubuntu, i det mindste 'jeg har ikke set noget lignende i andre distributioner'. Den væsentlige forskel ved Netplan er, at konfigurationen skrives i et sprog , ja, ja, du hørte ikke forkert, YAML, udviklerne besluttede at følge med tiden (og selvom mange roser det, anser jeg stadig det for et forfærdeligt sprog). Den store ulempe ved dette sprog er, at det er meget følsomt over for mellemrum, lad os se på konfigurationen som eksempel.
Konfigurationsfilerne findes på stien /etc/netplan/filnavn.yaml, mellem hver blok skal der være + 2 mellemrum.
1) Standardoverskriften ser sådan ud:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noLad os se på, hvad vi lige har gjort:
- network: — det er begyndelsen på konfigurationsblokken.
- renderer: networkd — her angiver vi, hvilken netværksadministrator vi vil bruge, det er enten networkd eller NetworkManager.
- version: 2 — her, som jeg forstår det, er versionen af YAML.
- ethernets: — denne blok angiver, at vi skal konfigurere ethernet-protokollen.
- enps0f0: — vi angiver, hvilken netværksadapter vi skal konfigurere.
- dhcp4:no — vi deaktiverer DHCP v4, for 6 v6 dhcp6 tilsvarende.
2) Lad os prøve at tildele IP-adresser:
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.8Her har vi indstillet MAC, IPv4, gateway og DNS-server. Bemærk, at hvis vi har brug for mere end én IP-adresse, skriver vi dem adskilt af komma med et nødvendigt mellemrum efter.
3) Hvad hvis vi har brug for ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonding: — en blok, der forklarer, hvad vi vil konfigurere bonding.
- bond0: — et vilkårligt navn til grænsefladen.
- interfaces: — et sæt grænseflader, der samles i bond-ning, »som nævnt tidligere, hvis der er flere parametre, beskriver vi dem i firkantede parenteser«.
- parameters: — beskriver konfigurationsblokken for indstillinger.
- mode: — angiver den mode, bonding vil fungere i.
- mii-monitor-interval: — sætter overvågningsintervallet til 1 sekund.
Inden for blokken med navnet bond kan sådanne parametre som addresses, gateway4, routes osv. også konfigureres.
Vi har tilføjet redundans til vores netværk, nu mangler vi kun at hænge og konfigurationen kan betragtes som færdig.
vlans:
vlan10:
id: 10
link: bond0
dhcp4: nej
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: sandt
- vlans: — erklærer en blok til vlan-konfiguration.
- vlan10: — et vilkårligt navn til vlan-grænsefladen.
- id: — mærket for vores vlan.
- link: — den grænseflade, hvortil vlan vil være tilgængelig.
- routes: — erklærer en blok, der beskriver ruter.
- — to: — angiver adressen/netværket, hvor ruten er nødvendig.
- via: — angiver gatewayen, gennem hvilken vores netværk vil være tilgængeligt.
- on-link: — angiver, at ruter altid skal skrives ved opstart af linket.
Bemærk, hvordan jeg placerer mellemrum; i YAML-sproget er det meget vigtigt.
Her har vi beskrevet netværksgrænseflader, oprettet bonding, og endda tilføjet vlans. Lad os anvende vores konfiguration; kommandoen netplan apply vil kontrollere vores konfiguration for fejl og anvende den i tilfælde af succes. Derefter vil konfigurationen automatisk blive aktiveret ved system genstart.
Sammensat alle de forrige kodeblokke, her er hvad vi har opnået:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: nej
ensp3s0f1:
dhcp4: nej
bonds:
bond0:
dhcp4: nej
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: nej
addresses: [10.10.10.2/24]
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: sandt
vlan20:
id: 20
link: bond0
dhcp4: nej
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Her er vores netværk klar til brug; det er ikke så skræmmende, som det virkede i starten, og koden er blevet meget smuk og læsbar. P.S. Tak for at der findes en fremragende manual til netplan via dette link. .
Kilde: habr.com
