Rechercher

Chapitre 21. Configuration du routage basé sur des règles pour définir des itinéraires alternatifs

download PDF

Par défaut, le noyau de RHEL décide où transmettre les paquets réseau en fonction de l'adresse de destination à l'aide d'une table de routage. Le routage basé sur des règles vous permet de configurer des scénarios de routage complexes. Par exemple, vous pouvez acheminer les paquets en fonction de divers critères, tels que l'adresse source, les métadonnées du paquet ou le protocole.

Note

Sur les systèmes qui utilisent NetworkManager, seul l'utilitaire nmcli permet de définir des règles de routage et d'affecter des itinéraires à des tables spécifiques.

21.1. Routage du trafic d'un sous-réseau spécifique vers une passerelle par défaut différente à l'aide de nmcli

Vous pouvez utiliser le routage basé sur des règles pour configurer une passerelle par défaut différente pour le trafic provenant de certains sous-réseaux. Par exemple, vous pouvez configurer RHEL comme un routeur qui, par défaut, achemine tout le trafic vers le fournisseur d'accès Internet A à l'aide de la route par défaut. Toutefois, le trafic reçu du sous-réseau des postes de travail internes est acheminé vers le fournisseur B.

La procédure suppose la topologie de réseau suivante :

routage basé sur une politique

Conditions préalables

  • Le système utilise NetworkManager pour configurer le réseau, ce qui est la valeur par défaut.
  • Le routeur RHEL que vous souhaitez configurer dans la procédure possède quatre interfaces réseau :

    • L'interface enp7s0 est connectée au réseau du fournisseur A. L'IP de la passerelle dans le réseau du fournisseur est 198.51.100.2, et le réseau utilise un masque de réseau /30.
    • L'interface enp1s0 est connectée au réseau du fournisseur B. L'IP de la passerelle dans le réseau du fournisseur est 192.0.2.2, et le réseau utilise un masque de réseau /30.
    • L'interface enp8s0 est connectée au sous-réseau 10.0.0.0/24 avec des postes de travail internes.
    • L'interface enp9s0 est connectée au sous-réseau 203.0.113.0/24 où se trouvent les serveurs de l'entreprise.
  • Les hôtes du sous-réseau des postes de travail internes utilisent 10.0.0.1 comme passerelle par défaut. Dans la procédure, vous attribuez cette adresse IP à l'interface réseau enp8s0 du routeur.
  • Les hôtes du sous-réseau du serveur utilisent 203.0.113.1 comme passerelle par défaut. Dans la procédure, vous attribuez cette adresse IP à l'interface réseau enp9s0 du routeur.
  • Le service firewalld est activé et actif.

