Comment utiliser l'espace de noms du réseau Linux

Comment utiliser l'espace de noms du réseau Linux

Les espaces de noms de réseau Linux sont une fonctionnalité de noyau Linux nous permettant d'isoler les environnements réseau via la virtualisation. Par exemple, en utilisant des espaces de noms de réseau, vous pouvez créer des interfaces réseau et des tables de routage distinctes qui sont isolées du reste du système et opérer indépendamment.

Pour comprendre facilement les espaces de noms, il convient de dire que les espaces de noms Linux sont à la base de technologies de conteneurs comme Docker ou Kubernetes.

Pour l'instant, Linux comprend 6 types d'espaces de noms: PID, NET, UTS, MNT, IPC et utilisateur. Ce tutoriel se concentre sur les espaces de noms de réseau Linux.

Si vous commandez des LSN, il affichera toutes les espaces de noms existants de votre système, comme indiqué dans l'image ci-dessous.

LSN

Note: L'espace de noms utilisé pour ce tutoriel est nommé Linuxhint; Remplacez-le par votre nom d'espace de noms.

Ajout d'un espace de noms de réseau Linux:

La gestion des espaces de noms de réseau se fait à l'aide de la commande IP Netns suivie des options appropriées.

Pour créer un espace de noms de réseau dans Linux, vous devez exécuter la commande IP suivie de l'option NETNS (Network Namespace), l'option ADD et le nouveau nom d'espace de noms, comme indiqué dans la capture d'écran suivante. Ensuite, la commande IP NETNS peut être exécutée pour afficher uniquement les espaces de noms de réseau existants. N'oubliez pas de remplacer Linuxhint par le nom de votre espace de noms.

IP Netns Ajouter Linuxhint
IP NETNS

Comme vous pouvez le voir, un nouvel espace de noms a été créé nommé Linuxhint.

Les espaces de noms de réseau ont leurs propres interfaces, tables de routage, interface de bouclage, règles iptables, etc. Vous devez créer ces ressources pour votre espace de noms.

Création d'une interface de bouclage pour l'espace de noms:

Pour exécuter les commandes dans un espace de noms de réseau, la syntaxe est la suivante.

IP NETNS Exec

Par défaut, l'interface de bouclage est en panne. Vous devez exécuter la commande suivante; Comme expliqué précédemment, la commande ci-dessous exécute le lien IP set Dev Lo Up dans l'espace de noms choisi.

IP Netns Exec Linuxhint IP lien set Dev Lo Up

Vous pouvez vérifier si votre interface de bouclage a été ajoutée correctement en exécutant la commande suivante:

Adresse IP LinuxHint IP NETNS EXEC

Vous pouvez également ping votre interface de bouclage d'espace de noms pour le tester, comme indiqué ci-dessous.

IP Netns Exec Linuxhint Ping 127.0.0.1

Ajout d'interfaces réseau à votre espace de noms:

Vous pouvez associer une carte réseau matérielle à votre espace de noms, ou vous pouvez ajouter des appareils réseau virtuels. En ajoutant des interfaces réseau virtuelles, vous pouvez permettre la connectivité entre différents espaces de noms. Les périphériques réseau virtuels sont nommés VETH (Virtual Ethernet Device).

Pour créer un périphérique Ethernet de réseau virtuel, exécutez la commande suivante, où ENP2S0 est le pour le nouveau périphérique et V-peer1 son nom arbitraire, remplacez-le par le vôtre.

lien IP Ajouter V-Enp2S0 Type Veth Peer Nom V-ETH0

Affectez maintenant l'appareil virtuel à votre espace de noms en exécutant la commande ci-dessous.

lien IP SET V-ETH0 NETNS Linuxhint

Attribuez une adresse IP au nouveau périphérique réseau comme indiqué ci-dessous.

ip -n linuxhint addr addr 10.0.1.0/24 DEV V-ETH0

Par défaut, le périphérique réseau est en panne; Vous devez le configurer. Pour définir votre périphérique réseau virtuel, exécutez la commande suivante.

lien ip -n linuxhint set v -th0 up

Comme vous pouvez le voir dans la capture d'écran ci-dessous, le dispositif virtuel a été ajouté correctement.

IP Netns Exec Linuxhint sudo ifconfig

L'exemple ci-dessous montre comment attribuer une carte de réseau physique à votre espace de noms de réseau. Dans ce cas, la carte de réseau physique est l'ENP2S0.

lien IP SET DEV ENP2S0 NETNS LINUXHINT

Comme vous pouvez le voir en exécutant l'exemple ci-dessous, la carte réseau a été ajoutée correctement. Vous pouvez affecter une adresse IP en utilisant les mêmes commandes expliquées précédemment.

IP Netns Exec Linuxhint sudo ifconfig

Comme expliqué précédemment, chaque espace de noms a sa propre table d'itinéraire, IP, etc., y compris ses propres règles de pare-feu. L'ajout de règles de pare-feu à votre espace de noms est simple; Exécutez simplement les commandes après IP Netns Exec Linuxhint, comme illustré ci-dessous. L'exemple ci-dessous répertorie les politiques iptables si existant.

IP NETNS Exec Linuxhint Sudo iptables -l

L'exemple suivant montre la même chose mais en utilisant UFW (pare-feu simple) au lieu d'iptables. Dans ce cas, le pare-feu est indiqué comme handicapé.

IP Netns Exec Linuxhint Sudo UFW Status

Suppression d'un espace de noms de réseau Linux:

La suppression des espaces de noms de réseau est assez simple, comme lors de l'ajout.

Pour supprimer un espace de noms, exécutez la commande ci-dessous, remplacez LinuxHint par votre espace de noms.

IP Netns del Linuxhint

Comme vous pouvez le voir, après l'exécution de NETN IP, aucun espace de noms de réseau n'a été affiché; il a été supprimé avec succès.

Conclusion:

Les espaces de noms Linux sont une méthode formidable pour isoler les processus, les systèmes de fichiers, les réseaux et plus encore. Cette fonctionnalité nous permet d'exécuter des instances indépendamment. Ceci est extrêmement utile à des fins de sécurité. Les espaces de noms sont des conteneurs dont le contenu est entièrement isolé du reste du système, y compris d'autres espaces de noms. De cette façon, nous pouvons exécuter différents services dans différents conteneurs. Si un espace de noms est compromis sous une attaque, le reste du système reste sûr. En utilisant des espaces de noms Linux, vous pouvez offrir à plusieurs clients leur environnement; Cette fonctionnalité est également idéale à des fins de test ou pour exécuter des logiciels dont l'origine est suspecte; En cas d'exécution d'un code malveillant, seul votre espace de noms sera affecté, laissant votre appareil en sécurité.

J'espère que ce tutoriel sur les espaces de noms Linux a été utile. Continuez à suivre l'astuce Linux pour plus de conseils et de tutoriels Linux.