Utiliser des routes

Cette page explique comment créer et gérer des routes pour les réseaux cloud privés virtuels (VPC) dans 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 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.

Répertorier les routes d'un réseau VPC

Vous pouvez utiliser Google Cloud CLI ou l'API pour répertorier et afficher les détails des types de routes suivants :

Ni les commandes de la gcloud CLI, ni les méthodes d'API n'affichent les types de routes suivants :

Pour afficher la vue complète de la route, utilisez la console Google Cloud. Pour répertorier et décrire les routes basées sur des règles, consultez la page Utiliser des 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. Dans l'onglet Routes effectives, procédez comme suit :

    • Choisissez un réseau VPC.
    • Sélectionnez une région.
  3. Cliquez sur Afficher.

  4. Vous pouvez appliquer un filtre en fonction du type de route, de la plage d'adresses IP de destination, du type de saut suivant, etc…

gcloud

Exécutez les commandes suivantes de la gcloud CLI pour répertorier et afficher les détails des routes répertoriées précédemment :

gcloud compute routes list \
    --filter="network=NETWORK_NAME" \
    --project=PROJECT_ID
gcloud compute routes describe ROUTE_NAME \
    --format="flattened()" \
    --project=PROJECT_ID

Remplacez les éléments suivants :

  • NETWORK_NAME : nom du réseau VPC.
  • PROJECT_ID : ID du projet contenant votre réseau VPC.
  • ROUTE_NAME : nom de la route.

API

Utilisez les méthodes d'API suivantes pour répertorier et afficher les détails des routes répertoriées précédemment :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant votre réseau VPC.
  • NETWORK_URL : URL du réseau VPC.
  • ROUTE_NAME : nom de la route.

Pour en savoir plus, consultez les méthodes routes.list et routes.get.

Répertorier les routes applicables à une interface réseau de VM

Vous pouvez utiliser la console Google Cloud pour afficher les routes applicables à l'interface réseau d'une VM. Cette vue réduit la liste des routes que vous pouvez utiliser pour le trafic de sortie.

Pour afficher les routes applicables à une interface réseau spécifique de VM, procédez comme suit.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Recherchez une instance de VM dans la liste. Dans le menu Autres actions à la fin de la ligne, sélectionnez Afficher les détails du réseau.

  3. Si une instance comporte plusieurs interfaces réseau, sélectionnez l'interface réseau que vous souhaitez afficher dans la section Informations sur l'interface réseau.

  4. Dans la section Détails des pare-feu et des routes, cliquez sur l'onglet Routes pour afficher toutes les routes qui s'appliquent à l'interface réseau, triées par nom de route.

Ajouter et supprimer des routes statiques

Vous pouvez ajouter ou supprimer des routes statiques et des routes basées sur des règles, qui sont locales sur votre réseau VPC. Cette section explique comment ajouter et supprimer des routes statiques locales. Pour plus d'informations sur l'ajout et la suppression de routes basées sur des règles, consultez la page Utiliser des routes basées sur des règles.

Les routes de sous-réseau sont ajoutées et supprimées automatiquement lorsque vous ajoutez ou supprimez un sous-réseau. Pour plus d'informations sur l'ajout et la suppression de sous-réseaux, consultez la section Utiliser des sous-réseaux.

Toutes les routes d'un réseau VPC connectées par l'appairage de réseaux VPC doivent être manipulées dans le réseau VPC qui exporte ces routes. Pour en savoir plus, consultez la section Options d'échange de routes.

Avant d'ajouter une route statique

Avant d'ajouter une route statique, assurez-vous de bien comprendre les points suivants :

  • Assurez-vous de bien comprendre les différents types de prochains sauts que les routes statiques peuvent utiliser. Pour obtenir des informations sur les différents types de prochains sauts des routes statiques, y compris ceux qui acceptent les destinations IPv6, consultez Prochains sauts et caractéristiques.
  • À moins que vous n'utilisiez des sous-réseaux hybrides, une route statique ne peut pas avoir de plage de destination identique ou plus spécifique que celle d'une route de sous-réseau ou d'appairage. Pour plus d'informations, consultez la section Interactions avec les routes statiques personnalisées dans la présentation des routes et la section Interactions avec les routes statiques et de sous-réseau dans la documentation de l'appairage de réseaux VPC.
  • 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 prochains sauts avant de créer une route statique personnalisée qui utilise une VM comme prochain saut. Google Cloud vérifie seulement qu'une VM existe au moment où vous créez la route si vous choisissez une instance de prochain saut.
  • Si vous créez une route à l'aide d'un tag réseau, seules les VM dotées de ce tag recevront cette route. Cependant, les VM dotées d'un tag continuent de recevoir toutes les routes qui n'ont pas de tag réseau.

Ajouter une route statique