Procédure

  1. Configurez l'interface réseau vers le fournisseur A :

    # nmcli connection add type ethernet con-name Provider-A ifname enp7s0 ipv4.method manual ipv4.addresses 198.51.100.1/30 ipv4.gateway 198.51.100.2 ipv4.dns 198.51.100.200 connection.zone external

    La commande nmcli connection add crée un profil de connexion NetworkManager. La commande utilise les options suivantes :

    • type ethernet: Définit que le type de connexion est Ethernet.
    • con-nameconnection_name: Définit le nom du profil. Utilisez un nom significatif pour éviter toute confusion.
    • ifnamenetwork_device: Définit l'interface réseau.
    • ipv4.method manual permet de configurer une adresse IP statique.
    • ipv4.addressesIP_address/subnet_mask: Définit les adresses IPv4 et le masque de sous-réseau.
    • ipv4.gatewayIP_address: Définit l'adresse de la passerelle par défaut.
    • ipv4.dnsIP_of_DNS_server: Définit l'adresse IPv4 du serveur DNS.
    • connection.zonefirewalld_zone: Affecte l'interface réseau à la zone définie firewalld. Notez que firewalld active automatiquement le masquage pour les interfaces assignées à la zone external.
  2. Configurez l'interface réseau vers le fournisseur B :

    # nmcli connection add type ethernet con-name Provider-B ifname enp1s0 ipv4.method manual ipv4.addresses 192.0.2.1/30 ipv4.routes "0.0.0.0/0 192.0.2.2 table=5000" connection.zone external

    Cette commande utilise le paramètre ipv4.routes au lieu de ipv4.gateway pour définir la passerelle par défaut. Ceci est nécessaire pour assigner la passerelle par défaut de cette connexion à une table de routage (5000) différente de la table par défaut. NetworkManager crée automatiquement cette nouvelle table de routage lorsque la connexion est activée.

  3. Configurez l'interface réseau vers le sous-réseau des postes de travail internes :

    # nmcli connection add type ethernet con-name Internal-Workstations ifname enp8s0 ipv4.method manual ipv4.addresses 10.0.0.1/24 ipv4.routes "10.0.0.0/24 table=5000" ipv4.routing-rules "priority 5 from 10.0.0.0/24 table 5000" connection.zone trusted

    Cette commande utilise le paramètre ipv4.routes pour ajouter une route statique à la table de routage avec l'ID 5000. Cette route statique pour le sous-réseau 10.0.0.0/24 utilise l'IP de l'interface réseau locale vers le fournisseur B (192.0.2.1) comme prochain saut.

    En outre, la commande utilise le paramètre ipv4.routing-rules pour ajouter une règle de routage avec la priorité 5 qui achemine le trafic du sous-réseau 10.0.0.0/24 vers la table 5000. Les valeurs faibles ont une priorité élevée.

    Notez que la syntaxe du paramètre ipv4.routing-rules est la même que celle d'une commande ip rule add, sauf que ipv4.routing-rules exige toujours la spécification d'une priorité.

  4. Configurez l'interface réseau vers le sous-réseau du serveur :

    # nmcli connection add type ethernet con-name Servers ifname enp9s0 ipv4.method manual ipv4.addresses 203.0.113.1/24 connection.zone trusted

Vérification

  1. Sur un hôte RHEL dans le sous-réseau des stations de travail internes :

    1. Installez le paquetage traceroute:

      # dnf install traceroute
    2. Utilisez l'utilitaire traceroute pour afficher l'itinéraire vers un hôte sur Internet :

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  10.0.0.1 (10.0.0.1)     0.337 ms  0.260 ms  0.223 ms
       2  192.0.2.1 (192.0.2.1)   0.884 ms  1.066 ms  1.248 ms
       ...

      La sortie de la commande indique que le routeur envoie des paquets sur 192.0.2.1, qui est le réseau du fournisseur B.

  2. Sur un hôte RHEL dans le sous-réseau du serveur :

    1. Installez le paquetage traceroute:

      # dnf install traceroute
    2. Utilisez l'utilitaire traceroute pour afficher l'itinéraire vers un hôte sur Internet :

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  203.0.113.1 (203.0.113.1)    2.179 ms  2.073 ms  1.944 ms
       2  198.51.100.2 (198.51.100.2)  1.868 ms  1.798 ms  1.549 ms
       ...

      La sortie de la commande indique que le routeur envoie des paquets sur 198.51.100.2, qui est le réseau du fournisseur A.

Étapes de dépannage

Sur le routeur RHEL :

  1. Affichez la liste des règles :

    # ip rule list
    0:	from all lookup local
    5:	from 10.0.0.0/24 lookup 5000
    32766:	from all lookup main
    32767:	from all lookup default

    Par défaut, RHEL contient des règles pour les tables local, main, et default.

  2. Afficher les itinéraires dans la table 5000:

    # ip route list table 5000
    0.0.0.0/0 via 192.0.2.2 dev enp1s0 proto static metric 100
    10.0.0.0/24 dev enp8s0 proto static scope link src 192.0.2.1 metric 102
  3. Affichez les interfaces et les zones de pare-feu :

    # firewall-cmd --get-active-zones
    external
      interfaces: enp1s0 enp7s0
    trusted
      interfaces: enp8s0 enp9s0
  4. Vérifiez que le masquage est activé dans la zone external:

    # firewall-cmd --info-zone=external
    external (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp1s0 enp7s0
      sources:
      services: ssh
      ports:
      protocols:
      masquerade: yes
      ...

Ressources supplémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.