I denne vejledning vil vi diskutere to vigtige netværkskoncepter, der er bro og binding. Vi vil se, hvordan vi konfigurerer, ændrer og sletter broer og obligationer i Linux-systemet. Vi vil demonstrere proceduren den Linux Mint 20 Ulyana-system. Du kan dog også implementere den samme procedure på Ubuntu eller Debian.
Forudsætninger:
- Linux-system med mindst to netværksgrænseflader
- Sudo-bruger
Broer
Bridging er at skabe en bro mellem to eller flere netværksgrænseflader for at passere trafik mellem dem. Det giver dig mulighed for at dele dit systems internetforbindelse med andre systemer. Overvej et scenario, hvor system A (uden internetforbindelse) ønsker at oprette forbindelse til et andet systems B-internetforbindelse. Alt hvad du behøver er at tilslutte begge systemer med et Ethernet-kabel og oprette en bro mellem dem. For at gøre det skal du dog bruge to grænseflader på dit system B. Den ene grænseflade vil være forbundet til internettet, og den anden vil være forbundet til system A.
Opsæt Bridge
I vores eksempel opretter vi en bro br0 mellem to grænseflader, ens33 og ens39. Det enss33 interface opretter forbindelse til internettet, mens ens39 opretter forbindelse til det andet system (der har brug for en internetforbindelse). Vi opretter broen via DHCP.
Først skal du installere de krævede programbro-værktøjer for at oprette en bro. Udsted nedenstående kommando i Terminal for at installere bridge-utils:
$ sudo apt installere broværktøjerOpret en bronetværksgrænseflade ved hjælp af kommandoen nedenfor i Terminal:
$ brctl addbr br0Denne kommando opretter en bro med navnet br0. Du kan navngive det, hvad du vil.
Tilføj nu begge grænseflader, du vil bygge bro (den ene, der opretter forbindelse til internettet, og den anden, der opretter forbindelse til det andet system) ved hjælp af nedenstående syntaks:
$ sudo brctl addifFor eksempel ville det i vores tilfælde være:
$ sudo brctl addif br0 ens33 ens39Ovenstående kommando tilføjes enss33 og ens39 til broen br0.
Nu bringer brogrænsefladen op:
$ ip link sæt devI vores tilfælde ville det være:
$ ip link sæt dev br0 opDu kan også køre kommandoen nedenfor for at få grænsefladen til at køre (I tilfælde af DHCP).
$ sudo dhclient br0Rediger nu / etc / network / interfaces-fil og tilføj følgende linjer:
auto br0iface br0 inet dhcp
bridge_ports ens33 ens39
Genstart nu netværkstjenesterne ved hjælp af nedenstående kommando:
$ sudo systemctl genstart netværk. serviceNu er broen oprettet, og forhåbentlig vil du være i stand til at få adgang til internettet fra dit andet system.
Se broen
Du kan bruge nedenstående kommando til at se alle de konfigurerede broer på dit system og de grænseflader, der er knyttet til dem.
$ Brctl-show
Rediger broen
Tilføj en grænseflade for at bygge bro
Du kan tilføje en grænseflade til en allerede eksisterende bro som følger:
$ sudo brctl addif bridge_name interface_nameFor eksempel at tilføje en grænseflade med navnet ens38 til den allerede eksisterende bro navngivet br0, kommandoen ville være:
$ sudo brctl addif br0 ens38Slet interface fra broen
Du kan også slette en grænseflade fra en bro som følger:
$ sudo brctl delif bridge_name interface_nameFor eksempel at slette en navngivet grænseflade ens38 fra den navngivne bro br0, kommandoen ville være:
$ sudo brctl delif br0 ens38Slet en bro
For at slette en bro fra dit system skal du først bringe den ned. Brug følgende kommando til at gøre det:
$ sudo ip link sæt dev bridge_name nedFor eksempel at slette en bro med navnet br0, Før det først ned:
$ sudo ip link sæt dev br0 nedBrug derefter følgende kommando for at slette broen:
$ sudo brctl delbr bronavnI vores eksempel ville kommandoen være:
$ sudo brctl delbr br0Netværksbinding
Netværksbinding kombinerer flere netværksgrænseflader for at præsentere dem som en enkelt grænseflade, hvilket i virkeligheden kombinerer deres båndbredde i en enkelt forbindelse. Forbindelsesnetværksgrænseflader øger kapaciteten, giver høj tilgængelighed og failover i situationer, hvor en af grænsefladerne fejler.
Der er forskellige former for netværksbinding, som er som følger:
- mode = 0 (Balance Round Robin)
- mode = 1 (Aktiv backup)
- mode = 2 (Balance XOR)
- mode = 3 (Broadcast)
- tilstand = 4 (802.3ad)
- mode = 5 (Balance TLB)
- mode = 6 (Balance ALB)
Opsæt netværksbinding
I denne vejledning vil vi opsætte tilstand 1 (Aktiv backup-tilstand). Vi binder to grænseflader, ens33 og ens38. Det ens33 vil være vores aktive interface, mens ens38 vil være backupgrænsefladen.
Først skal du installere ifenslave værktøj på dit system. For at gøre det skal du udstede kommandoen nedenfor i Terminal:
$ apt install ifenslave
Indlæs derefter kernemodulet ved hjælp af nedenstående kommando:
$ sudo modprobe-bindingOvenstående kommando tilføjer yderligere funktioner til Linux-kernen.
Find nu ud af dine netværksgrænseflader. Du kan bruge nedenstående kommando til at gøre det:
$ ip-linkFølgende output viser, at der er to netværksgrænseflader ens33 og ens38 andet end loopback-grænsefladen. Vi binder de to grænseflader, ens33 og ens38, i en obligation navngivet obligation 0.
Rediger nu netværksgrænsefladesfilerne ved hjælp af nedenstående kommando i Terminal:
$ sudo nano / etc / netværk / grænsefladerRediger filen som følger:
Sørg for at udskifte interfacets navn med dit.
auto ens33iface ens33 inet manual
obligation-master obligation0
obligations-primær ens33 ens38
auto ens38
iface ens38 inet manual
bond-master obligation0
obligations-primær ens33 ens38
automatisk obligation 0
iface bond0 inet dhcp
bond-slaver ingen
bond-mode 1
bond-miimon 100
Gem nu og luk interfacekonfigurationsfilen.
Genstart nu netværkstjeneste ved hjælp af nedenstående kommando:
$ sudo systemctl genstart netværk.serviceKør kommandoen “ifconfig” eller “ip a”, og denne gang vil du se obligation 0 som en separat grænseflade med en IP-adresse tildelt. Du kan også se, at der ikke er tildelt nogen IP-adresse til ens33 og ens38 grænseflader.
Test limning
For at kontrollere, om binding fungerer, skal du udstede nedenstående kommando:
$ cat / proc / net / bonding / bond0Følgende output viser, at bindingstilstanden er aktiv backup, og både den primære og aktuelt aktive slave er ens33.
Nu for at teste aktiv backup-tilstand, køre en kontinuerlig ping fra et andet system på netværket til bindingsserverens IP-adresse (som i vores tilfælde er 192.168.72.179). Din ping skal fungere med succes. Prøv derefter at lukke den aktive grænseflade, og se om pingen fortsætter eller stopper. Hvis ping fortsætter, betyder det, at binding er konfigureret med succes.
Hvis du kører nedenstående kommando, kan du også se, at den primære slave ens33 er nede, mens den aktuelt aktive slave nu er ens38.
Ændre binding
Skift Active Slave Interface
Du kan også ændre den aktive slavegrænseflade i binding ved hjælp af -c mulighed som følger:
$ sudo ifenslave -c obligation aktiv_interfaceFor eksempel har vi i vores scenario det ens33 som en aktiv grænseflade, mens ens38 som en backup-grænseflade. At sætte ens38 som en aktiv slave-interface ville kommandoen være:
$ sudo ifenslave -c bond0 ens38Nu for at bekræfte, om den aktive grænseflade har ændret sig, skal du udstede nedenstående kommando i Terminal:
$ cat / proc / net / bonding / bond0I nedenstående output kan du se, at den aktive slave-grænseflade er ændret til ens38.
Skift bindingstilstand
For at ændre bindingstilstand skal du redigere / etc / network / interfaces-fil og ændre obligationstilstandsværdien. For eksempel at ændre obligationstilstand at round-robin, ændre værdien af bond-mode til 0.
bond-mode 0Nu for at bekræfte, om bindingstilstanden er ændret med succes, skal du udstede nedenstående kommando i Terminal:
$ cat / proc / net / bonding / bond0I nedenstående output er det klart, at obligationstilstanden er ændret til runde Robin.
Vedhæfter slave
For at vedhæfte en ny slavegrænseflade til en allerede eksisterende obligation skal du bruge følgende syntaks:
$ sudo ifenslave -v obligation interface_nameDet -v bruges her til detaljeret output.
For eksempel at tilføje en ny slavegrænseflade ens33 til en allerede eksisterende obligation0, ville kommandoen være:
$ sudo ifenslave -v bond0 ens33
Frigør slave
For at løsrive en slavegrænseflade fra en obligation skal du bruge -d mulighed som følger:
$ sudo ifenslave -v obligation interface_name-V bruges her til detaljeret output.
For eksempel at fjerne en slave-grænseflade ens33 fra obligation 0, kommandoen ville være:
$ sudo ifenslave -d -v bond0 ens33
Slet binding
For at slette binding skal du redigere / etc / netværk.grænsefladesfil, og fjern konfigurationerne relateret til limning. Efterlad kun konfigurationen af grænseflader som denne:
auto ens33iface ens33 inet dhcp
auto ens38
iface ens38 inet dhcp
Gem og luk derefter konfigurationsfilen til grænseflader.
Fjern nu binding med nedenstående kommando:
$ sudo rmmod-bindingGenstart derefter netværkstjenesten:
$ sudo systemctl genstart netværk.serviceDet er alt der er ved det! I denne artikel har vi først vist, hvordan man opretter en netværksbro til at dele internetforbindelsen med andre systemer. Derefter har vi vist, hvordan man ændrer broerne ved at tilføje eller fjerne en grænseflade fra broen. Dernæst har vi vist, hvordan man opsætter netværksobligationer, så de har øget kapacitet, høj tilgængelighed og failover. Så har vi vist, hvordan man ændrer en binding ved at ændre dens aktive slaver, fastgøre / løsne slaver og skifte bindingstilstande. Vi har også vist, hvordan du sletter broer og obligationer, hvis du ikke længere har brug for dem.