Ajoutez une route statique à un réseau. Pour en savoir plus sur les différents types de prochains sauts des routes statiques, y compris ceux qui acceptent les destinations IPv6, consultez Prochains sauts et caractéristiques.

Console

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

    Accéder à la page Routes

  2. Cliquez sur l'onglet Gestion des routes.

  3. Cliquez sur Créer une route.

  4. Spécifiez un nom et une description pour la route.

  5. Dans la liste Réseau, sélectionnez un réseau existant pour la route.

  6. Dans la liste Type de route, sélectionnez Route statique.

  7. Dans la liste Version IP, sélectionnez la version d'adresse IP requise :

    • Pour créer une route statique IPv4, sélectionnez IPv4.
    • Pour créer une route statique IPv6, sélectionnez IPv6.
  8. Spécifiez une plage d'adresses IP de destination. La destination la plus large possible est 0.0.0.0/0 pour IPv4 ou ::/0 pour IPv6.

  9. Spécifiez une priorité pour la route. La priorité peut être comprise entre 0 (priorité la plus élevée) et 65535 (priorité la plus basse).

  10. 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.

  11. Sélectionnez un prochain saut pour la route :

    • Passerelle Internet par défaut : envoie les paquets vers Internet et les API et services Google.
    • Spécifier une instance : envoie les paquets à l'interface réseau d'une instance de VM. Spécifiez l'instance de VM par nom et par zone. Si la destination de la route est une adresse IPv6, l'instance de VM doit être de type double pile.
    • Spécifier l'adresse IP d'une instance : spécifiez l'adresse IPv4 interne principale d'une instance existante du réseau VPC.
    • Spécifier un tunnel VPN : envoie les paquets à un tunnel VPN classique existant à l'aide d'un routage statique.
    • Spécifier un nom de règle de transfert ou une adresse IP d'un équilibreur de charge réseau passthrough interne : envoie les paquets à un équilibreur de charge réseau passthrough interne qui est spécifié par son nom de règle de transfert interne (ou adresse IPv4) et sa région.
  12. Cliquez sur Créer.

gcloud

Créez une route statique personnalisée en exécutant la commande suivante de la gcloud CLI :

gcloud compute routes create ROUTE_NAME \
    --network=NETWORK \
    --destination-range=DESTINATION_RANGE \
    --priority=PRIORITY \
    NEXT_HOP_SPECIFICATION

Remplacez les éléments suivants :

  • ROUTE_NAME : nom de la route.
  • NETWORK : nom du réseau VPC contenant la route.
  • DESTINATION_RANGE : adresses IPv4 ou IPv6 de destination auxquelles cette route s'applique. La destination la plus large possible est 0.0.0.0/0 pour IPv4 ou ::/0 pour IPv6.
  • PRIORITY : priorité de la route, qui peut être comprise entre 0 (priorité la plus élevée) et 65535 (priorité la plus basse).
  • NEXT_HOP_SPECIFICATION : prochain saut de la route statique. Utilisez l'un des paramètres suivants ou une combinaison de ces paramètres :

    • --next-hop-gateway=default-internet-gateway : envoyez les paquets vers Internet et les API et services Google.
    • --next-hop-instance=INSTANCE_NAME et --next-hop-instance-zone=ZONE : envoyez les paquets à l'interface réseau d'une instance de VM existante. Spécifiez l'instance de VM par nom et par zone. Si la destination de la route est une adresse IPv6, l'instance de VM doit être de type double pile.
    • --next-hop-address=ADDRESS : spécifiez l'adresse IPv4 principale d'une instance existante du réseau VPC.
    • --next-hop-vpn-tunnel=VPN_TUNNEL_NAME et --next-hop-vpn-tunnel-region=REGION : envoyez les paquets à un tunnel VPN classique existant à l'aide d'un routage statique.
    • --next-hop-ilb=FORWARDING_RULE et --next-hop-ilb-region=REGION : envoyez les paquets à un équilibreur de charge réseau passthrough interne. Spécifiez l'instance de VM par son nom de règle de transfert interne (ou adresse IPv4) et sa région.

    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.

Pour en savoir plus sur la syntaxe de la gcloud CLI, consultez la documentation du SDK.

API

