Recherche de site Web

Série RHCE : Comment configurer et tester le routage réseau statique - Partie 1


RHCE (Red Hat Certified Engineer) est une certification de la société Red Hat, qui fournit un système d'exploitation et des logiciels open source à la communauté des entreprises. Elle propose également une formation, une assistance et services de conseil pour les entreprises.

Cet RHCE (Ingénieur certifié Red Hat) est un examen basé sur les performances (nom de code EX300), qui possède les compétences, connaissances et capacités supplémentaires requis d'un administrateur système senior responsable des systèmes Red Hat Enterprise Linux (RHEL).

Important : la certification RHCSA (Administrateur système certifié Red Hat) est requise pour obtenir la certification RHCE.

Voici les objectifs de l'examen basés sur la version Red Hat Enterprise Linux 7 de l'examen, qui seront abordés dans cette série RHCE :

Pour consulter les frais et vous inscrire à un examen dans votre pays, consultez la page Certification RHCE.

Dans cette Partie 1 de la série RHCE et la suivante, nous présenterons des cas basiques, mais typiques, où les principes du routage statique, du filtrage des paquets et de la traduction d'adresses réseau entrent en jeu. en jeu.

Veuillez noter que nous ne les aborderons pas en profondeur, mais plutôt organiserons ces contenus de manière à ce qu'ils soient utiles pour faire les premiers pas et construire à partir de là.

Routage statique dans Red Hat Enterprise Linux 7

L’une des merveilles des réseaux modernes réside dans la grande disponibilité d’appareils capables de connecter des groupes d’ordinateurs, qu’ils soient en nombre relativement restreint et confinés dans une seule pièce ou plusieurs machines dans le même bâtiment, ville, pays ou sur plusieurs continents.

Cependant, pour y parvenir efficacement dans n'importe quelle situation, les paquets réseau doivent être acheminés, ou en d'autres termes, le chemin qu'ils suivent de la source à la destination doit être réglé d'une manière ou d'une autre.

Le routage statique est le processus de spécification d'un itinéraire pour les paquets réseau autre que celui par défaut, qui est fourni par un périphérique réseau appelé passerelle par défaut. Sauf indication contraire via le routage statique, les paquets réseau sont dirigés vers la passerelle par défaut ; avec le routage statique, d'autres chemins sont définis en fonction de critères prédéfinis, tels que la destination du paquet.

Définissons le scénario suivant pour ce tutoriel. Nous avons un boîtier Red Hat Enterprise Linux 7 connecté au routeur #1 [192.168.0.1] pour accéder à Internet et aux machines en 192.168.0.0/24.

Un deuxième routeur (routeur n°2) possède deux cartes d'interface réseau : enp0s3 est également connecté au routeur n°1 pour accéder à Internet et communiquer avec le boîtier RHEL 7 et les autres machines du même réseau, tandis que l'autre (enp0s8) est utilisé pour accorder l'accès au réseau 10.0.0.0/24 où résident les services internes , tel qu'un serveur Web et/ou de base de données.

Ce scénario est illustré dans le schéma ci-dessous :

Dans cet article nous nous concentrerons exclusivement sur la mise en place de la table de routage sur notre box RHEL 7 pour nous assurer qu'elle puisse à la fois accéder à Internet via le routeur n°1 et le réseau interne via le routeur n°2.

Dans RHEL 7, vous utiliserez la commande ip pour configurer et afficher les périphériques et le routage à l'aide de la ligne de commande. Ces modifications peuvent prendre effet immédiatement sur un système en cours d'exécution, mais comme elles ne sont pas persistantes lors des redémarrages, nous utiliserons les fichiers ifcfg-enp0sX et route-enp0sX dans /etc. /sysconfig/network-scripts pour enregistrer notre configuration de manière permanente.

Pour commencer, imprimons notre table de routage actuelle :

ip route show

À partir du résultat ci-dessus, nous pouvons voir les faits suivants :

  1. L'adresse IP de la passerelle par défaut est 192.168.0.1 et est accessible via la carte réseau enp0s3.
  2. Lorsque le système a démarré, il a activé la route zeroconf vers 169.254.0.0/16 (juste au cas où). En quelques mots, si une machine est configurée pour obtenir une adresse IP via DHCP mais ne parvient pas à le faire pour une raison quelconque, une adresse lui est automatiquement attribuée sur ce réseau. En fin de compte, cette route nous permettra de communiquer, également via enp0s3, avec d'autres machines qui n'ont pas réussi à obtenir une adresse IP auprès d'un serveur DHCP.
  3. Enfin, nous pouvons communiquer avec d'autres boîtiers du réseau 192.168.0.0/24 via enp0s3, dont l'adresse IP est 192.168.0.18 . .

Ce sont les tâches typiques que vous auriez à effectuer dans un tel contexte. Sauf indication contraire, les tâches suivantes doivent être effectuées dans le routeur n° 2 :

Assurez-vous que toutes les cartes réseau ont été correctement installées :

ip link show

Si l'un d'entre eux est en panne, affichez-le :

ip link set dev enp0s8 up

et attribuez-lui une adresse IP dans le réseau 10.0.0.0/24 :

ip addr add 10.0.0.17 dev enp0s8

Oops! Nous avons fait une erreur dans l'adresse IP. Nous devrons supprimer celui que nous avons attribué plus tôt puis ajouter celui de droite (10.0.0.18) :

