Utiliser des routes basées sur des règles

Les routes basées sur des règles vous permettent de sélectionner un saut suivant en fonction de l'adresse IP de destination d'un paquet. Cette page explique comment créer, répertorier, décrire et supprimer des routes basées sur des règles.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour utiliser des routes basées sur des règles, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de réseaux Compute (roles/compute.networkAdmin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Créer des routes basées sur des règles

Lorsque vous créez une route basée sur des règles, vous spécifiez les éléments suivants:

  • Champ d'application de la route: ressources auxquelles la route peut s'appliquer
  • Critères de classification: plages d'adresses IP sources, plages d'adresses IP de destination et protocoles déterminant les paquets auxquels la route s'applique. La route basée sur des règles s'applique aux paquets qui correspondent à tous les critères de classification spécifiés.
  • Saut suivant : équilibreur de charge réseau passthrough interne à saut suivant ou saut suivant qui ignore les autres routes basées sur des règles.

Console

  1. Dans la console Google Cloud, accédez à la page Routes.

    Accéder à la page Routes

  2. Cliquez sur Gestion des routes.

  3. Cliquez sur Créer une route.

  4. Saisissez un nom pour la route.

  5. Facultatif : saisissez une Description.

  6. Cliquez sur Réseau, puis sélectionnez le réseau dans lequel vous souhaitez ajouter la route basée sur des règles.

  7. Cliquez sur Type de route, puis sélectionnez Route basée sur des règles.

  8. Dans la section Champ d'application de la route, effectuez l'une des opérations suivantes:

    • Pour rendre la route applicable à toutes les instances de machine virtuelle (VM), rattachements de VLAN pour Cloud Interconnect et tunnels Cloud VPN du réseau cloud privé virtuel, sélectionnez Cette route s'applique à toutes les VM instances, rattachements de VLAN et tunnels VPN.

      Nous vous recommandons de faire preuve de prudence lorsque vous créez des routes de ce type. La route est appliquée à tous les paquets de sortie qui correspondent aux critères de classification, qui peuvent inclure le trafic de sortie du backend de l'équilibreur de charge réseau interne à stratégie directe.

    • Pour que la route ne s'applique qu'à certaines instances de VM, sélectionnez Cette route ne s'applique qu'aux instances de VM, puis saisissez les tags réseau des VM auxquelles cette route doit s'appliquer. Vous pouvez saisir plusieurs tags réseau séparés par une virgule dans une liste.

    • Pour que la route s'applique à tous les rattachements de VLAN pour Cloud Interconnect dans le réseau VPC de la route, sélectionnez Cette route ne s'applique qu'aux rattachements de VLAN.

    • Pour que la route s'applique aux rattachements de VLAN pour Cloud Interconnect dans une région spécifique, sélectionnez Cette route ne s'applique qu'aux rattachements de VLAN, puis sélectionnez la région des rattachements de VLAN. Il n'est pas possible de créer une route basée sur des règles qui s'applique à un rattachement de VLAN spécifique.

  9. Dans la section Critères de classification, procédez comme suit :

    1. Saisissez une plage d'adresses IP sources.
    2. Saisissez une plage d'adresses IP de destination.
    3. Cliquez sur Protocole, puis sélectionnez les protocoles auxquels cette route s'applique.
  10. Saisissez une priorité.

  11. Dans la section Saut suivant, cliquez sur Saut suivant, puis procédez comme suit :

    • Pour spécifier un équilibreur de charge réseau passthrough interne à saut suivant, sélectionnez Spécifier une règle de transfert pour l'équilibreur de charge réseau passthrough interne, puis procédez comme suit :
      • Pour sélectionner une règle de transfert dans une liste de règles de transfert existantes, procédez comme suit :
        1. Sélectionnez Utilisée par la règle de transfert d'un équilibreur de charge interne dans le projet actuel.
        2. Cliquez sur Adresse IP de la règle de transfert, puis sélectionnez une adresse IP associée à un équilibreur de charge interne dans le projet sélectionné.
      • Pour saisir une adresse IP, procédez comme suit :
        1. Sélectionnez Non utilisée.
        2. Dans le champ Adresse IP de la règle de transfert, saisissez une adresse IP. L'adresse IP doit provenir des plages d'adresses IP du réseau dans lequel vous créez cette route basée sur des règles. Vous pouvez spécifier une adresse IP déjà associée à la règle de transfert d'un équilibreur de charge réseau passthrough interne, ou spécifier une adresse IP non utilisée et créer la règle de transfert après avoir créé cette route basée sur des règles.
    • Pour créer une route basée sur des règles qui ignore les autres routes basées sur des règles, sélectionnez Ignorer les autres routes basées sur des règles.
  12. Cliquez sur Créer.

gcloud

Utilisez la commande policy-based-routes create.

  • Pour appliquer la route à toutes les instances de VM, rattachements de VLAN pour Cloud Interconnect et tunnels Cloud VPN du réseau cloud privé virtuel, exécutez la commande suivante.

    Nous vous recommandons de faire preuve de prudence lorsque vous créez des routes de ce type. La route est appliquée à tous les paquets de sortie qui correspondent aux critères de classification, qui peuvent inclure le trafic de sortie du backend de l'équilibreur de charge réseau interne à stratégie directe.

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
      --source-range=SOURCE_RANGE \
      --destination-range=DESTINATION_RANGE \
      --ip-protocol=PROTOCOL \
      --network="projects/PROJECT_ID/global/networks/NETWORK" \
      --next-hop-ilb-ip=NEXT_HOP \
      --description=DESCRIPTION \
      --priority=PRIORITY
    

    Remplacez les éléments suivants :

    • ROUTE_NAME : nom de la route basée sur des règles
    • SOURCE_RANGE : plage CIDR de l'adresse IP source
    • DESTINATION_RANGE : plage CIDR de l'adresse IP de destination
    • PROTOCOL : Protocole du trafic à rediriger Les options sont ALL, TCP ou UDP. La valeur par défaut est ALL.
    • PROJECT_ID : ID du projet
    • NETWORK : nom du réseau auquel appliquer la route basée sur des règles.
    • NEXT_HOP : adresse IPv4 de l'équilibreur de charge réseau passthrough interne du saut suivant de la route.
    • DESCRIPTION : description facultative de la route.
    • PRIORITY : priorité de la route basée sur des règles par rapport aux autres routes basées sur des règles.
  • Pour n'appliquer la route qu'à certaines instances de VM, utilisez la commande suivante :

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
      --source-range=SOURCE_RANGE \
      --destination-range=DESTINATION_RANGE \
      --ip-protocol=PROTOCOL \
      --network="projects/PROJECT_ID/global/networks/NETWORK" \
      --next-hop-ilb-ip=NEXT_HOP \
      --description=DESCRIPTION \
      --priority=PRIORITY \
      --tags=NETWORK_TAGS
    

    Remplacez NETWORK_TAGS par un ou plusieurs tags réseau des VM auxquelles appliquer la route. Vous pouvez inclure plusieurs tags réseau séparés par une virgule dans une liste.

  • Pour n'appliquer la route qu'aux rattachements de VLAN pour Cloud Interconnect, exécutez la commande suivante. Vous pouvez appliquer la route à des rattachements de VLAN pour Cloud Interconnect dans une région spécifique ou à tous les rattachements de VLAN pour Cloud Interconnect dans un réseau VPC.

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
      --source-range=SOURCE_RANGE \
      --destination-range=DESTINATION_RANGE \
      --ip-protocol=PROTOCOL \
      --network="projects/PROJECT_ID/global/networks/NETWORK" \
      --next-hop-ilb-ip=NEXT_HOP \
      --description=DESCRIPTION \
      --priority=PRIORITY \
      --interconnect-attachment-region=INTERCONNECT_REGION
    

    Remplacez INTERCONNECT_REGION par la région des rattachements de VLAN auxquels Cloud Interconnect doit appliquer la route. Pour appliquer la route basée sur des règles à tous les rattachements de VLAN pour Cloud Interconnect dans le réseau VPC de la route, utilisez all.

  • Pour spécifier un saut suivant qui ignore les autres routes basées sur des règles pour des VM spécifiques identifiées par des tags réseau, exécutez la commande suivante :

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
      --source-range=SOURCE_RANGE \
      --destination-range=DESTINATION_RANGE \
      --ip-protocol=PROTOCOL \
      --network="projects/PROJECT_ID/global/networks/NETWORK" \
      --next-hop-other-routes=DEFAULT_ROUTING \
      --description=DESCRIPTION \
      --priority=PRIORITY \
      --tags=NETWORK_TAGS
    

API

Envoyez une requête POST à la méthode policyBasedRoutes.create:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME
  • Pour appliquer la route à toutes les instances de VM, rattachements de VLAN pour Cloud Interconnect et tunnels Cloud VPN du réseau cloud privé virtuel, incluez le corps de requête suivant.

    Nous vous recommandons de faire preuve de prudence lorsque vous créez des routes de ce type. La route est appliquée à tous les paquets de sortie qui correspondent aux critères de classification, qui peuvent inclure le trafic de sortie du backend de l'équilibreur de charge réseau interne à stratégie directe.

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY"
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet
    • ROUTE_NAME : nom de la route basée sur des règles
    • SOURCE_RANGE : plage CIDR de l'adresse IP source
    • DESTINATION_RANGE : plage CIDR de l'adresse IP de destination
    • PROTOCOL : Protocole du trafic à rediriger Les options sont ALL, TCP ou UDP. La valeur par défaut est ALL.
    • NETWORK: nom du réseau auquel appliquer la route basée sur des règles. La route s'applique au trafic de sortie des instances de ce réseau qui répondent aux autres critères de classification.
    • NEXT_HOP : adresse IPv4 de l'équilibreur de charge réseau passthrough interne du saut suivant de la route.
    • DESCRIPTION : description facultative de la route.
    • PRIORITY : priorité de la route basée sur des règles par rapport aux autres routes basées sur des règles.
  • Pour n'appliquer la route qu'à certaines instances de VM, incluez le corps de requête suivant:

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY",
      "virtualMachine": {
        "tags": [
          "NETWORK_TAGS"
        ]
      }
    }
    

    Remplacez NETWORK_TAGS par un ou plusieurs tags réseau. La route basée sur des règles s'applique au trafic de sortie provenant d'instances qui possèdent au moins un de ces tags. Vous pouvez inclure plusieurs tags au format suivant : "tag1","tag2","tag3".

  • Pour n'appliquer la route qu'aux rattachements de VLAN pour Cloud Interconnect, incluez le corps de requête suivant. Il n'est pas possible de créer une route basée sur des règles qui s'applique à un rattachement de VLAN spécifique.

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "interconnectAttachment": {
        "region": "INTERCONNECT_REGION"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY"
    }
    

    Remplacez INTERCONNECT_REGION par la région des rattachements de VLAN à laquelle Cloud Interconnect doit appliquer cette route. Pour appliquer la route basée sur des règles à tous les rattachements de VLAN pour Cloud Interconnect dans le réseau VPC de la route, utilisez all.

  • Pour spécifier un saut suivant qui ignore les autres routes basées sur des règles pour des VM spécifiques identifiées par des tags réseau, exécutez la commande suivante :

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IPv4"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopOtherRoutes": "DEFAULT_ROUTING",
      "description": "DESCRIPTION",
      "priority": "PRIORITY",
      "virtualMachine": {
        "tags": [
          "NETWORK_TAGS"
        ]
      }
    }
    