Créez une route statique personnalisée.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel votre route est créée.
  • ROUTE_NAME : nom de la route.
  • NETWORK : nom du réseau VPC contenant la route.
  • DESTINATION_RANGE : plage d'adresses IPv4 ou IPv6 de destination à laquelle cette route s'applique. La destination la plus large possible est 0.0.0.0/0 pour IPv4 ou ::/0 pour IPv6.
  • PRIORITY : priorité de la route, qui peut être comprise entre 0 (priorité la plus élevée) et 65535 (priorité la plus basse).
  • NEXT_HOP_SPECIFICATION : prochain saut de la route statique. Utilisez l'un des paramètres suivants ou une combinaison de ces paramètres :
    • nextHopGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/gateways/default-internet-gateway : envoie les paquets vers Internet et les API et services Google.
    • nextHopInstance: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME : envoie les paquets à l'interface réseau d'une instance de VM. Spécifiez l'instance de VM par nom et par zone. Si la destination de la route est une adresse IPv6, l'instance de VM doit être de type double pile.
    • nextHopIp: ADDRESS : spécifiez l'adresse IPv4 principale d'une instance existante du réseau VPC.
    • nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels/VPN_TUNNEL_NAME : envoie les paquets à un tunnel VPN classique existant à l'aide d'un routage statique.
    • nextHopIlb: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE : envoie les paquets à un équilibreur de charge réseau passthrough interne. Spécifiez l'instance de VM par son nom de règle de transfert interne (ou adresse IPv4) et sa région.

Pour que la route statique personnalisée ne s'applique qu'à certaines VM identifiées par tag réseau, ajoutez le champ 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.

Pour plus d'informations, reportez-vous à la méthode routes.insert.

Terraform

Vous pouvez créer une route statique à l'aide d'un module Terraform.

Cette route statique crée une route par défaut vers Internet.

module "google_compute_route" {
  source       = "terraform-google-modules/network/google//modules/routes"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "default"

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = "egress-inet"
      next_hop_internet = "true"
    }
  ]
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Ajouter une route IPv4 par défaut

La route statique IPv4 par défaut (0.0.0.0/0) dont la passerelle de prochain saut (next-hop-gateway) est définie sur default-internet-gateway est automatiquement configurée pour chaque réseau VPC. Suivez la procédure ci-dessous pour recréer cette route si nécessaire.

Console

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

    Accéder à la page Routes

  2. Cliquez sur l'onglet Gestion des routes.

  3. Cliquez sur Créer une route.

  4. Spécifiez un nom et une description pour la route.

  5. Sélectionnez un réseau existant pour la route.

  6. Dans le champ Plage d'adresses IP de destination, saisissez 0.0.0.0/0.

  7. Spécifiez une priorité pour la route. La priorité peut être comprise entre 0 (priorité la plus élevée) et 65535 (priorité la plus basse).

  8. Pour Saut suivant, sélectionnez Passerelle Internet par défaut.

  9. Cliquez sur Create (Créer).

gcloud

Recréez la route IPv4 par défaut pour un réseau.

gcloud compute routes create ROUTE_NAME \
    --destination-range=0.0.0.0/0 \
    --network=NETWORK \
    --next-hop-gateway=default-internet-gateway

Remplacez les éléments suivants :

  • ROUTE_NAME : nom de la route.
  • NETWORK : nom du réseau VPC contenant la route.

API

Recréez la route IPv4 par défaut pour un réseau.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "0.0.0.0/0",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "nextHopGateway": "projects/PROJECT_ID/global/gateways/default-internet-gateway"
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel votre route est créée.
  • ROUTE_NAME : nom de la route.
  • NETWORK_NAME : nom du réseau VPC contenant la route.

Ajouter une route IPv6 par défaut

La route statique IPv6 par défaut (::/0) dont la passerelle de saut suivant (next-hop-gateway) est définie sur default-internet-gateway est automatiquement configurée pour le réseau VPC lorsque vous créez un sous-réseau à double-pile avec accès aux adresses IP externes. Vous pouvez supprimer la route pour bloquer tout le trafic IPv6 des VM vers Internet. Vous pouvez recréer la route si nécessaire.

Console

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

    Accéder à la page Routes

  2. Cliquez sur l'onglet Gestion des routes.

  3. Cliquez sur Créer une route.

  4. Spécifiez un nom et une description pour la route.

  5. Sélectionnez un réseau existant pour la route.

  6. Dans le champ Plage d'adresses IP de destination, saisissez ::/0.

  7. Spécifiez une priorité pour la route. La priorité peut être comprise entre 0 (priorité la plus élevée) et 65535 (priorité la plus basse).

  8. Pour Saut suivant, sélectionnez Passerelle Internet par défaut.

  9. Cliquez sur Create (Créer).

gcloud

Recréez la route IPv6 par défaut pour un réseau.

gcloud compute routes create ROUTE_NAME \
    --destination-range=::/0 \
    --network=NETWORK \
    --next-hop-gateway=default-internet-gateway

Remplacez les éléments suivants :

  • ROUTE_NAME : nom pour la route.
  • NETWORK : nom du réseau VPC contenant la route.

API

Recréez la route IPv6 par défaut pour un réseau.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "::/0",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "nextHopGateway": "projects/PROJECT_ID/global/gateways/default-internet-gateway"
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel votre route est créée.
  • ROUTE_NAME : nom de la route.
  • NETWORK_NAME : nom du réseau VPC contenant la route.

Modifier une route statique