ip addr del 10.0.0.17 dev enp0s8
ip addr add 10.0.0.18 dev enp0s8

Notez désormais que vous ne pouvez ajouter un itinéraire vers un réseau de destination que via une passerelle elle-même déjà accessible. Pour cette raison, nous devons attribuer une adresse IP comprise dans la plage 192.168.0.0/24 à enp0s3 afin que notre box RHEL 7 puisse communiquer avec lui :

ip addr add 192.168.0.19 dev enp0s3

Enfin, nous devrons activer le transfert de paquets :

echo "1" > /proc/sys/net/ipv4/ip_forward

et arrêtez/désactivez (juste pour le moment – jusqu'à ce que nous abordions le filtrage de paquets dans le prochain article) le pare-feu :

systemctl stop firewalld
systemctl disable firewalld

De retour dans notre boîte RHEL 7 (192.168.0.18), configurons une route vers 10.0.0.0/24 via 192.168.0.19 (enp0s3 dans le routeur n°2) :

ip route add 10.0.0.0/24 via 192.168.0.19

Après cela, la table de routage se présente comme suit :

ip route show

De même, ajoutez l'itinéraire correspondant dans la ou les machines que vous essayez d'atteindre dans 10.0.0.0/24 :

ip route add 192.168.0.0/24 via 10.0.0.18

Vous pouvez tester la connectivité de base à l'aide de ping :

Dans la zone RHEL 7, exécutez

ping -c 4 10.0.0.20

10.0.0.20 est l'adresse IP d'un serveur Web dans le réseau 10.0.0.0/24.

Sur le serveur Web (10.0.0.20), exécutez

ping -c 192.168.0.18

192.168.0.18 est, vous vous en souviendrez, l'adresse IP de notre machine RHEL 7.

Alternativement, nous pouvons utiliser tcpdump (vous devrez peut-être l'installer avec yum install tcpdump) pour vérifier la communication bidirectionnelle sur TCP entre notre boîtier RHEL 7 et le serveur Web à l'adresse 10.0.0.20. .

Pour ce faire, commençons la journalisation sur la première machine avec :

tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

et depuis un autre terminal du même système, connectons telnet au port 80 du serveur Web (en supposant que Apache écoute sur ce port ; sinon, indiquez le bon port dans la commande suivante) :

telnet 10.0.0.20 80

Le journal tcpdump devrait ressembler à ceci :

Où la connexion a été correctement initialisée, comme nous pouvons le constater en regardant la communication bidirectionnelle entre notre boîtier RHEL 7 (192.168.0.18) et le serveur Web (10.0.0.20).

N'oubliez pas que ces modifications disparaîtront lorsque vous redémarrerez le système. Si vous souhaitez les rendre persistants, vous devrez éditer (ou créer, s'ils n'existent pas déjà) les fichiers suivants, dans les mêmes systèmes où nous avons exécuté les commandes ci-dessus.

Bien que cela ne soit pas strictement nécessaire pour notre scénario de test, vous devez savoir que /etc/sysconfig/network contient des paramètres réseau à l'échelle du système. Un /etc/sysconfig/network typique ressemble à ceci :

Enable networking on this system?
NETWORKING=yes
Hostname. Should match the value in /etc/hostname
HOSTNAME=yourhostnamehere
Default gateway
GATEWAY=XXX.XXX.XXX.XXX
Device used to connect to default gateway. Replace X with the appropriate number.
GATEWAYDEV=enp0sX

Lorsqu'il s'agit de définir des variables et des valeurs spécifiques pour chaque carte réseau (comme nous l'avons fait pour le routeur n°2), vous devrez éditer /etc/sysconfig/network-scripts/ifcfg-enp0s3 et /etc/sysconfig/network-scripts/ifcfg-enp0s8.

Suite à notre cas,

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.19
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NAME=enp0s3
ONBOOT=yes

et

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
NAME=enp0s8
ONBOOT=yes

pour enp0s3 et enp0s8, respectivement.

Quant au routage sur notre machine client (192.168.0.18), nous devrons éditer /etc/sysconfig/network-scripts/route-enp0s3 :

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Maintenant, redémarrez votre système et vous devriez voir cet itinéraire dans votre tableau.

Résumé

Dans cet article, nous avons couvert l'essentiel du routage statique dans Red Hat Enterprise Linux 7. Bien que les scénarios puissent varier, le cas présenté ici illustre les principes requis et les procédures pour effectuer cette tâche. Avant de conclure, je voudrais vous suggérer de jeter un œil au chapitre 4 de la section Sécurisation et optimisation de Linux du site The Linux Documentation Project pour plus de détails sur les sujets abordés ici.

Ebook gratuit sur Sécuriser et optimiser Linux : la solution de piratage (v.3.0) – Ce 800+ eBook contient une collection complète de conseils de sécurité Linux et explique comment les utiliser facilement et en toute sécurité. pour configurer des applications et des services basés sur Linux.

Télécharger maintenant

Dans le prochain article, nous parlerons du filtrage de paquets et de la traduction d'adresses réseau pour résumer les compétences de base en réseau nécessaires à la certification RHCE.

Comme toujours, nous sommes impatients de vous entendre, alors n'hésitez pas à laisser vos questions, commentaires et suggestions en utilisant le formulaire ci-dessous.