Nommer ses interfaces réseau
Bon, aujourd'hui un article qui denonce grave. Avoir un serveur avec plus d'une interface réseau et ne pas les nommer correctement c'est vilain. Ne soit pas vilain (ou vilaine) et nomme tes interfaces réseaux. Et plus d'excuse pour ne pas le faire après avoir lu cet article, parce que tu vas voir comment configurer ça en 10 minutes avec systemd-networkd.
Prérequis
L'environnement de base
Nous allons voir comment faire ce type de configuration sur un serveur de type Debian 10, 11 ou 12 sans interface graphique.
Sous Debian, le réseau est géré par défaut par le service networking, tu peux le vérifier en tappant la commande :
systemctl status networking.service
Ca doit donner un truc comme ca :
La config par defaut
Le système de nommage par défaut doit donner quelque chose comme ceci avec la commande "ip link" :
On ne va pas se mentir, ici impossible de savoir qu'est ce qui est branché à quoi sans un plan d'adressage noté quelque part.
Par défaut, le daemon systemd-networkd doit être présent mais désactivé.
Pour s'en assurer :
systemctl status systemd-networkd
Ce qui doit te donner :
Nouvelle configuration
On va procéder en deux parties, d'abord activer les daemons nécessaires puis configurer les interfaces.
Activation de systemd-networkd
On va d'abord activer systemd-neworkd.
systemctl enable systemd-networkd
Ce qui nous donne :
Le daemon se lancera au boot mais il n'est pas encore démarré. Ca tombe bien, ca va te permettre de configurer les interfaces. A ce stade tes interfaces réseaux sont probablement configurées dans /etc/network/interfaces. Pour éviter les conflits de configuration, commente tout ce qui concerne tes interfaces, loopback compris.
Une fois terminé, tu devrais avoir un fichier qui ressemble à ceci :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
#auto lo
#iface lo inet loopback
# The primary network interface
#allow-hotplug enp0s3
#iface enp0s3 inet dhcp
Activation de systemd-resolved (optionnel)
Si tu as besoin que ta machine puisse configurer automatiquement l'adresse de son DNS via DHCP (on va y revenir plus bas) il va te falloir activer le daemon systemd-resolved.
apt install systemd-resolved
Sans cela seul l'autoconfig de l'IP fonctionnera via DHCP. Il te faudra donc configurer l'adresse du DNS de la machine à la main dans /etc/resov.conf.
Configuration des interfaces
Pour chaque interface il va y avoir 2 fichiers. Un pour définir le nom de l'interface et le deuxieme pour appliquer la config réseau que tu veux. Ces fichiers doivent se placer dans /etc/systemd/network/.
Pour chaque interface, tu vas devoir créer un fichier [nombre inferieur à 99]-[nom que tu veux].link puis un fichier [nombre inferieur à 99]-[nom que tu veux].network.
Exemple avec une interface "wan"
Le fichier de nommage /etc/systemd/network/10-wan.link :
[Match]
MACAddress=08:00:27:1f:0d:02
[Link]
Description=Interface vers box internet
Name=wan
Puis un fichier portant le même nom ".network". Il n'est pas obligatoire que le nom soit le même mais c'est plus cohérent.
Le contenu de /etc/systemd/network/10-wan.network pour une config automatique via DHCP :
[Match]
Name=wan
[Network]
DHCP=yes
DHCP=yes permet de requêter ton DHCP local (en general la box internet si c'est à la maison) afin de récuperer :
- Une IP pour l'interface.
- La gateway du sous réseau.
- L'adresse du DNS associé.
Si tu veux que la partie DNS fonctionne avec ce type de config n'oublie pas d'installer le daemon systemd-resolved.
Exemple avec une interface "lan_serveurs"
Le fichier de nommage /etc/systemd/network/20-lan_serveurs.link :
[Match]
MACAddress=08:00:27:3c:d3:d9
[Link]
Description=Interface vers lan serveurs
Name=lan_serveurs
Le fichier /etc/systemd/network/20-lan_serveurs.network pour une config en IP statique:
[Match]
Name=lan_serveurs
[Network]
Address=10.8.0.15/24
Gateway=10.8.0.254/24 #optionnel
DNS=10.8.0.252 #optionnel
Chargement de la config
Pour valider tous les changements, il faut redémarrer la machine :
reboot
Résultat de la manip
Une fois toutes tes interfaces renommées et configurées, un "ip link" doit donner quelque chose comme ceci :
Et voila ! La c'est propre ! Et quand il faudra configurer le pare-feu de la machine, ça sera quand même plus simple 😎.
Aller plus loin
L'exellent article sur le wiki d'archlinux est assez complet et il y a pas mal d'exemples pour des configurations plus complexe.
Dans cet article tu peux aussi voir comment, à partir de cette configuration, il est possible de transformer une machine sous debian équipé de plusieurs interfaces réseau en switch manageable.