Netplan og hvordan man forbereder det korrekt

Ubuntu er et fantastisk operativsystem, jeg har ikke arbejdet med Ubuntu server i lang tid, og det var ingen mening i at opgradere mit skrivebord fra den stabile version. Og for ikke længe siden skulle jeg forholde mig til den seneste udgivelse af Ubuntu server 18.04, min overraskelse kendte ingen grænser, da jeg indså, at jeg var uendeligt bagud og ikke kunne sætte et netværk op, fordi det gode gamle system til opsætning af netværksgrænseflader af redigering af /etc/network-filen /interfaces er gået i vasken. Og hvad kom til at erstatte det? noget frygteligt og ved første øjekast helt uforståeligt, mød “Netplan”.

For at være ærlig kunne jeg først ikke forstå, hvad der var i vejen, og "hvorfor er det nødvendigt, fordi alt var så praktisk," men efter lidt øvelse indså jeg, at det har sin egen charme. Og så nok af teksterne, lad os fortsætte med, hvad Netplan er, dette er et nyt værktøj til netværksindstillinger i Ubuntu, i hvert fald "Jeg har ikke set noget lignende i andre distributioner." En væsentlig forskel mellem Netplan er, at konfigurationen er skrevet på sproget YAML, ja, du hørte rigtigt YAML, udviklerne besluttede at følge med tiden (og uanset hvor meget de roser det, synes jeg stadig, det er et frygteligt sprog). Den største ulempe ved dette sprog er, at det er meget følsomt over for mellemrum, lad os se på konfigurationen ved hjælp af et eksempel.

Konfigurationsfilerne er placeret langs stien /etc/netplan/filename.yaml, mellem hver blok skal der være +2 mellemrum.

1) Standardoverskriften ser sådan ud:

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

Lad os se på, hvad vi har gjort nu:

  • netværk: - dette er starten på konfigurationsblokken.
  • renderer: networkd - her angiver vi den netværksadministrator vi vil bruge, dette er enten networkd eller NetworkManager
  • version: 2 - her er, som jeg forstår det, YAML-versionen.
  • ethernets: - denne blok angiver, at vi vil konfigurere ethernet-protokollen.
  • enps0f0: — angiv hvilken netværksadapter vi vil konfigurere.
  • dhcp4:nej - deaktiver DHCP v4, for henholdsvis 6 v6 dhcp6

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.8

Her indstiller vi poppy, ipv4, gateway og dns server. Bemærk, at hvis vi har brug for mere end én IP-adresse, så skriver vi dem adskilt af kommaer med et obligatorisk mellemrum efter.

3) Hvad hvis vi har brug for limning?

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

  • bindinger: - en blok, der forklarer, at vi vil konfigurere binding.
  • bond0: - vilkårligt grænsefladenavn.
  • grænseflader: - et sæt grænseflader samlet i en binding, "som tidligere nævnt, hvis der er flere parametre, beskriver vi dem i firkantede parenteser."
  • parametre: — beskriv parameterindstillingsblokken
  • tilstand: — angiv den tilstand, som bonding vil fungere med.
  • mii-monitor-interval: — Indstil overvågningsintervallet til 1 sekund.

Inde i blokken med navnet bond kan du også konfigurere parametre som adresser, gateway4, ruter osv.

Vi har tilføjet redundans til vores netværk, nu er der kun tilbage at installere VLAN og opsætningen kan betragtes som komplet.

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: — erklær vlan-konfigurationsblokken.
  • vlan10: — vilkårligt navn på vlan-grænsefladen.
  • id: — tag på vores vlan.
  • link: — grænseflade, hvorigennem vlan'et vil være tilgængeligt.
  • ruter: — angiv en rutebeskrivelsesblok.
  • — for at: — indstille den adresse/undernet, som ruten skal bruges til.
  • via: — angiv den gateway, hvorigennem vores subnet vil være tilgængeligt.
  • on-link: — vi angiver, at ruter altid skal registreres, når linket er hævet.

Vær opmærksom på, hvordan jeg placerer rum; dette er meget vigtigt i YAML.

Så vi beskrev netværksgrænsefladerne, skabte binding og tilføjede endda vlans. Lad os anvende vores config, kommandoen netplan application vil tjekke vores config for fejl og anvende den, hvis den lykkes. Dernæst vil config'en blive rejst af sig selv, når systemet genstartes.

Efter at have samlet alle de tidligere kodeblokke, er dette, hvad vi fik:

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 er vores netværk klar til drift, alt viste sig ikke at være så skræmmende, som det så ud til i første omgang, og koden viste sig at være meget smuk og læsbar. PC tak for netplan der er en udmærket manual på linket https://netplan.io/.

Kilde: www.habr.com

Tilføj en kommentar