Guide de survie Netplan
Netplan est un outil de configuration réseau moderne, principalement utilisé
dans les distributions Linux basées sur Ubuntu. Son objectif est de simplifier
la gestion des interfaces réseau grâce à l’utilisation de fichiers au format
YAML. Avant son
introduction, la configuration réseau sous Linux se faisait via des fichiers
comme /etc/network/interfaces
ou d’autres méthodes spécifiques aux services
utilisés, comme NetworkManager
ou systemd-networkd
. Avec Netplan, ces
configurations sont unifiées, offrant une solution standard et accessible.
Ce guide est conçu pour vous montrer comment utiliser Netplan pour configurer efficacement vos interfaces réseau, que vous ayez besoin de gérer des connexions Ethernet, Wi-Fi, ou même des configurations avancées comme les VLAN et les routes statiques.
Historique et origine de Netplan
L’introduction de Netplan dans l’univers d’Ubuntu remonte à la version
17.10 (Artful Aardvark). Avant cette version, les administrateurs de serveurs et
de systèmes Linux utilisaient souvent le fichier traditionnel
/etc/network/interfaces
et les outils comme ifup/down pour gérer leurs
interfaces réseau. Ces méthodes, bien que largement utilisées, devenaient de
plus en plus limitées dans des environnements réseau modernes et complexes.
Avec l’émergence de nouveaux besoins, notamment autour de la gestion dynamique des réseaux, la nécessité d’un outil unifiant les différents services réseau s’est fait ressentir. Netplan a été conçu pour combler cette lacune. Il agit comme une surcouche simplifiant la gestion de systemd-networkd (le gestionnaire de réseau de systemd) et de NetworkManager. Cela permet aux administrateurs d’utiliser une syntaxe unique et simplifiée, peu importe le service sous-jacent.
Le choix de Netplan pour les distributions Ubuntu a également permis une transition plus fluide vers des infrastructures cloud et des environnements virtualisés, où des outils comme cloud-init bénéficient d’une configuration réseau automatisée et plus flexible.
C’est quoi NetworkManager et systemd-networkd ?
Comme dit ci-dessus, Netplan agit comme une interface de configuration
unifiée pour deux gestionnaires de réseaux principaux : NetworkManager
et
systemd-networkd
. Ces deux services jouent un rôle clé dans la gestion des
interfaces réseau sur les distributions Ubuntu et ses dérivées, mais ils ne
sont pas utilisés dans les mêmes contextes.
NetworkManager
NetworkManager est le gestionnaire de réseau principalement utilisé sur les systèmes de bureau comme Ubuntu Desktop ou ses dérivées graphiques telles que Kubuntu et Lubuntu. Il est conçu pour simplifier la gestion des connexions réseau, en particulier dans les environnements où les interfaces changent fréquemment, comme avec les connexions Wi-Fi, les VPN, ou les réseaux mobiles.
Sur un système utilisant NetworkManager, vous avez souvent accès à une interface graphique, comme celle intégrée dans l’environnement de bureau GNOME, pour gérer les réseaux. Cela rend NetworkManager idéal pour les postes de travail où la flexibilité et l’interaction utilisateur sont essentielles.
systemd-networkd
systemd-networkd, quant à lui, est plus souvent utilisé sur les systèmes serveurs, comme Ubuntu Server, où la gestion des interfaces réseau est plus statique et ne nécessite pas d’interactions fréquentes avec l’utilisateur. Ce service est minimaliste et parfaitement intégré au système systemd, ce qui le rend adapté aux serveurs et aux environnements sans interface graphique.
Vérifier quel gestionnaire est utilisé
Il est important de savoir quel gestionnaire de réseau est actif sur votre système, car cela détermine comment Netplan va appliquer vos configurations réseau.
Pour vérifier si NetworkManager est installé et actif, vous pouvez utiliser la commande suivante :
Si le service est actif, vous verrez un retour indiquant son statut comme “running”. Dans le cas contraire, le service sera inactif ou non installé.
Pour vérifier l’état de systemd-networkd, utilisez cette commande :
De la même manière, le statut sera “active” si systemd-networkd gère le réseau.
Pourquoi est-ce important ?
Savoir quel service est utilisé sur votre système est crucial pour bien
configurer votre réseau avec Netplan. Chaque gestionnaire de réseau a ses
particularités, et Netplan se base sur le service actif pour appliquer les
configurations. Par exemple, si vous configurez Netplan avec renderer: NetworkManager
sur un serveur qui utilise systemd-networkd, votre
configuration ne fonctionnera pas.
Structure des fichiers Netplan et permissions
Les fichiers de configuration utilisés par Netplan sont au format
YAML, un format
simple et lisible qui permet de configurer facilement les interfaces réseau. Ces
fichiers se trouvent dans le répertoire /etc/netplan/
, et c’est à partir de là
que les configurations réseau sont appliquées.
Chaque fichier Netplan suit une syntaxe YAML stricte avec des indentations bien définies. Voici un exemple simple de configuration où l’interface Ethernet utilise DHCP pour obtenir une adresse IP automatiquement :
Explication :
network
: Bloc principal qui contient toutes les configurations réseau.version
: La version du fichier de configuration Netplan (actuellement, c’est la version 2).renderer
: Définit quel service gère la configuration du réseau. Ici,networkd
signifie que systemd-networkd est utilisé. Pour un environnement de bureau, on peut utiliser NetworkManager.ethernets
: Ce bloc contient les interfaces Ethernet. Dans cet exemple,eth0
est l’interface que l’on configure.dhcp4
: Permet d’activer DHCP pour l’IPv4, ce qui attribue une adresse IP automatiquement.
Fichiers multiples et ordre d’application
Les fichiers de configuration Netplan peuvent être multiples, chacun ayant
son propre fichier dans le répertoire /etc/netplan/
. Les fichiers sont traités
dans l’ordre alphabétique, c’est pourquoi ils sont souvent nommés avec des
préfixes numériques comme 01-netcfg.yaml
, 50-cloud-init.yaml
, etc. Un
fichier commençant par 01-
sera appliqué avant un fichier commençant par
50-
, permettant de définir une priorité entre les configurations si
nécessaire.
Permissions des fichiers Netplan
Les fichiers Netplan doivent avoir des permissions appropriées pour des raisons de sécurité. Ils doivent être lisibles et modifiables uniquement par l’utilisateur root. Les permissions recommandées pour les fichiers Netplan sont 600, ce qui signifie que seul root peut les lire et les modifier, garantissant ainsi que la configuration réseau ne puisse être altérée par d’autres utilisateurs.
Vous pouvez vérifier et ajuster les permissions des fichiers Netplan avec les commandes suivantes :
Ces commandes garantissent que le fichier appartient à l’utilisateur root et que seul root a les permissions de lecture et d’écriture.
Commandes Netplan à connaître et débogage
Netplan fournit une série de commandes qui permettent de tester, appliquer et déboguer les configurations réseau. Lorsque vous travaillez avec Netplan, il est essentiel de connaître ces commandes pour gérer efficacement les changements de configuration réseau et pour éviter les erreurs. En particulier, lorsqu’on travaille à distance (par exemple via SSH), il faut être très prudent, car une mauvaise configuration réseau peut vous couper l’accès à votre serveur. Si possible, assurez-vous toujours d’avoir accès à la console de la machine en cas de problème.
netplan generate
La commande netplan generate
est utilisée pour générer les fichiers de
configuration spécifiques à systemd-networkd ou NetworkManager à partir
des fichiers YAML que vous avez définis. Elle permet de convertir les
fichiers Netplan en configurations propres aux services réseaux sous-jacents.
Cette commande est surtout utilisée en interne par Netplan, mais elle peut
être exécutée manuellement si vous voulez voir les fichiers générés dans
/run/systemd/network/
(pour systemd-networkd) ou
/etc/NetworkManager/system-connections/
(pour NetworkManager).
netplan try
La commande netplan try
est extrêmement utile pour tester une nouvelle
configuration. Après l’exécution de cette commande, Netplan applique
temporairement la configuration réseau et attend 120 secondes avant de confirmer
les modifications. Si vous ne confirmez pas les changements en appuyant sur la
touche [ENTER] Netplan reviendra automatiquement à la configuration
précédente, vous évitant ainsi de rester bloqué hors du serveur.
netplan apply
Une fois que vous êtes sûr que la configuration est correcte, vous pouvez
utiliser netplan apply
pour appliquer définitivement les modifications. Cette
commande recharge la configuration réseau en fonction du contenu des fichiers
YAML dans /etc/netplan/
et redémarre les services réseau concernés.
Contrairement à netplan try
, cette commande applique immédiatement les
modifications sans retour en arrière possible. Soyez donc certain de votre
configuration avant de l’utiliser, surtout si vous travaillez à distance.
Débogage avec Netplan
Lorsqu’une configuration réseau ne fonctionne pas comme prévu, il est essentiel de savoir comment déboguer. Netplan fournit plusieurs outils pour vérifier les erreurs et identifier les problèmes.
Si vous avez des problèmes à appliquer une configuration Netplan, vous
pouvez utiliser l’option --debug
pour obtenir des informations supplémentaires
sur ce qui se passe en arrière-plan. Cette commande affiche les étapes suivies
par Netplan pour appliquer la configuration et peut vous aider à identifier
les erreurs ou les fichiers mal configurés.
Si une configuration échoue ou si une interface réseau ne fonctionne pas comme
prévu, les journaux système peuvent fournir des informations précieuses. Vous
pouvez utiliser journalctl
pour consulter les messages d’erreurs liés aux
services systemd-networkd ou NetworkManager.
Pour consulter les journaux de systemd-networkd :
Pour consulter les journaux de NetworkManager :
Ces journaux vous donneront des détails sur les erreurs liées à la configuration réseau. Par exemple, une erreur dans le fichier YAML ou un conflit d’adresses IP peut être signalé ici.
La commande ip a
vous permet de vérifier l’état actuel des interfaces réseau
et de voir quelles adresses IP sont attribuées aux interfaces. Cela peut vous
aider à voir si la configuration Netplan a bien été appliquée ou si
l’interface réseau est en panne.
Configurations types avec Netplan
Netplan est un outil flexible qui permet de configurer différents types de réseaux : adresses IPv4 et IPv6, configurations DHCP ou statiques, ainsi que des scénarios plus complexes comme les ponts réseau (bridges), l’agrégation de liens (bonding), et les connexions Wi-Fi. Voici un ensemble de configurations types qui couvrent ces différents cas.
Configuration IPv4 avec DHCP
Pour configurer une interface réseau avec une adresse IPv4 obtenue via DHCP, voici une configuration simple. Cela est couramment utilisé pour les postes de travail ou les serveurs dans des environnements où l’adresse IP est fournie automatiquement par un serveur DHCP :
Dans cet exemple, l’interface eth0 obtient automatiquement une adresse IPv4 via DHCP.
Configuration d’une adresse IPv4 fixe
Si vous avez besoin d’une adresse IPv4 statique pour votre interface, par exemple pour un serveur, voici comment configurer cela :
addresses
: définit l’adresse IP statique avec le masque de sous-réseau (/24
).gateway4
: spécifie la passerelle par défaut.nameservers
: définit les serveurs DNS (ici, ceux de Google).
Configuration IPv6 avec DHCP
Pour configurer une interface afin qu’elle obtienne une adresse IPv6 via DHCP, la syntaxe est similaire à celle de l’IPv4. Voici comment configurer DHCP pour IPv6 sur Netplan :
Cette configuration permet à l’interface eth0 d’obtenir une adresse IPv6 dynamique via DHCPv6.
Configuration d’une adresse IPv6 statique
Pour définir une adresse IPv6 statique, voici un exemple de configuration :
addresses
: spécifie l’adresse IPv6 statique et son préfixe (/64
).gateway6
: définit la passerelle par défaut pour IPv6.nameservers
: définit les serveurs DNS pour IPv6.
Configuration d’un bridge réseau
Un bridge (pont réseau) est souvent utilisé dans des environnements de virtualisation pour connecter plusieurs interfaces ensemble, comme dans les machines virtuelles. Voici comment configurer un bridge avec Netplan :
Dans cet exemple :
- Le bridge nommé
br0
est configuré pour utiliser DHCP pour obtenir une adresse IPv4. - L’interface
eth0
est ajoutée au bridge.
Configuration d’un bonding
Le bonding permet d’agréger plusieurs interfaces réseau pour améliorer la tolérance aux pannes ou augmenter la bande passante. Voici comment configurer un bonding avec Netplan :
Dans cet exemple :
- Le bonding nommé
bond0
regroupe les interfaceseth0
eteth1
. - Le mode
active-backup
signifie que l’interfaceeth0
est l’interface principale, eteth1
prendra le relais sieth0
échoue.
Configuration Wi-Fi
La configuration d’un réseau Wi-Fi avec Netplan nécessite de spécifier le SSID et la clé de sécurité. Voici un exemple pour configurer une interface Wi-Fi :
Dans cet exemple :
wlan0
est l’interface Wi-Fi.access-points
spécifie le nom du réseau Wi-Fi (MonSSID
) et son mot de passe.dhcp4: true
indique que l’interface Wi-Fi utilise DHCP pour obtenir une adresse IPv4.
Conclusion
En espérant vous avoir aidé à mieux appréhender Netplan, ce guide a couvert les points essentiels pour configurer efficacement le réseau sous Ubuntu et ses dérivées.