Utiliser des routes

Cette page explique comment créer et gérer des routes pour les réseaux VPC Google Cloud. Dans cette page, nous partons du principe que vous connaissez les différents types de routes Google Cloud et leurs caractéristiques (décrites sur la page Présentation des routes).

Chaque nouveau réseau comprend deux types de routes générées par le système : une route par défaut que vous pouvez supprimer ou remplacer, et une route de sous-réseau pour chaque sous-réseau. Vous ne pouvez pas supprimer une route de sous-réseau sans supprimer le sous-réseau correspondant.

Outre les routes générées par le système, vous pouvez créer des routes statiques personnalisées.

Inspecter les routes

Répertorier les routes pour les réseaux VPC

Vous pouvez afficher les routes selon l'une des méthodes suivantes :

Console

Pour répertorier les routes de tous les réseaux :

  1. Accédez à la page "Routes" dans Google Cloud Console.
    Accéder à la page "Routes"
  2. La zone de texte Filtrer les routes permet de limiter le nombre de routes affichées. Par exemple, vous pouvez saisir le nom d'un réseau VPC et appuyer sur la touche "Entrée" pour n'afficher que les routes d'un réseau donné.
  3. L'onglet Tous affiche tous les types de routes. Pour n'afficher que les routes dynamiques personnalisées, cliquez sur l'onglet Dynamique.

gcloud

Pour répertorier les routes par défaut, les routes de sous-réseau et les routes statiques personnalisées, exécutez la commande gcloud suivante, en remplaçant NETWORK_NAME par le nom de votre réseau :

gcloud compute routes list --filter="network=NETWORK_NAME"

La commande gcloud compute routes list n'affiche pas les routes dynamiques personnalisées. Pour afficher celles-ci, vous devez interroger l'état du routeur cloud qui a découvert la route. Exécutez la commande suivante en tant que modèle, en remplaçant CLOUD_ROUTER_NAME par le nom d'un routeur cloud et REGION par sa région :

gcloud compute routers get-status CLOUD_ROUTER_NAME \
    --region=REGION \
    --format="flattened(result.bestRoutes)"

API

Répertoriez les routes par défaut, les routes de sous-réseau et les routes statiques personnalisées de votre réseau VPC.

GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes?filter=network="NETWORK_URL

Remplacez les espaces réservés par des valeurs valides :

  • PROJECT_ID est l'ID du projet dans lequel se trouve votre réseau VPC.
  • NETWORK_URL est l'URL du réseau VPC qui contient les routes à répertorier.

Pour plus d'informations, consultez la documentation sur la méthode routes.list.

Les routes dynamiques personnalisées ne sont pas affichées par l'API de liste des routes. Pour afficher celles-ci, vous devez interroger l'état du routeur cloud qui a découvert la route. Pour en savoir plus, consultez la documentation de Cloud Router.

Décrire les routes

Pour afficher les détails des routes statiques personnalisées et générées par le système, y compris les destinations et les sauts suivants :

Console

  1. Accédez à la page "Routes" dans Google Cloud Console.
    Accéder à la page "Routes"
  2. Cliquez sur le nom d'une route.

gcloud

Pour afficher les détails des routes statiques personnalisées et générées par le système, exécutez la commande gcloud suivante en remplaçant ROUTE_NAME par le nom de la route à inspecter :

gcloud compute routes describe ROUTE_NAME --format="flattened()"

API

Décrivez une route statique personnalisée ou générée par le système pour en afficher les détails.

GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME

Remplacez les espaces réservés par des valeurs valides :

  • PROJECT_ID est l'ID du projet dans lequel se trouve votre route.
  • ROUTE_NAME est le nom de la route à décrire.

Pour plus d'informations, consultez la documentation sur la méthode routes.get.

Routes pour les VM

Vous pouvez afficher les routes applicables et les routes effectives du point de vue d'une interface réseau donnée pour une instance de VM en suivant les instructions de cette section. Les routes efficaces sont un sous-ensemble de routes applicables qui prennent en compte l'ordre de routage.

Routes applicables à une interface réseau

Vous pouvez utiliser Cloud Console pour afficher les routes applicables à l'interface réseau d'une VM. Cette vue réduit la liste des routes pouvant être utilisées pour le trafic de sortie.