Vérifier la connectivité d'une route basée sur des règles

Les tests de connectivité se présentent comme un outil de diagnostic qui vous permet de vérifier la connectivité entre les points de terminaison de votre réseau. Il analyse votre configuration et, dans certains cas, procède à la vérification de l'exécution. Les tests de connectivité sont compatibles avec les routes basées sur des règles. Pour exécuter des tests de connectivité avec vos routes basées sur des règles, consultez la page Créer et exécuter des tests de connectivité.

Répertorier les routes basées sur des règles

Vous pouvez répertorier les routes basées sur des règles pour toutes les afficher dans un projet ou un réseau et une région.

Console

  1. Dans la console Google Cloud, accédez à la page Routes.

    Accéder à la page Routes

    • Pour afficher toutes les routes basées sur des règles dans un réseau VPC et une région, procédez comme suit :

      1. Cliquez sur Routes effectives.
      2. Cliquez sur Réseau, puis sélectionnez un réseau.
      3. Cliquez sur Région, puis sélectionnez une région.
      4. Cliquez sur Afficher.
    • Pour afficher toutes les routes basées sur des règles dans un projet, procédez comme suit :

      1. Cliquez sur Gestion des routes.

gcloud

Utilisez la commande policy-based-routes list.

gcloud network-connectivity policy-based-routes list

