3 måder at oprette en netværksbro i RHEL/CentOS 8


En netværksbro er en datalinklagsenhed, der forbinder to eller flere netværkssegmenter og tilbyder kommunikation mellem dem. Det opretter en enkelt netværksgrænseflade til at oprette et enkelt samlet netværk fra flere netværk eller netværkssegmenter. Den videresender trafik baseret på MAC-adresserne på værter (gemt i en MAC-adressetabel).

Linux-operativsystemer som RHEL (Red Hat Enterprise Linux) og CentOS 8 understøtter implementeringen af en softwarebaseret netværksbro for at efterligne en hardwarebro. Broen tjener en lignende funktion som en netværksafbryder; det fungerer mere eller mindre som en switch til et virtuelt netværk.

Der er flere brugstilfælde af netværksbro, en praktisk anvendelse er i et virtualiseringsmiljø til at oprette en virtuel netværksswitch, der bruges til at forbinde virtuelle maskiner (VM'er) til det samme netværk som værten.

Denne vejledning viser flere måder at oprette en netværksbro i RHEL/CentOS 8 og bruge den til at oprette virtuelt netværk i en brobygget tilstand under Oracle VirtualBox og KVM for at forbinde virtuelle maskiner til det samme netværk som værten.

  1. Oprettelse af en netværksbro ved hjælp af nmcli-værktøjet
  2. Oprettelse af en netværksbro via Cockpit Web Console
  3. Oprettelse af en netværksbro ved hjælp af nm-forbindelses-editor
  4. Sådan bruges netværksbroen i en virtualiseringssoftware

nmcli er et meget anvendt, scriptbart og kraftfuldt kommandolinjeværktøj til at kontrollere NetworkManager og rapportere netværksstatus. Den kommunikerer direkte til NetworkManager og styrer kun systemdækkende forbindelser. Det er vigtigt, at det giver brugerne mulighed for at bruge forkortelser, så længe de er et unikt præfiks i sættet med mulige muligheder.

Brug først IP-kommandoen til at identificere de netværksgrænseflader (både fysiske og virtuelle), der aktuelt er knyttet til din maskine, og de netværk, de er tilsluttet.

# ip add

Fra output fra ovenstående kommando kaldes Ethernet-grænsefladen enp2s0, vi tilføjer denne grænseflade til broen som en slave.

Brug derefter følgende nmcli-kommando til at liste de aktive netværksforbindelser på testsystemet.

# nmcli conn show --active

Vigtigt: Hvis libvirtd-dæmonen (libvirtd) er installeret og startet, er standardnetværksgrænsefladen, der repræsenterer netværksbroen (virtuel netværksswitch) virbr0 som det ses i ovenstående skærmbilleder. Den er konfigureret til at køre i NAT-tilstand.

Opret derefter en netværksbrogrænseflade ved hjælp af følgende nmcli-kommando, hvor conn eller con står for forbindelse, og forbindelsesnavnet er br0 og interface-navnet også er br0.

# nmcli conn add type bridge con-name br0 ifname br0

Bemærk: I en broforbundet tilstand er de virtuelle maskiner let tilgængelige for det fysiske netværk, de vises inden for det samme undernet som værtsmaskinen, og de kan få adgang til tjenester såsom DHCP.

For at indstille en statisk IP-adresse skal du køre følgende kommandoer for at indstille IPv4-adresse, netværksmaske, standard gateway og DNS-server for br0-forbindelsen (indstil værdierne i henhold til dit miljø).

# nmcli conn modify br0 ipv4.addresses '192.168.1.1/24'
# nmcli conn modify br0 ipv4.gateway '192.168.1.1'
# nmcli conn modify br0 ipv4.dns '192.168.1.1'
# nmcli conn modify br0 ipv4.method manual

Tilføj nu Ethernet-grænsefladen (enp2s0) som en bærbar enhed til broforbindelsen (br0) som vist.

# nmcli conn add type ethernet slave-type bridge con-name bridge-br0 ifname enp2s0 master br0

Dernæst skal du åbne eller aktivere broforbindelsen, du kan bruge forbindelsesnavnet eller UUID som vist.

# nmcli conn up br0
OR
# nmcli conn up 2f03943b-6fb5-44b1-b714-a755660bf6eb

Deaktiver eller nedbrud derefter Ethernet- eller kabelforbindelsen.

# nmcli conn down Wired\ connection\ 1
OR
# nmcli conn down e1ffb0e0-8ebc-49d0-a690-2117ca5e2f42

Når du nu prøver at liste de aktive netværksforbindelser på systemet, skal broforbindelsen vises på listen.

# nmcli conn show  --active

Brug derefter følgende brokommando til at vise den aktuelle broportkonfiguration og flag.

# bridge link show

For at deaktivere broforbindelsen og slette den skal du køre følgende kommandoer. Bemærk, at du først og fremmest skal aktivere den kabelforbundne forbindelse.

# nmcli conn up Wired\ connection\ 1
# nmcli conn down br0
# nmcli conn del br0
# nmcli conn del bridge-br0

For mere information, se nmcli manual side.

# man nmcli

Cockpiten er en let, interaktiv og brugervenlig webbaseret serveradministrationsgrænseflade. For at interagere med systemets netværkskonfiguration bruger cockpittet NetworkManager og de DBus API'er, det leverer.

For at tilføje en bro skal du gå til Netværk og derefter klikke på Tilføj bro som markeret i det følgende billede.

Et pop-vindue med muligheder for at tilføje en ny bro vises. Indstil bronavnet, og vælg portene som vist i følgende skærmbillede. Du kan eventuelt aktivere STP (Spanning Tree Protocol) og derefter klikke på Anvend.

Under listen over grænseflader skal den nye bro nu vises, og Ethernet-grænsefladen skal deaktiveres.

Dobbeltklik på den for at se broen i detaljer. Der er muligheder for at tage det ned eller slette, tilføje en ny portenhed til det og mere.

nm-connection-editor er en grafisk netværksforbindelseseditor til NetworkManager, der bruges til at tilføje, fjerne og ændre netværksforbindelser gemt af NetworkManager. Eventuelle ændringer kan kun fungere, hvis NetworkManager kører.

For at starte det skal du køre kommandoen nm-connection-editor som rod i kommandolinjen eller åbne den fra systemmenuen.

# nm-connection-editor

Når det åbnes, skal du klikke på plustegnet for at tilføje en ny forbindelse som fremhævet i følgende skærmbillede.

I forbindelsesvinduet skal du vælge forbindelsestype i rullemenuen, Bridge i dette tilfælde og klikke på Opret.

Indstil derefter en broforbindelse og interface-navn, og klik derefter på Tilføj for at tilføje en broport. Vælg Ethernet som forbindelsestype. Klik derefter på Opret.

Rediger derefter portenhedens forbindelsesoplysninger og klik på Gem.

Nu skal den broede port føjes til listen over broforbindelser. Klik derefter på Gem.

Fra forbindelseseditorens hovedgrænseflade skal du kunne se den nye broforbindelse og brogrænsefladen som vist i det følgende skærmbillede.

Gå nu videre for at aktivere broforbindelsen og deaktivere den kablede forbindelse fra kommandolinjen ved hjælp af nmcli-værktøjet som vist før.

# nmcli conn up br0
# nmcli conn down Wired\ connection\ 1

I dette afsnit viser vi, hvordan man bruger en bro til at forbinde virtuelle maskiner til værtsnetværket under Oracle VirtualBox og KVM som forklaret nedenfor.

Hvis du vil konfigurere en virtuel maskine til at bruge en broadapter, skal du vælge den på listen over virtuelle computere, derefter gå til dens indstillinger, klikke på Netværksindstilling og vælge adapteren (f.eks. Adapter 1) og derefter sikre dig, at indstillingen Aktiver netværksadapter er markeret, indstillet den vedhæftede som Bridged Adapter, vælg derefter navnet på den bridged interface (br0), og klik på Ok.

For at bruge netværksbroen, der er oprettet ovenfor under KVM, skal du bruge indstillingen --network = bridge = br0 , mens virtuelle maskiner bruger kommandolinjegrænsefladen ved hjælp af kommandoen virt-install.

# virt-install --virt-type=kvm --name Ubuntu18.04 --ram 1536 --vcpus=4 --os-variant=ubuntu18.04 --cdrom=/path/to/install.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/var/lib/libvirt/images/ubuntu18.04.qcow2,size=20,bus=virtio,format=qcow2

Du kan også oprette yderligere netværk og konfigurere dem ved hjælp af virsh kommandolinjeværktøjet, og en VMs XML-konfigurationsfil kan redigeres til at bruge et af disse nye broede netværk.

I denne vejledning har vi vist, hvordan man opretter en netværksbro i RHEL/CentOS 8 og bruger den indenfor til at forbinde virtuelle computere til det samme netværk af værten under Oracle VirtualBox og KVM.

Som sædvanligt kan du kontakte os via feedbackformularen nedenfor for eventuelle spørgsmål eller kommentarer. Du kan finde flere detaljer i forståelse af virtuelt netværk og konfiguration af en netværksbro i RHEL 8-dokumentation.