Pour afficher les routes applicables à une interface réseau spécifique de VM :

  1. Accédez à la page Instances de VM de Google Cloud Console.
    Accéder à la page "Instances de VM"
  2. Recherchez une instance de VM dans la liste. Dans le menu Autres actions (), sélectionnez Afficher les détails du réseau.
  3. Si une instance comporte plusieurs interfaces réseau, sélectionnez celle à afficher dans la section Informations sur l'interface réseau.
  4. Cliquez sur l'onglet Routes pour afficher toutes les routes qui s'appliquent à l'interface réseau, triées par nom de route.

Analyse de routes et routes efficaces

L'analyse de route vous aide à déterminer des routes efficaces, en prenant en compte les routes applicables et leur ordre de routage Les routes sont répertoriées par plage d'adresses IP de destination. Vous pouvez ainsi déterminer quelle route applicable sera utilisée pour envoyer du trafic vers une plage de destination donnée.

Par exemple, une interface réseau peut utiliser plusieurs routes applicables. Consultez la section Ordre de routage dans la "Présentation des routes" pour plus d'informations.

Pour afficher les routes en fonction de l'applicabilité et de l'ordre de routage, utilisez l'analyse de route :

  1. Accédez à la page "Instances de VM" dans Google Cloud Console et recherchez l'instance à afficher.
    Accéder à la page "Instances de VM"
  2. Dans le menu Autres actions de l'instance (), sélectionnez Afficher les détails du réseau.
  3. Si une instance comporte plusieurs interfaces réseau, sélectionnez celle à afficher dans la section Informations sur l'interface réseau.
  4. Dans la section Analyse des données sur les réseaux, sélectionnez l'onglet Analyse des routes.
  5. Affichez la table, triée de la plage d'adresses IP la plus spécifique à la moins spécifique, pour déterminer la route à appliquer à une plage d'adresses IP spécifique.

Exemple de sortie de l'onglet d'analyse des routes :

Routes effectives pour une instance de VM (cliquez pour agrandir)
Routes efficaces pour une instance de VM (cliquez pour agrandir)

Ajouter et supprimer des routes

Ajouter une route statique

Suivez les étapes ci-après pour créer une route statique. Au préalable, assurez-vous de connaître les points suivants :

  • Les routes statiques personnalisées ne peuvent pas avoir de plages de destination identiques ou plus spécifiques que les plages de destination utilisées par l'une des routes de sous-réseau de votre réseau VPC.

    • Lors de la connexion de deux réseaux VPC par appairage, les routes statiques personnalisées d'un réseau ne peuvent pas avoir de destinations identiques ou plus spécifiques que les routes de sous-réseau des deux réseaux. Google Cloud rejette les routes statiques personnalisées qui risquent ainsi d'entrer en conflit avec les routes de sous-réseau.
  • Pour éviter les conflits lors de l'utilisation d'un réseau en mode automatique, ne créez pas de routes statiques dont les destinations correspondent à 10.128.0.0/9. Pour plus de détails, examinez les plages d'adresses IP réservées aux réseaux en mode automatique.

  • Les destinations des routes statiques personnalisées ne peuvent chevaucher aucune plage allouée interne.

  • Assurez-vous de bien connaître les instances utilisées comme sauts suivants avant de créer une route statique personnalisée qui utilise une VM comme saut suivant. Google Cloud vérifie uniquement qu'une VM existe au moment où vous créez la route si vous choisissez une instance de saut suivant.

Console

  1. Accédez à la page "Routes" dans Google Cloud Console.
    Accéder à la page "Routes"
  2. Cliquez sur Créer une route.
  3. Spécifiez un nom et une description pour la route.
  4. Sélectionnez le réseau existant auquel la route s'appliquera.
  5. Spécifiez une plage d'adresses IP de destination pour définir la destination de la route.
  6. Spécifiez une priorité pour la route. La priorité n'est utilisée que pour déterminer l'ordre de routage lorsque des routes ont des destinations équivalentes. Consultez la section Paramètres des routes statiques pour plus d'informations.
  7. Pour rendre la route applicable uniquement à la sélection d'instances associées aux tags réseau correspondants, spécifiez ces tags dans le champ Tags des instances. Laissez le champ vide pour rendre la route applicable à toutes les instances du réseau, ou si vous sélectionnez un équilibreur de charge TCP/UDP interne comme saut suivant de la route. Les tags réseau ne s'appliquent pas aux routes dont le saut suivant est un équilibreur de charges TCP/UDP interne.
  8. Sélectionnez un saut suivant pour la route :

    • L'option Passerelle Internet par défaut crée une route vers Internet.
    • L'option Spécifier une instance vous permet de sélectionner une instance par nom. Le trafic sera acheminé vers cette instance (ou toute instance de remplacement portant le même nom dans la même zone) même si son adresse IP change.
    • L'option Spécifier l'adresse IP vous permet de saisir l'adresse IP d'une instance existante du réseau VPC. Consultez la section Sauts suivants des routes statiques pour connaître les restrictions importantes sur les adresses IP de saut suivant valides.
    • L'option Spécifier un tunnel VPN vous permet de sélectionner un tunnel Cloud VPN existant comme saut suivant. Ce tunnel doit utiliser un routage basé sur des règles ou être un VPN basé sur le routage.
    • L'option Indiquer une règle de transfert de l'équilibreur de charge TCP/UDP interne affiche une zone de texte vous permettant de spécifier un équilibreur de charge TCP/UDP interne existant comme saut suivant.

    Pour plus d'informations sur les différents types de sauts suivants, consultez la section Sauts suivants des routes statiques de la page "Présentation des routes".

  9. Cliquez sur Créer.

