Netplan est un utilitaire développé par Canonical, la société derrière Ubuntu. Il fournit une abstraction de la configuration réseau sur les deux systèmes "backend" actuellement pris en charge (ou "renderer" dans la terminologie Netplan) :networkd et NetworkManager . À l'aide de Netplan, les interfaces réseau physiques et virtuelles sont configurées via yaml fichiers qui sont traduits en configurations compatibles avec le backend sélectionné.
Sur Ubuntu 20.04, Netplan remplace la méthode traditionnelle de configuration des interfaces réseau à l'aide de /etc/network/interfaces
dossier; il vise à rendre les choses plus faciles et plus centralisées (l'ancienne méthode de configuration des interfaces peut toujours être utilisée :consultez notre article sur Comment revenir à la mise en réseau vers /etc/network/interfaces sur Ubuntu 20.04 Focal Fossa Linux). Dans cet article, nous apprendrons les principes de base de l'utilitaire et, à titre d'exemple, comment nous pouvons l'utiliser pour configurer une adresse IPv4 statique pour une interface réseau.
Dans ce didacticiel, vous apprendrez :
- La structure de base des fichiers de configuration yaml utilisés par Netplan
- Comment créer une règle simple pour attribuer une adresse IP statique à une interface réseau
- Comment appliquer des configurations à l'aide de generate , essayez et appliquer sous-commandes
Tutoriel de configuration du réseau Netplan pour les débutants
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Ubuntu 20.04 (Fosse focale) |
Logiciel | Netplan (installé par défaut) |
Autre | Autorisations root pour modifier les fichiers de configuration |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo command$ - nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Fichiers de configuration Netplan
Il existe trois emplacements dans lesquels les fichiers de configuration Netplan peuvent être placés ; par ordre de priorité, ce sont :
/run/netplan
/etc/netplan
/lib/netplan
À l'intérieur de chacun de ces répertoires, des configurations sont créées à l'aide de fichiers avec le .yaml extension qui sont traitées en lexicographique ordre, quel que soit le répertoire dans lequel ils se trouvent.
La priorité du répertoire n'a un rôle que lorsque des fichiers portant le même nom existent :dans ces cas, seul le fichier contenu dans le répertoire avec la priorité la plus élevée est analysé.
Si un booléen ou scalaire paramètre est défini dans plus d'un fichier de configuration, il prendra la valeur définie dans le dernier fichier analysé ; si les valeurs sont des séquences , à la place, ils sont concaténés.
Les utilisateurs sont censés placer leurs configurations dans le /etc/netplan
annuaire; par défaut, le seul fichier présent sur un système Ubuntu 20.04 fraîchement installé est /etc/netplan/01-network-manager-all.yaml
. Dans la section suivante, nous verrons les instructions qu'il contient et quelle est leur signification.
Le fichier /etc/netplan/01-network-manage-all.yaml
Le seul fichier de configuration existant /etc/netplan/
Le répertoire sur un système Ubuntu 20.04 fraîchement installé est 01-network-manage-all.yaml
. Voyons son contenu :
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Comme suggéré par le commentaire dans le fichier, la configuration est destinée à définir toutes les interfaces réseau du système pour qu'elles soient gérées par le NetworkManager
moteur de rendu. Nous pouvons observer que les directives sont indentées à l'intérieur du nœud principal, network
. Puisque nous avons affaire à des fichiers yaml, l'indentation est cruciale.
Deux autres mots-clés que nous pouvons trouver dans le fichier sont version
et renderer
:le premier spécifie la version de syntaxe utilisée, le second le système backend (réseau vs NetworkManager ).
Dans la section suivante de ce didacticiel, nous créerons un exemple de configuration légèrement plus complexe et nous l'utiliserons pour attribuer une adresse IPv4 statique à une interface réseau.
Un exemple de configuration :définir une adresse IPv4 statique
Le fichier de configuration que nous avons vu ci-dessus est assez basique; essayons quelque chose d'un peu plus complexe et voyons comment configurer une adresse IPv4 statique à l'aide de Netplan.
La première chose que nous devons faire est de créer un nouveau fichier de configuration, à analyser après celui par défaut :appelons-le /etc/netplan/02-static-ip.yaml
. Dans le fichier, nous créons une règle correspondant à la ou aux interfaces réseau que nous voulons configurer :nous pouvons accomplir la tâche en utilisant le match
strophe.
À l'intérieur de la match
section, nous pouvons sélectionner une série d'interfaces physiques sur la base de la valeur des propriétés spécifiées. Pour que les paramètres soient appliqués, toutes les propriétés doivent correspondre à la règle.
Dans le fichier de configuration nous écrivons :
# Set static ip address for enp1s0 interface network: version: 2 renderer: NetworkManager ethernets: id0: match: name: enp1s0 dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
Examinons de plus près les nouvelles instructions que nous avons utilisées dans la configuration. À l'intérieur du network
principal nœud, les appareils peuvent être regroupés par leur type :
ethernets
wifis
bridges
Étant donné que dans notre exemple, nous avons affaire à un périphérique Ethernet, nous avons utilisé ethernets
strophe. À l'intérieur de la match
strophe, nous avons référencé l'interface par son name
:enp1s0
. Les règles de correspondance peuvent également être basées sur macaddress
et, uniquement lors de l'utilisation de networkd
en tant que moteur de rendu, sur driver
qui est le nom du pilote du noyau Linux utilisé pour le(s) périphérique(s).
Pour atteindre notre configuration souhaitée, nous avons utilisé une série de directives. Puisque nous voulons attribuer une adresse statique, nous avons désactivé dhcp4
et utilisé les addresses
mot clé pour associer une adresse IPv4 à l'interface. Plusieurs adresses peuvent être spécifiées :elles doivent être fournies avec le masque de sous-réseau.
Nous définissons également les adresses des nameservers
dans la strophe du même nom. Enfin, nous définissons l'adresse IPv4 de la passerelle que l'interface doit utiliser avec le gateway4
mot-clé.
Simplifier la configuration
La configuration que nous avons utilisée dans l'exemple ci-dessus peut être légèrement simplifiée. Pour référencer l'interface à laquelle nous voulons attribuer l'adresse statique, nous avons utilisé le match
strophe, cependant, nous aurions pu l'omettre. Puisque nous voulons que nos paramètres soient appliqués à un seul appareil spécifique, nous pouvons le référencer directement en utilisant son nom prévisible (enp1s0
) comme identifiant :
network: version: 2 renderer: NetworkManager ethernets: enp1s0: dhcp4: false addresses: - 192.168.122.250/24 nameservers: addresses: - 192.168.122.1 gateway4: 192.168.122.1
Lorsque le match
strophe est utilisée, l'id (id0
dans l'exemple précédent) est arbitraire et utilisé pour référencer le(s) périphérique(s) configuré(s) à partir d'autres sections du fichier de configuration. Lorsque le match
strophe est omise, à la place, l'id doit correspondre au nom prévisible de l'appareil. Lorsque vous travaillez avec des périphériques virtuels tels que des ponts ou des liaisons, l'id n'est pas utilisé pour référencer une interface existante, mais représente le nom qui doit être utilisé lors de la création de l'interface.
À ce stade, notre configuration est prête ; tout ce que nous devons faire est de le sauvegarder et de le tester.
Tester et appliquer une configuration Netplan
Dans la section précédente, nous avons vu comment créer une configuration Netplan simple pour fournir une adresse IPv4 statique pour une interface réseau. Il est maintenant temps de tester la configuration, pour voir si elle fonctionne correctement. Pour atteindre notre objectif, nous pouvons utiliser le netplan
utilitaire et try
sous-commande.
Le try
sous-commande de netplan
L'utilitaire, comme son nom l'indique, est utilisé pour essayer une configuration et éventuellement la restaurer si l'utilisateur ne la confirme pas après un certain temps. Le délai d'attente par défaut est de 120
secondes mais il peut être changé en utilisant le --timeout
option.
Comme vous pouvez le voir sur la sortie de l'ip address
commande, l'adresse IPv4 actuelle pour enp1s0
l'interface est 192.168.122.200
:
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.200/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
Appliquons la configuration :
$ sudo netplan try
Une fois la commande exécutée, l'invite suivante apparaît à l'écran :
Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration Changes will revert in 120 seconds
Nous avons suffisamment de temps pour vérifier si l'adresse IP de l'interface a changé :
$ ip address|grep enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.250/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
Comme nous pouvons le voir, l'adresse IPv4 a changé comme prévu. Dans ce cas, cependant, après l'expiration du délai d'attente, la commande n'a pas réussi à rétablir la configuration. Il s'agit d'un problème connu, signalé également dans la page de manuel de l'utilitaire. Dans de tels cas, pour revenir complètement à l'état initial, un redémarrage devrait suffire.
Deux autres commandes peuvent être utilisées :
netplan generate
netplan apply
Le netplan generate
La commande convertit les paramètres des fichiers yaml en configurations appropriées au moteur de rendu utilisé, mais ne les applique pas. Dans la grande majorité des cas, il n'est pas destiné à être appelé directement :il est invoqué, par exemple, par netplan apply
qui applique en outre les modifications sans délai de "retour".
Conclusion
Dans ce tutoriel nous avons abordé Netplan, un utilitaire développé par Canonical, qui est actif par défaut sur Ubuntu 20.04 Focal Fossa. Le but de cet utilitaire est d'abstraire les configurations des interfaces réseau à l'aide de fichiers de configuration yaml.
Ces configurations sont ensuite traduites en configurations pour le moteur de rendu spécifié, telles que NetworkManager ou networkd. Dans ce didacticiel, nous avons vu comment écrire une règle simple pour définir une adresse IP statique pour une interface réseau, nous avons appris certains des nœuds pouvant être utilisés dans les fichiers de configuration et nous avons vu comment appliquer les modifications via le netplan try
et netplan apply
commandes. Ici, nous avons à peine effleuré la surface de ce qui peut être accompli avec Netplan. Si vous souhaitez en savoir plus, veuillez consulter le site Web de Netplan et la page de manuel de l'utilitaire.