In deze gids bespreken we twee essentiële netwerkconcepten die bridging en bonding zijn. We zullen zien hoe we de bruggen en bindingen in het Linux-systeem kunnen instellen, wijzigen en verwijderen. We zullen de procedure demonstreren op: Linux Mint 20 Ulyana-systeem. U kunt dezelfde procedure echter ook implementeren op Ubuntu of Debian.
Vereisten:
- Linux-systeem met minimaal twee netwerkinterfaces
- Sudo-gebruiker
Bruggen
Bridging is het creëren van een brug tussen twee of meer netwerkinterfaces om verkeer tussen hen door te geven. Hiermee kunt u de internetverbinding van uw systeem delen met andere systemen. Overweeg een scenario waarin systeem A (zonder internetverbinding) verbinding wil maken met de internetverbinding van een ander systeem B. Het enige dat u nodig hebt, is om beide systemen met een Ethernet-kabel aan te sluiten en een brug ertussen te maken. Hiervoor heeft u echter twee interfaces nodig op uw systeem B. Eén interface wordt verbonden met internet en de andere wordt verbonden met systeem A.
Bridge instellen
In ons voorbeeld zullen we een brug opzetten br0 tussen twee interfaces, ens33 en ens39. De enss33 interface maakt verbinding met internet terwijl de ens39 verbinding maakt met het tweede systeem (dat een internetverbinding nodig heeft). We zetten de brug op via DHCP.
Eerst moet je het vereiste programma bridge-utils installeren om een bridge te maken. Geef de onderstaande opdracht in Terminal om bridge-utils te installeren:
$ sudo apt install bridge-utilsMaak een bridge-netwerkinterface met behulp van de onderstaande opdracht in Terminal:
$ brctl addbr br0Met deze opdracht wordt een brug gemaakt met de naam br0. Je kunt het noemen wat je wilt.
Voeg nu beide interfaces toe die u wilt overbruggen (een die verbinding maakt met internet en de andere die verbinding maakt met het tweede systeem) met behulp van de onderstaande syntaxis:
$ sudo brctl addifIn ons geval zou dat bijvoorbeeld zijn:
$ sudo brctl addif br0 ens33 ens39Het bovenstaande commando zal toevoegen enss33 en ens39 naar de brug br0.
Breng nu de bridge-interface naar voren:
$ ip-linkset ontwikkelaarIn ons geval zou dat zijn:
$ ip link set dev br0 upU kunt ook de onderstaande opdracht uitvoeren om de interface in gebruik te nemen (in het geval van DHCP).
$ sudo dhclient br0Bewerk nu de /etc/network/interfaces-bestand en voeg de volgende regels toe:
auto br0iface br0 inet dhcp
bridge_ports ens33 ens39
Start nu de netwerkservices opnieuw met de onderstaande opdracht:
$ sudo systemctl herstart netwerken. onderhoudNu is de bridge ingesteld en hopelijk heb je vanaf je tweede systeem toegang tot internet.
Bekijk brug
U kunt de onderstaande opdracht gebruiken om alle geconfigureerde bruggen op uw systeem en de daaraan gekoppelde interfaces te bekijken.
$ brctl-show
Brug wijzigen
Voeg een interface toe om te overbruggen
U kunt als volgt een interface toevoegen aan een reeds bestaande bridge:
$ sudo brctl addif bridge_name interface_nameOm bijvoorbeeld een interface met de naam toe te voegen ens38 naar de reeds bestaande brug genaamd br0, het commando zou zijn:
$ sudo brctl addif br0 ens38Interface van bridge verwijderen
U kunt een interface ook als volgt van een bridge verwijderen:
$ sudo brctl delif bridge_name interface_nameOm bijvoorbeeld een interface met de naam . te verwijderen ens38 vanaf de brug genaamd br0, het commando zou zijn:
$ sudo brctl delif br0 ens38Een brug verwijderen
Om een bridge van je systeem te verwijderen, moet je hem eerst neerhalen. Gebruik hiervoor de volgende opdracht:
$ sudo ip link set dev bridge_name downOm bijvoorbeeld een brug met de naam . te verwijderen br0, eerst naar beneden halen:
$ sudo ip link set dev br0 downGebruik vervolgens de volgende opdracht om de bridge te verwijderen:
$ sudo brctl delbr bridge_nameIn ons voorbeeld zou de opdracht zijn:
$ sudo brctl delbr br0Netwerkverbinding
Network bonding combineert verschillende netwerkinterfaces om ze als een enkele interface te presenteren, waardoor in feite hun bandbreedte wordt gecombineerd tot een enkele verbinding. Verbindende netwerkinterfaces verhogen de doorvoer, bieden hoge beschikbaarheid en failover in situaties waarin een van de interfaces uitvalt.
Er zijn verschillende manieren van netwerkbinding die als volgt zijn:
- modus=0 (Saldo Round Robin)
- modus=1 (Actieve back-up)
- modus=2 (Saldo XOR)
- modus=3 (uitzending)
- modus=4 (802.3ad)
- modus = 5 (saldo TLB)
- modus=6 (saldo ALB)
Netwerkverbinding instellen
In deze handleiding zullen we modus 1 instellen (Actieve back-upmodus). We zullen twee interfaces verbinden, ens33 en ens38. De ens33 zal onze actieve interface zijn, terwijl ens38 zal de back-upinterface zijn.
Eerst moet u de installeren als slaaf tool op uw systeem. Voer hiervoor de onderstaande opdracht uit in Terminal:
$ apt install ifenslave
Laad vervolgens de kernelmodule met behulp van de onderstaande opdracht:
$ sudo modprobe bondingDe bovenstaande opdracht voegt extra mogelijkheden toe aan de Linux-kernel.
Ontdek nu uw netwerkinterfaces. U kunt hiervoor de onderstaande opdracht gebruiken:
$ ip-linkDe volgende uitvoer laat zien dat er twee netwerkinterfaces zijn: ens33 en ens38 anders dan de loopback-interface. We zullen de twee interfaces verbinden, ens33 en ens38, in een band genaamd bond0.
Bewerk nu de netwerkinterfacebestanden met behulp van de onderstaande opdracht in Terminal:
$ sudo nano /etc/network/interfacesPas het bestand als volgt aan:
Zorg ervoor dat u de naam van de interface vervangt door de uwe.
auto ens33iface ens33 inet handleiding
bond-master bond0
binding-primair ens33 ens38
auto ens38
iface ens38 inet handleiding
bond-master bond0
binding-primair ens33 ens38
automatische obligatie0
iface bond0 inet dhcp
bond-slaven geen
bond-mode 1
bond-miimon 100
Sla nu het interfaceconfiguratiebestand op en sluit het close.
Start nu de netwerkservice opnieuw met de onderstaande opdracht:
$ sudo systemctl herstart netwerken.onderhoudVoer de opdracht "ifconfig" of "ip a" uit en deze keer ziet u de bond0 als een aparte interface waaraan een IP-adres is toegewezen. U kunt ook zien dat er geen IP-adres is toegewezen aan de ens33 en ens38 interfaces.
Test hechting
Voer de onderstaande opdracht uit om te controleren of bonding werkt:
$ cat /proc/net/bonding/bond0De volgende uitvoer laat zien dat de inbindmodus is: actieve back-up, en zowel de primaire als de momenteel actieve slave is ens33.
Nu om de test te testen actieve back-upmodus, voer een continue ping uit van een ander systeem op het netwerk naar het IP-adres van de bonding-server (in ons geval 192.168.72.179). Je ping zou succesvol moeten werken. Probeer vervolgens de actieve interface af te sluiten en kijk of de ping doorgaat of stopt. Als de ping doorgaat, betekent dit dat de verbinding met succes is geconfigureerd.
Als u de onderstaande opdracht uitvoert, kunt u ook zien dat de primaire slave ens33 is uitgeschakeld terwijl de momenteel actieve slave nu is ens38.
Bonding wijzigen
Actieve slave-interface wijzigen
U kunt de actieve slave-interface in bonding ook wijzigen met behulp van de -c optie als volgt:
$ sudo ifenslave -c bond active_interfaceIn ons scenario hebben we bijvoorbeeld: ens33 als een actieve interface terwijl ens38 als back-upinterface. In te stellen ens38 als een actieve slave-interface zou het commando zijn:
$ sudo ifenslave -c bond0 ens38Om nu te bevestigen of de actieve interface met succes is gewijzigd, geeft u de onderstaande opdracht in Terminal:
$ cat /proc/net/bonding/bond0In de onderstaande uitvoer kunt u zien dat de actieve slave-interface is gewijzigd in: ens38.
Bonding-modus wijzigen
Om de bonding-modus te wijzigen, bewerkt u de /etc/network/interfaces-bestand en verander de waarde van de bindingsmodus. Om bijvoorbeeld de bindingsmodus: om af te ronden, wijzig de waarde van de bond-modus naar 0.
bond-mode 0Om nu te bevestigen of de bonding-modus met succes is gewijzigd, geeft u de onderstaande opdracht in Terminal uit:
$ cat /proc/net/bonding/bond0In de onderstaande uitvoer is het duidelijk dat de bindingsmodus is gewijzigd in: ronde robin.
Slaaf bevestigen
Gebruik de volgende syntaxis om een nieuwe slave-interface aan een reeds bestaande binding te koppelen:
$ sudo ifenslave -v bond interfacenaamDe -v wordt hier gebruikt voor uitgebreide uitvoer.
Om bijvoorbeeld een nieuwe slave-interface toe te voegen ens33 naar een reeds bestaande bond0, zou het commando zijn:
$ sudo ifenslave -v bond0 ens33
Slaaf losmaken
Om een slave-interface los te koppelen van een verbinding, gebruik de -d optie als volgt:
$ sudo ifenslave -v bond interfacenaamDe -v wordt hier gebruikt voor uitgebreide uitvoer.
Om bijvoorbeeld een slave-interface los te koppelen ens33 van bond0, het commando zou zijn:
$ sudo ifenslave -d -v bond0 ens33
Bonding verwijderen
Om binding te verwijderen, bewerk de /etc/netwerk.interfaces-bestand, en verwijder de configuraties met betrekking tot bonding. Laat alleen de configuratie van de interface als volgt over:
auto ens33iface ens33 inet dhcp
auto ens38
iface ens38 inet dhcp
Sla vervolgens het interfaceconfiguratiebestand op en sluit het close.
Verwijder nu de hechting met het onderstaande commando:
$ sudo rmmod bondingStart vervolgens de netwerkservice opnieuw:
$ sudo systemctl herstart netwerken.onderhoudDat is alles wat er is! In dit artikel hebben we eerst laten zien hoe je een netwerkbrug instelt om de internetverbinding met andere systemen te delen. Vervolgens hebben we laten zien hoe u de bruggen kunt wijzigen door een interface aan de brug toe te voegen of te verwijderen. Vervolgens hebben we laten zien hoe u netwerkverbindingen kunt instellen voor een hogere doorvoer, hoge beschikbaarheid en failover. Vervolgens hebben we laten zien hoe u een binding kunt wijzigen door de actieve slaves te wijzigen, slaves te bevestigen/los te koppelen en de bindingsmodi te wijzigen. We hebben ook laten zien hoe u de bruggen en obligaties kunt verwijderen voor het geval u ze niet langer nodig hebt.