GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Tutoriel de configuration du réseau Netplan pour les débutants

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

Configuration logicielle requise et conventions de ligne de commande Linux
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 :

  1. /run/netplan
  2. /etc/netplan
  3. /lib/netplan

Aperçu de la conception de 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.


Ubuntu
  1. Tutoriel Python SciPy - Un guide pour les débutants

  2. Tutoriel Jenkins :les bases pour les débutants

  3. Tutoriel Podman - Les bases pour les débutants

  4. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  5. Tutoriel de commande de date Linux pour les débutants (8 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)

Tutoriel de script Bash pour les débutants

Tutoriel Bash Heredoc pour les débutants

Comment installer Google Chrome sur Ubuntu 20.04 :Tutoriel pour les débutants