Vous ne pouvez pas modifier ou mettre à jour une route statique après l'avoir créée. Pour modifier une route statique, vous devez la supprimer et créer une route de remplacement.

Supprimer une route statique

Pour supprimer une route, procédez comme suit :

Console

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

    Accéder à la page Routes

  2. Cliquez sur l'onglet Gestion des routes.

  3. Cochez la case située à côté de la règle que vous souhaitez supprimer.

  4. Cliquez sur Supprimer.

  5. Cliquez à nouveau sur Supprimer pour confirmer votre choix.

gcloud

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

gcloud compute routes delete ROUTE_NAME

Remplacez ROUTE_NAME par le nom du point de la route que vous souhaitez supprimer.

API

Supprimez une route statique personnalisée pour la retirer de votre réseau VPC à l'aide de la méthode routes.delete :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve votre route.
  • ROUTE_NAME : nom de la route à supprimer

Propagation des modifications de route

Lorsque vous ajoutez ou supprimez une route statique, celle-ci se propage à toutes les régions et instances de VM de votre réseau VPC. L'état d'opération de routage PENDING ou RUNNING indique que la modification de la route est mise en file d'attente.

Après mise en file d'attente, l'état de l'opération de routage passe à DONE. Pour utiliser une nouvelle route ou arrêter d'en utiliser une ancienne, la propagation à toutes les instances de VM de votre réseau VPC et de vos réseaux d'appairage de réseaux VPC peut prendre 30 secondes supplémentaires.

Si vous ajoutez ou supprimez simultanément plusieurs routes statiques, les modifications peuvent être appliquées dans n'importe quel ordre. Rien ne garantit que l'ordre dans lequel vous soumettez les modifications de route soit l'ordre dans lequel elles sont traitées. Différentes instances peuvent prendre connaissance des modifications à différents moments.

Si vous devez apporter des modifications de route interdépendantes, vous ne devez effectuer les modifications de manière séquentielle qu'après que l'état de la modification précédente a été défini sur DONE et que 30 secondes supplémentaires sont écoulées.

Activer le transfert IP pour les instances

Par défaut, le transfert IP est désactivé et Google Cloud effectue une vérification stricte de l'adresse source. Sous réserve de la configuration effective du pare-feu de sortie, une VM peut émettre des paquets avec les sources suivantes :

  • Adresse IPv4 interne principale de la carte d'interface réseau (NIC) d'une instance.
  • Toutes les plages d'adresses IP d'alias configurées sur la carte d'interface réseau d'une instance.
  • Si une plage d'adresses IPv6 est configurée sur le sous-réseau et que l'instance est de type double pile, l'une des adresses IPv6 attribuées à la carte d'interface réseau.
  • L'adresse IP interne ou externe associée à une règle de transfert, pour l'équilibrage de charge à stratégie directe ou le transfert de protocole, si l'instance est un backend pour un équilibreur de charge réseau interne à stratégie directe, un équilibreur de charge réseau externe à stratégie directe, ou est référencée par une instance cible.

Pour être utilisable comme prochain saut d'une route, une VM doit transférer des paquets dont les sources ne correspondent pas à l'une des adresses IP ou plages d'adresses IP de la liste précédente. Pour transférer des paquets avec des adresses sources arbitraires, vous devez activer le transfert IP :

  • Lorsque vous créez ou mettez à jour une VM, suivez les instructions de la présente section pour activer le transfert IP. L'activation du transfert IP s'applique à toutes les cartes d'interface réseau (NIC) de la VM.
  • Outre les étapes de la présente section, vous devez activer le transfert IP dans le système d'exploitation invité de la VM. Pour effectuer cette opération sous Linux, définissez la valeur de l'un des paramètres de noyau suivants, ou les deux, sur 1 : net.ipv4.ip_forward (pour IPv4) ou net.ipv6.conf.all.forwarding (pour IPv6).

Pour activer le transfert IP lorsque vous créez une VM, procédez comme suit.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.

  3. Dans la section Options avancées, développez la section Mise en réseau, disques, sécurité, gestion, location unique.

  4. Développez la section Mise en réseau.

  5. Dans la section Transfert IP, cochez la case Activer.

gcloud

Lorsque vous créez une instance, 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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'instance
  • ZONE : zone Google Cloud contenant l'instance

Pour en savoir plus, consultez la section sur la méthode instances.insert.

Terraform

Vous pouvez utiliser la ressource Terraform pour créer une instance de VM sur laquelle le transfert IP est activé.

Dans cet exemple, les valeurs des arguments Terraform peuvent être modifiées.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "instance-next-hop"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  can_ip_forward = true
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Après avoir activé le transfert IP, continuez le processus de création de VM.

Pour activer le transfert IP sur une VM existante, mettez à jour la propriété d'instance canIpForward.

Étapes suivantes