API

Envoyez une requête GET à la méthode policyBasedRoutes.list.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes

Remplacez PROJECT_ID par l'ID du projet dans lequel répertorier les routes basées sur des règles.

Décrire les routes basées sur des règles

Vous pouvez décrire une route basée sur des règles pour en afficher les détails.

Console

  1. Dans la console Google Cloud, accédez à la page Routes.

    Accéder à la page Routes

  2. Cliquez sur Routes effectives.

  3. Cliquez sur Réseau, puis sélectionnez un réseau.

  4. Cliquez sur Région, puis sélectionnez une région.

  5. Cliquez sur Afficher.

  6. Cliquez sur le nom d'une route basée sur des règles pour en afficher les détails.

gcloud

Pour décrire une route basée sur des règles, exécutez la commande policy-based-routes describe.

gcloud network-connectivity policy-based-routes describe NAME

Remplacez NAME par le nom de la route à décrire.

API

Envoyez une requête GET à la méthode policyBasedRoutes.get.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ROUTE_NAME : nom de la route basée sur des règles à décrire

Supprimer des routes basées sur des règles

Vous pouvez supprimer une route basée sur des règles pour la retirer d'un réseau VPC.

Console

  1. Dans la console Google Cloud, accédez à la page Routes.

    Accéder à la page Routes

  2. Cliquez sur Routes effectives.

  3. Cliquez sur Réseau, puis sélectionnez un réseau.

  4. Cliquez sur Région, puis sélectionnez une région.

  5. Cliquez sur Afficher.

  6. Cliquez sur le nom d'une route basée sur des règles.

  7. Cliquez sur Supprimer, puis à nouveau sur Supprimer pour confirmer l'opération.

