L’écosystème Linux offre de nombreuses façons de configurer la mise en réseau, notamment le démon Network Manager et les outils de ligne de commande populaires tels que nmcli et l’utilitaire d’interface graphique nmtui. Ce guide présente encore un autre outil de configuration réseau appelé ÉtatNM
ÉtatNM est un gestionnaire de réseau déclaratif pour la configuration de la mise en réseau sur les hôtes Linux. C’est une bibliothèque qui fournit un outil de ligne de commande qui gère les paramètres du réseau hôte. Il gère la mise en réseau des hôtes via une API déclarative vers le nord. Au moment de la rédaction de ce guide, le Gestionnaire de réseau démon est le seul fournisseur pris en charge par ÉtatNM.
Dans ce guide, nous examinons quelques-uns des exemples d’utilisation du ÉtatNM outil. Pour ce guide, nous allons le démontrer en utilisant Fedora Linux.
Approches impératives vs déclaratives
La gestion du réseau peut adopter deux approches – Impératif et déclaratif. Dans le impératif approche, vous définissez explicitement l’état de mise en réseau d’une interface en exécutant des commandes sur le terminal. L’accent est mis sur le ‘comment‘.
Par exemple, pour arrêter un réseau à l’aide de l’approche impérative, exécutez la commande :
$ sudo ifconfig enp0s3 down
D’autre part, le déclaratif approche utilise une YAML fichier pour appliquer les modifications à une configuration. La plupart des outils d’orchestration DevOps tels que Kubernetes utiliser cette approche pour déployer des applications de pods à l’aide d’un YAML déposer.
Cette approche fournit ce que l’on appelle communément l’infrastructure en tant que code (IaC) dans les cercles DevOps. Cela améliore l’automatisation de la configuration du réseau sur l’hôte et fournit un moyen rapide et plus fiable d’apporter plusieurs modifications à une interface réseau avec un minimum d’erreurs.
Maintenant, changeons de vitesse et voyons comment vous pouvez utiliser le ÉtatNM outil de configuration pour configurer vos interfaces réseau sous Linux.
Étape 1 : Installer l’outil de configuration de réseau NMState
Nous lancerons le bal en installant le Nmstate. Tout d’abord, vérifiez la disponibilité du forfait à partir de Feutre référentiels comme suit :
$ sudo dnf search nmstate
À partir de la sortie, nous pouvons voir que le gestionnaire de réseau est disponible sur les dépôts officiels.
Ensuite, installez NMstate comme suit. Cela fonctionne sur Fedora 31 et versions ultérieures.
$ sudo dnf install nmstate
La commande installe le ÉtatNM API du gestionnaire de réseau aux côtés d’autres dépendances Python.
Une fois l’installation terminée, vérifiez le nmstate package est installé comme suit.
$ rpm -qi nmstate
Pour Linux basé sur RHEL, activez d’abord le référentiel copr.
$ sudo dnf copr enable nmstate/nmstate-stable
Installez ensuite NMstate comme suit.
$ sudo dnf install nmstate
Consultez des instructions supplémentaires sur la façon de installer NMState à partir de la source.
Une fois installé, vous pouvez vérifier la version de NMstate installé comme suit.
$ nmstatectl version 1.0.2
Utilisation de l’outil de configuration NMState sous Linux
Avec NMstate installé, laissez-nous passer aux Knitty-gritties de la façon dont vous pouvez tirer le meilleur parti de l’API du gestionnaire de réseau.
Pour afficher la configuration réseau actuelle de votre interface réseau, exécutez la commande suivante. Voici la configuration de votre enp0s3 interface.
$ nmstatectl show enp0s3
La sortie est divisée en 4 sections distinctes :
- résolveur DNS: Cette section contient la configuration du serveur de noms pour l’interface particulière.
- règles de routage: Ceci stipule les règles de routage.
- itinéraires: Cela inclut les routes dynamiques et statiques.
- Interfaces: Cette section spécifie à la fois les paramètres ipv4 et ipv6.
Modification de la configuration réseau sous Linux
Vous pouvez utiliser le ÉtatNM outil de configuration pour configurer vos hôtes à l’état souhaité en utilisant des modes interactifs ou basés sur des fichiers.
- Interactif: Ceci édite une interface réseau en utilisant le nmstatectl modifier commander. Cette commande ouvre un éditeur de texte défini par la variable d’environnement EDITOR. Une fois les modifications enregistrées, NMState applique la nouvelle configuration immédiatement, sauf si des erreurs de syntaxe ont été détectées.
- Basé sur des fichiers: En mode fichier, la configuration de l’interface est appliquée à l’aide d’un fichier YAML ou JSON à l’aide de la nmstatectl appliquer commander.
Mettons-nous maintenant la main à la pâte et voyons comment vous pouvez modifier la configuration du réseau à l’aide de ÉtatNM.
Notre Feutre système dispose de deux interfaces réseau actives avec la configuration suivante :
$ ip -br -4 a
Exemple de sortie
lo UNKNOWN 127.0.0.1/8 enp0s3 UP 192.168.2.104/24 enp0s8 UP 192.168.2.103/24
Exemple de mode de configuration interactif
Nous utiliserons le mode interactif pour changer le MTU (Unité de transmission maximale) du enp0s3 interface réseau. Par défaut, celui-ci est défini sur 1500 comme montré.
$ ifconfig
Nous allons changer cela en 4000. Nous le ferons en utilisant le nmstatectl modifier commande comme suit.
$ sudo nmstatectl edit enp0s3
Cela ouvre la configuration dans un éditeur de texte. Pour notre cas, il s’ouvre dans vigueur éditeur. Ensuite, faites défiler vers le bas et localisez le mtu paramètre. Nous allons changer la valeur en 4000, tout comme nous éditerions un fichier dans vim. Ensuite, nous enregistrerons les modifications.
Lorsque vous enregistrez et quittez le fichier, vous verrez une sortie brouillée sur le terminal comme NMstate enregistre les modifications. Aucune intervention n’est requise, alors restez assis.
Confirmons maintenant que le changement a été effectué.
$ ifconfig
À partir de la sortie du terminal, nous pouvons voir que nous avons réussi à changer le MTU en 4000 de la valeur par défaut 1500 valeur.
Exemple de mode de configuration basé sur fichier
Modifions maintenant la configuration en utilisant le mode basé sur des fichiers. Dans cet exemple, nous allons désactiver IPv6 pour le enp0s8 interface réseau. La première étape consiste à créer un fichier YAML qui spécifiera l’état souhaité du enp0s8 interface réseau.
$ sudo nmstatectl show enp0s8 > enp0s8.yml
Ensuite, nous allons éditer le YAML fichier comme suit.
$ sudo vim enp0s8.yml
Faites défiler jusqu’à la section ipv6. Pour désactiver IPv6, définissez le paramètre enabled sur false et supprimez les lignes barrées.
Enregistrez la configuration et appliquez le nouvel état à l’aide du fichier YAML comme suit.
$ sudo nmstatectl apply enp0s8.yml
Exécutez maintenant la commande affichée pour vérifier qu’IPv6 a été désactivé. La sortie affichée montre que l’IPv6 pour le enp0s8 l’interface réseau est vide, ce qui implique que nous avons réussi à désactiver IPv6 sur l’interface.
$ ip -br a
Application temporaire des modifications du réseau
Une autre fonctionnalité très pratique qui NMstate offre la possibilité de configurer temporairement un état de réseau souhaité. Une fois que vous êtes satisfait de la configuration, vous pouvez continuer et rendre les modifications permanentes. Sinon, les modifications apportées reviendront aux paramètres initiaux une fois le délai expiré. Le délai d’attente par défaut est de 60 secondes.
Pour le démontrer, nous allons définir temporairement une adresse IP statique sur le enp0s3 interface et désactiver DHCP. Encore une fois, accédez au fichier à l’aide d’un éditeur de texte.
$ sudo vim enp0s3.yml
Faites défiler jusqu’à ipv4 section. Spécifiez l’adresse IP statique – dans notre cas 192.168.2.150 et supprimer les lignes barrées. De plus, assurez-vous de régler le DHCP paramètre à faux.
Enregistrez le fichier et validez temporairement les modifications comme suit.
$ sudo nmstatectl apply --no-commit --timeout 20 enp0s3.yml
le --no-commit
l’option applique temporairement les modifications pendant une période définie par le --timeout
option qui, dans cet exemple, est de 20 secondes.
Pour vérifier l’application temporelle des modifications, nous vérifierons la configuration IP dans un intervalle de temps de 20 secondes.
$ ip -br a
À partir de la sortie, vous pouvez voir que la configuration IP de l’interface est revenue à DHCP après l’intervalle de temps de 20 secondes. L’adresse IP est revenue à 192.168.2.104 de l’adresse IP configurée statiquement précédente qui était 192.168.2.150.
Certes, le ÉtatNM est un outil pratique pour configurer vos interfaces réseau. Il s’agit d’un outil déclaratif qui applique l’état de configuration souhaité de l’interface d’un hôte à l’aide de l’API NetworkManager.
le Etat est facilement défini en utilisant soit le interactif approche ou en utilisant la basé sur des fichiers méthode qui utilise un pré-configuré YAML déposer. Cela améliore l’automatisation des tâches de configuration et la réduction des erreurs lors de la configuration.