Sådan oprettes NIC-teaming eller bonding i CentOS 8/RHEL 8


NIC-teaming er sammenlægning eller binding af to eller flere netværkslinks til et enkelt logisk link for at give redundans og høj tilgængelighed. Den logiske grænseflade/link er kendt som en teamgrænseflade. I tilfælde af at det aktive fysiske link går ned, sparker et af backup- eller reserverede links automatisk og sikrer en uafbrudt forbindelse til serveren.

Før vi ruller ærmerne, er det afgørende at sætte dig ind i følgende terminologier:

  • Teamd - Dette er den nic teaming-dæmon, der bruger libteam-biblioteket til at kommunikere med team-enheder via Linux-kernen.
  • Teamdctl– Dette er et værktøj, der giver brugerne mulighed for at kontrollere en forekomst af teamd. Du kan kontrollere og ændre portstatus samt skifte mellem backup og aktive tilstande.
  • Runner - Disse er kodeenheder skrevet i JSON og bruges til implementering af forskellige NIC-teaming-koncepter. Eksempler på løbertilstande inkluderer Round robbin, load balancing, broadcast og aktiv backup.

I denne vejledning konfigurerer vi NIC-teaming ved hjælp af aktiv backup-tilstand. Dette er, hvor et link forbliver aktivt, mens resten er i standby og reserveret, da sikkerhedskopilinks, hvis det aktive link går ned.

På denne side

  • Installer teamdemon'en i CentOS
  • Konfigurer NIC Teaming i CentOS
  • Test af netværksteamedundans
  • Sletning af et netværksteaming-interface

Uden meget mere ado, lad os begynde.

Teamd er den dæmon, der er ansvarlig for at oprette et netværksteam, der fungerer som den logiske grænseflade under løbetiden. Som standard installeres den med CentOS/RHEL 8. Men hvis den af en eller anden grund ikke er installeret, skal du udføre følgende dnf-kommando for at installere den.

$ sudo dnf install teamd

Når det er installeret, skal du kontrollere, at teamd er installeret ved at køre kommandoen rpm:

$ rpm -qi teamd

For at konfigurere NIC-teaming bruger vi det praktiske nmcli-værktøj, der kan bruges til styring af NetworkManager-tjenesten. I mit system har jeg 2 NIC-kort, som jeg vil bond eller kombinere for at oprette en logisk teamgrænseflade: enp0s3 og enp0s8 . Dette kan være anderledes i dit tilfælde.

For at bekræfte, at de aktive netværksgrænseflader køres:

$ nmcli device status

Outputtet bekræfter eksistensen af 2 aktive netværksforbindelser. For at indsamle mere information om grænsefladerne som UUID skal du køre kommandoen:

$ nmcli connection show

For at oprette et netværk teaming link eller interface, som vil være vores logiske link, skal vi slette de eksisterende netværksgrænseflader. Derefter opretter vi slavegrænseflader ved hjælp af de slettede grænseflader og knytter dem derefter til teaming-linket.

Brug deres respektive UUID'er til at udføre kommandoerne nedenfor for at slette links:

$ nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
$ nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807

Denne gang, når du kontrollerer grænsefladerne, vil du bemærke, at de er afbrudt og ikke giver nogen forbindelse til serveren. Dybest set vil din server være isoleret fra resten af netværket.

$ nmcli device status

Dernæst skal vi oprette en teamgrænseflade kaldet team0 i aktiv backup-runner-tilstand. Som tidligere nævnt bruger den aktive backup-runner-tilstand en aktiv grænseflade og forbeholder de andre til redundans, hvis det aktive link går ned.

$ nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'

For at se de attributter, der er tildelt interface team0 , skal du køre kommandoen:

$ nmcli connection show team0

Perfekt! På dette tidspunkt har vi kun en grænseflade op, som er grænsefladen team0 som vist.

$ nmcli connection show

Konfigurer derefter IP-adressen til grænsefladen team0 som vist ved hjælp af nmcli-kommandoen. Sørg for at tildele IP'erne i henhold til dit netværks subnet- og IP-adresseskema.

$ nmcli con mod team0 ipv4.addresses 192.168.2.100/24
$ nmcli con mod team0 ipv4.gateway 192.168.2.1
$ nmcli con mod team0 ipv4.dns 8.8.8.8
$ nmcli con mod team0 ipv4.method manual
$ nmcli con mod team0 connection.autoconnect yes

Opret derefter slavelinks og knyt slaverne til teamlinket:

$ nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0
$ nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0

Kontroller status for linkene igen, og du vil bemærke, at slavelinkene nu er aktive.

$ nmcli connection show

Deaktiver derefter og aktiver teamlinket. Dette aktiverer forbindelsen mellem slavelinkene og teamlinket.

$ nmcli connection down team0 && nmcli connection up team0

Kontroller derefter tilstanden for teamlinkforbindelsen som vist.

$ ip addr show dev team0

Vi kan se, at linket er op med den korrekte IP-adresse, som vi konfigurerede tidligere.

For at hente yderligere detaljer om teamlinket skal du køre kommandoen:

$ sudo teamdctl team0 state

Fra output kan vi se, at begge links ( enp0s3 og enp0s8 ) er op, og at det aktive link er enp0s8 .

For at teste vores aktive backup-teamingstilstand afbryder vi det aktuelt aktive link - enp0s3 - og kontrollerer, om det andet link sparker ind.

$ nmcli device disconnect enp0s3
$ sudo teamdctl team0 state

Når du kontrollerer status for teaming-grænsefladen, finder du ud af, at linket enp0s8 er startet og betjener forbindelser til serveren. Dette bekræfter, at vores opsætning fungerer!

Hvis du ønsker at slette teaming-interface/link og vende tilbage til standardnetværksindstillinger, skal du først downloade teaming-linket:

$ nmcli connection down team0

Slet derefter slaverne.

$ nmcli connection delete team0-slave0 team0-slave1

Til sidst skal du slette teaming-grænsefladen.

$ nmcli connection delete team0

På dette tidspunkt er alle grænseflader nede, og din server er ikke tilgængelig. For at aktivere dine netværksgrænseflader og genoprette forbindelse skal du køre kommandoerne:

$ sudo ifconfig enp0s3 up
$ sudo ifconfig enp0s8 up
$ sudo systemctl restart NetworkManager

NIC teaming tilbyder en fremragende løsning til netværksredundans. Med 2 eller flere netværksgrænseflader kan du konfigurere en teaming-grænseflade i en hvilken som helst runner-tilstand for at sikre høj tilgængelighed, hvis et link ved et uheld går ned. Vi håber, at du fandt denne guide nyttig. Slå os op og lad os vide, hvordan din oplevelse var.