gcloud

Créez une route statique personnalisée à l'aide de la commande gcloud suivante :

gcloud compute routes create ROUTE_NAME \
    --destination-range=DEST_RANGE \
    --network=NETWORK \
    NEXT_HOP_SPECIFICATION

Remplacez les espaces réservés par des valeurs valides :

  • ROUTE_NAME est le nom de la route.
  • DESTINATION_RANGE représente les adresses IP de destination auxquelles cette route s'applique. La destination la plus large possible est 0.0.0.0/0.
  • NETWORK est le nom du réseau VPC qui contient la route.
  • NEXT_HOP_SPECIFICATION représente le saut suivant pour la route statique personnalisée. Vous devez spécifier une seule des options suivantes en tant que saut suivant. Pour plus d'informations sur les différents types de sauts suivants, consultez la section Sauts suivants des routes statiques de la page "Présentation des routes".
    • --next-hop-gateway=default-internet-gateway : utilisez ce saut suivant pour envoyer du trafic en dehors du réseau VPC, y compris vers Internet ou vers les adresses IP pour l'accès privé à Google.
    • --next-hop-instance=INSTANCE_NAME et --next-hop-instance-zone=ZONE : utilisez ce saut suivant pour diriger le trafic vers une instance de VM existante par nom et par zone. Le trafic est envoyé vers l'adresse IP interne principale pour l'interface réseau d'une VM située sur le même réseau que la route.
    • --next-hop-address=ADDRESS : utilisez ce saut suivant pour diriger le trafic vers l'adresse IP d'une instance de VM existante.
    • --next-hop-ilb=FORWARDING_RULE_NAME et --next-hop-ilb-region=REGION : utilisez ce saut suivant avec équilibrage de charge TCP interne pour distribuer le trafic vers l'équilibreur de charge, spécifié par le nom et la région de la règle de transfert interne. L'équilibreur de charge distribue le trafic entre les backends opérationnels. Ces opérations sont transparentes pour les clients, avec une mise en œuvre de type bump-in-the-wire.
    • --next-hop-vpn-tunnel=VPN_TUNNEL_NAME et --next-hop-vpn-tunnel-region=REGION : utilisez ce saut suivant pour diriger le trafic vers un tunnel Cloud VPN utilisant le routage statique.

Pour plus d'informations sur les différents types de sauts suivants, consultez la section Sauts suivants des routes statiques de la page "Présentation des routes".

Pour que la route statique personnalisée ne s'applique qu'à certaines VM identifiées par tag réseau, ajoutez l'option --tags et spécifiez un ou plusieurs tags réseau. Pour plus d'informations sur la manière dont les tags réseau et les routes statiques personnalisées fonctionnent ensemble, consultez la section Routes applicables de la page "Présentation des routes". Vous pouvez utiliser des tags avec n'importe quelle route statique personnalisée, à l'exception de celles qui ont une spécification de saut suivant de type --next-hop-ilb.

Consultez la documentation du SDK pour en savoir plus sur la syntaxe gcloud.

API

Créez une route statique personnalisée.

POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": VALUE
}

Remplacez les espaces réservés par des valeurs valides :

  • PROJECT_ID est l'ID du projet dans lequel votre route est créée.
  • DESTINATION_RANGE représente les adresses IP de destination auxquelles cette route s'applique. La destination la plus large possible est 0.0.0.0/0.
  • ROUTE_NAME est un nom pour la route.
  • NETWORK_NAME est le nom du réseau VPC qui contient la route.
  • La valeur (VALUE) de NEXT_HOP_SPECIFICATION représente le saut suivant de la route statique personnalisée. Pour NEXT_HOP_SPECIFICATION, vous devez spécifier un seul de ces champs de saut suivant : nextHopIp, nextHopGateway, nextHopInstance, nextHopIlb ou nextHopVpnTunnel. Pour plus d'informations sur les différents types de sauts suivants, consultez la section Sauts suivants des routes statiques de la page "Présentation des routes".

