Bonder des NIC sur linux

Bonder des NIC sur linux

NicolasSchmid Lv2

Introduction

Dans ma bonne vieille cave, j’ai un serveur Linux me permettant d’héberger des serveurs de jeu comme Minecraft, des applications web comme JellyFin et bien d’autres utilités. Ce serveur dispose actuellement de 2 interfaces réseau RJ45 1Gb/s et jusqu’à maintenant, qu’une d’entre elles n’était utilisées.

Ce petit tuto démontrera comment configurer une agrégation de liens (NIC Bonding) sur Linux, plus précisément Ubuntu Server 22.04 LTS.

Conception

Je dispose donc de ces 2 interfaces:

Interfaces Réseau existantes

Le plan est de les rassembler en une seule interface logique redondante et doublant la bande passante possible.

Configuration

Maintenant le projet conçu, je peux commencer la configuration.

Installation des packages

Je commence par installer ce packet APT:

1
2
sudo apt update
sudo apt install ifenslave

Configurer le support du Kernel

Le module Kernel bonding doit être activé lors du démarrage de l’OS pour permettre d’agréger des interfaces, cela se fait en modifiant le fichier:

1
sudo nano /etc/modules

La configuration est la suivante:

1
2
3
4
5
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
bonding

Configuration du bond

Cette configuration vous déconnectera de votre serveur, ne la faite pas en SSH ! (mis à part si vous être vraiment sûr de ce que vous faites). Il est mieux de le faire en console ou sur l’affichage du serveur !

Premièrement, je m’assure que le réseau est désactivé:

1
sudo stop networking

Ensuite, je charge le module Kernel:

1
sudo modprobe bonding

Maintenant, je modifie le fichier de configurations des NIC pour créer le bond:

1
sudo nano /etc/network/interfaces

Ceci est un exemple de ma configuration pour agréger l’interface enp7s0 et enp8s0 en bond0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
# source /etc/network/interfaces.d/*
auto enp7s0
iface enp7s0 inet manual
bond-master bond0

auto enp8s0
iface enp8s0 inet manual
bond-master bond0

auto bond0
iface bond0 inet static
address 192.168.1.216
netmask 255.255.255.0
gateway 192.168.1.1
bond-slaves enp7s0 enp8s0
# Le mode dépend de votre choix d'agrégation
bond-mode balance-rr
bond-miion 100
dns-nameservers 192.168.1.1
```

Une fois cela fait, je redémarre le service réseau:

``` bash
sudo start networking

Pour monter/descendre l’interface bond0, voici la commande:

1
2
sudo ifup bond0
sudo ifdown bond0

Vérifier le fonctionnement du bond

Cette commande affichera l’état de votre bond, voici le résultat obtenu sur le miens:

Status du bond et de ses interfaces

Conclusion

Voilà ! Maintenant, je peux perdre l’un des 2 liens physiques sans pour autant que mes joueurs Minecraft ou que mes sites webs ne soient plus accessibles !

  • Title: Bonder des NIC sur linux
  • Author: NicolasSchmid
  • Created at : 07.05.2024 11:35:44
  • Updated at : 07.05.2024 12:01:16
  • Link: https://doc.spacesdata.net/2024/05/07/Bonder-des-NIC-sur-linux/
  • License: This work is licensed under CC BY-NC-SA 4.0.