gcloud

Pour supprimer une route basée sur des règles, exécutez la commande policy-based-routes delete.

gcloud network-connectivity policy-based-routes delete NAME

Remplacez NAME par le nom de la route à supprimer.

API

Envoyez une requête DELETE à la méthode policyBasedRoutes.delete.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • ROUTE_NAME : nom du routage basé sur des règles à supprimer

Compatibilité

Une configuration spéciale est nécessaire pour utiliser les routages basés sur des règles des manières suivantes.

Utiliser des routages basés sur des règles avec GKE

Si vous créez des routes basées sur des règles dans des réseaux VPC comportant des clusters Google Kubernetes Engine (GKE), gardez à l'esprit les points suivants:

Routes basées sur des règles et Private Service Connect pour les services publiés

Les routes basées sur des règles ne peuvent pas être utilisées pour acheminer le trafic de VM vers des points de terminaison Private Service Connect pour des services publiés ou des backends Private Service Connect pour des services publiés Lorsque vous utilisez des routes basées sur des règles et Private Service Connect pour des services publiés:

  • Utilisez des tags réseau afin que les routes basées sur des règles s'appliquent à des VM spécifiques.
  • Évitez de créer des routes basées sur des règles avec des plages d'adresses IP sources ou de destination de 0.0.0.0/0.
  • Si vous devez créer une route basée sur des règles avec une plage de destination incluant l'adresse IP d'un point de terminaison ou d'un backend Private Service Connect, créez une route basée sur des règles de priorité plus élevée qui ignore les autres routes basées sur des règles. Configurez la destination de la route basée sur une règle de priorité plus élevée avec une plage d'adresses IP plus spécifique incluant l'adresse IP du point de terminaison ou du backend Private Service Connect.

Routes basées sur des règles et accès aux API et services Google

Google Cloud n'est pas compatible avec le routage du trafic vers les API et les services Google via d'autres instances de VM ou des sauts suivants personnalisés, y compris les backends de VM d'équilibreurs de charge réseau internes de saut suivant dans les routes basées sur des règles.

Si vous utilisez l'une des méthodes suivantes pour accéder aux API et services Google, consultez les bonnes pratiques répertoriées dans la section suivante:

Bonnes pratiques

Nous vous recommandons d'appliquer les bonnes pratiques suivantes pour les méthodes précédentes d'accès aux API et services Google:

  • Utilisez des tags réseau afin que les routes basées sur des règles s'appliquent à des VM spécifiques.
  • Évitez de créer des routes basées sur des règles avec des plages sources ou de destination de 0.0.0.0/0.
  • Si vous créez des routes basées sur des règles qui incluent des plages de destination utilisées par les API et les services Google, des points de terminaison Private Service Connect pour les API Google ou des backends Private Service Connect pour les API, créez des routes basées sur des règles à priorité plus élevée qui ignorent les autres routes basées sur des règles. Définissez les destinations de ces routes basées sur des règles avec une priorité plus élevée afin qu'elles correspondent aux adresses IP des API et services Google, des points de terminaison Private Service Connect ou des backends Private Service Connect que vous utilisez. Les plages d'adresses IP utilisées par les API et les services Google incluent les suivantes :
    • Les adresses IP des domaines par défaut utilisés par les API et les services Google
    • Les adresses IP virtuelles de l'accès privé à Google :
      • private.googleapis.com (199.36.153.8/30)
      • restricted.googleapis.com (199.36.153.4/30)