Pour plus d'informations, consultez la documentation sur la méthode routes.insert.

Supprimer des routes

Vous pouvez supprimer une route par défaut générée par le système ou toute route statique personnalisée. Pour d'autres types de routes :

  • Vous ne pouvez pas supprimer une route de sous-réseau si vous ne supprimez pas le sous-réseau correspondant.

  • Pour supprimer une route dynamique découverte par un routeur cloud, vous devez configurer le routeur pair BGP associé pour qu'il cesse de la diffuser.

Console

  1. Accédez à la page "Routes" dans Google Cloud Console.
    Accéder à la page "Routes"
  2. Cochez la case en regard de la règle à supprimer.
  3. Cliquez sur Supprimer.
  4. Cliquez à nouveau sur Supprimer pour confirmer votre choix.

gcloud

Supprimez une route statique personnalisée à l'aide de la commande gcloud suivante, en remplaçant ROUTE_NAME par le nom de la route à supprimer :

gcloud compute routes delete ROUTE_NAME

API

Supprimez une route statique personnalisée pour la retirer de votre réseau VPC.

DELETE https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME

Remplacez les espaces réservés par des valeurs valides :

  • PROJECT_ID est l'ID du projet dans lequel se trouve votre route.
  • ROUTE_NAME est le nom de la route à supprimer.

Pour plus d'informations, consultez la documentation sur la méthode routes.delete.

Ordre de priorité des opérations

Lorsque vous effectuez une demande d'ajout ou de suppression de route, vos modifications sont stockées puis propagées aux instances du réseau selon un modèle de cohérence à terme. L'état PENDING ou RUNNING indique que la demande de modification n'a pas encore été traitée. Une fois traitée, celle-ci passe à l'état DONE.

Si vous effectuez une série de demandes de modification, les modifications peuvent être appliquées dans n'importe quel ordre. Rien ne garantit que l'ordre dans lequel vous soumettez les demandes de modification corresponde à l'ordre dans lequel elles seront traitées. En outre, différentes instances peuvent prendre connaissance des modifications à différents moments.

Activer le transfert IP pour les instances

Par défaut, Google Cloud effectue une vérification stricte de la source et de la destination des paquets pour garantir les conditions suivantes :

  • L'instance de VM ne peut envoyer que des paquets dont les sources sont configurées pour correspondre à une adresse IP interne de sa propre interface sur le réseau.
  • Les paquets ne sont diffusés sur une instance que si leurs destinations correspondent à l'adresse IP de l'interface de l'instance sur le réseau.

Ainsi, par défaut, une VM ne peut pas transférer un paquet provenant d'une autre VM.

Pour être utilisable comme saut suivant d'une route, une VM doit recevoir des paquets dont les destinations diffèrent de la sienne. Étant donné que la VM transfère les paquets, leurs sources seront différentes de l'adresse IP interne de la VM. Il est donc nécessaire d'activer le transfert IP de la VM. Lorsque le transfert IP est activé, Google Cloud n'applique pas la vérification de la source et de la destination des paquets.

Console

  1. Accédez à la page des instances de VM.
    Accéder à la page "Instances de VM"
  2. Cliquez sur Créer une instance.
  3. Cliquez sur Gestion, disques, réseau, clés SSH.
  4. Cliquez sur Réseau.
  5. Sélectionnez une interface réseau en cliquant sur le bouton "Modifier".
  6. Pour l'interface réseau, sélectionnez l'option Activé dans le menu Transfert IP.
  7. Indiquez les autres paramètres d'instance.
  8. Cliquez sur Créer.

gcloud

Lorsque vous créez une instance à l'aide de gcloud, ajoutez l'option --can-ip-forward à votre commande :

gcloud compute instances create ... --can-ip-forward

API

Lorsque vous créez une instance, utilisez le champ canIpForward pour activer le transfert IP.

POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

Remplacez les espaces réservés par des valeurs valides :

  • PROJECT_ID est l'ID du projet dans lequel votre instance est créée.
  • ZONE est la zone Google Cloud dans laquelle l'instance est créée.

Pour plus d'informations, consultez la documentation sur la méthode instances.insert.

Étape suivante