Gérer les règles de routage DNS

Les règles de routage DNS orientent le trafic en fonction de la requête (par exemple, round robin ou géolocalisation). Vous pouvez configurer des règles de routage en créant des ResourceRecordSets spécials (au sens de la collection) avec des valeurs de règle de routage spéciales.

Cette page fournit des informations sur la création, la modification et la suppression de règles de routage DNS à l'aide de Cloud DNS. Avant d'utiliser cette page, familiarisez-vous avec la présentation des règles DNS.

Pour utiliser les règles de routage DNS, créez un ResourceRecordSet et choisissez l'une des règles de routage DNS suivantes à appliquer au ResourceRecordSet :

  • Règle de routage des round robin pondéré (WRR): utilisez WRR pour spécifier différentes pondérations par ResourceRecordSet pour le nom DNS. Les règles de routage DNS garantissent que le trafic est distribué en fonction des pondérations configurées. Il n'est pas possible de combiner une règle de routage WRR avec une règle de routage de géolocalisation.

  • Règle de routage de géolocalisation (GEO): utilisez la fonctionnalité GEO pour spécifier les zones géographiques sources et fournir des réponses correspondant à ces zones géographiques. La règle de routage de la géolocalisation applique une correspondance la plus proche pour l'emplacement source lorsque la source du trafic ne correspond exactement à aucun élément de la règle.

    L'outil GEO mappe la source des DNS publics et privés de la manière suivante:

    Pour le transfert entrant, les requêtes utilisent l'emplacement où la requête entre dans le réseau de cloud privé virtuel (VPC) en tant qu'emplacement source, et non l'emplacement associé à l'adresse IP du redirecteur entrant.

    Par exemple, supposons qu'une requête soit envoyée à une adresse IP de redirecteur pour us-west1, mais que votre routage est configuré de sorte que cette requête arrive à us-east1. Cloud DNS utilise us-east1 comme région source, même s'il possède une adresse de redirecteur us-west1.

Les règles de routage DNS acceptent également plusieurs adresses IP pour chaque emplacement géographique. Lorsqu'elles sont spécifiées pour un emplacement géographique donné, plusieurs adresses IP sont renvoyées en fonction d'une règle WRR de pondération égale. Il n'est pas possible de combiner une règle de routage basée sur la géolocalisation avec une règle WRR personnalisée pondérée.

Avant de commencer

Vous devez d'abord créer une zone gérée et remplir les conditions préalables à la création d'une zone.

Créer des règles de routage DNS

Pour créer un ResourceRecordSet et lui appliquer une règle de routage, procédez comme suit.

Console

  1. Dans Google Cloud Console, accédez à la page Zones Cloud DNS.

    Accéder aux zones Cloud DNS

  2. Cliquez sur le nom de la zone gérée à laquelle vous souhaitez ajouter l'enregistrement.

  3. Sur la page Détails de la zone, cliquez sur Ajouter un jeu d'enregistrements.

  4. Sur la page Créer un jeu d'enregistrements, saisissez le sous-domaine de la zone DNS dans le champ Nom DNS, par exemple mail. Le point final est automatiquement ajouté.

  5. Sélectionnez le type d'enregistrement de la ressource (par exemple, A).

  6. Dans le champ TTL, saisissez une valeur numérique correspondant à la durée de vie (Time To Live) de l'enregistrement de la ressource, c'est-à-dire le délai pendant lequel il peut être mis en cache. Cette valeur doit être un entier positif

  7. Dans le menu Unité TTL, sélectionnez l'unité de temps (par exemple, 30 minutes).

  8. Sélectionnez la règle de routage. Vous pouvez sélectionner l'option Round robin pondéré ou Basé sur la géolocalisation. Si vous ne souhaitez pas associer de règle de routage à votre enregistrement, sélectionnez Type d'enregistrement par défaut.

  9. Si vous avez sélectionné Round robin pondéré, dans la section Nouvelles données d'enregistrement gérées, procédez comme suit :

    1. Saisissez la pondération correspondant à cette sous-section des données d'enregistrement de ressources (RR). Cette pondération doit être un nombre non négatif compris entre 0,0 et 1 000,0. Le ratio du trafic acheminé vers la cible est calculé à partir du ratio du poids individuel sur le total pour toutes les pondérations.
    2. Selon le type d'enregistrement que vous avez sélectionné, saisissez les informations appropriées dans le champ suivant. Par exemple, si le type d'enregistrement est A, dans le champ Adresse IPv4, saisissez l'adresse IP numérique de l'hôte, telle que 203.0.113.1. Pour un enregistrement AAAA, saisissez l'adresse IPv6 de l'hôte, etc.
  10. Si vous avez sélectionné Basé sur la géolocalisation, dans la section Nouvelles données d'enregistrement gérées, procédez comme suit :

    1. Saisissez une région source Google Cloud valide, telle que asia-east1.
    2. Selon le type d'enregistrement que vous avez sélectionné, saisissez les informations appropriées dans le champ suivant. Par exemple, si le type d'enregistrement est A, dans le champ Adresse IPv4, saisissez l'adresse IP numérique de l'hôte, telle que 203.0.113.1. Pour un enregistrement AAAA, saisissez l'adresse IPv6 de l'hôte, etc.
  11. Pour saisir des données supplémentaires en fonction du type d'enregistrement sélectionné, cliquez sur Ajouter un élément. Le tableau suivant spécifie le type d'enregistrement et les données supplémentaires que vous pouvez saisir.

    Type d'enregistrement concerné Saisir des données supplémentaires
    A Adresses IPv4
    AAAA Adresses IPv6
    CNAME Noms canoniques
    MX Enregistrements Mail Exchange
    SRV Hôte/port (<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="fbj0fi6rS3pPqxfn3YD3etONK6A9Q8tQ5MUfKCg7jl5ONxJ2KV+27oDWYJ43g//U">RFC 2782) </aclass="external">
    TXT Données textuelles
  12. Pour saisir des données RR gérées supplémentaires, cliquez sur Ajouter des données rrdata gérées.

  13. Cliquez sur Create (Créer).

gcloud

Exécutez la commande gcloud beta dns record-sets create :

gcloud beta dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing_policy_type=ROUTING_POLICY_TYPE \
    --routing_policy_data=ROUTING_POLICY_DATA

Remplacez les éléments suivants :

  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, service.example.com)
  • TTL: la valeur TTL en secondes que le résolveur met en cache ce ResourceRecordSet, telle que 30
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A

    Pour obtenir la liste des types d'enregistrements compatibles, consultez la section Sélectionner des types d'enregistrements de ressources.

  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.

  • ROUTING_POLICY_TYPE: type de règle de routage

    Saisissez WRR pour la round robin pondérée, ou GEO pour la géolocalisation. Vous ne pouvez pas modifier ce champ une fois qu'un type de stratégie a été choisi. vous ne pouvez que supprimer la stratégie et en ajouter une nouvelle avec le type différent.

  • ROUTING_POLICY_DATA: données de la règle de routage

    • Pour --routing_policy_type=WRR, saisissez une liste au format ${weight_percent}=${rrdatas}, délimitée par des points-virgules, telle que .8=10.128.1.1;.2=10.130.1.1. Spécifiez la pondération sous forme de nombre décimal non négatif.
    • Pour --routing_policy_type=GEO, saisissez une liste au format ${region}=${rrdatas} délimitée par des points-virgules, telle que asia-east1=10.128.1.1;us-central1=10.130.1.1. Vous pouvez spécifier plusieurs adresses IP pour une seule région en répétant la région.

API

Exécutez la méthode resourceRecordSets.create :

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "geoPolicy": {
              "item": [
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
               "failover": [
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     },
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     }
               ],

            }
      }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.
  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, service.example.com)
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A
  • TTL: la valeur TTL en secondes que le résolveur met en cache ce ResourceRecordSet, telle que 30
  • LOCATION: géolocalisation pour laquelle vous devez créer la règle, par exemple asia-east
  • RR_DATA: valeur arbitraire associée au jeu d'enregistrements de ressources, telle que198.51.100.5 ; vous pouvez également saisir plusieurs valeurs, rrdata1 rrdata2 rrdata3, comme198.51.100.1 à203.0.113.1...

Mettre à jour les règles de routage DNS

Pour mettre à jour la règle de routage d'un ResourceRecordSet, procédez comme suit.

Console

  1. Dans Cloud Console, accédez à la page Zones Cloud DNS.

    Accéder aux zones Cloud DNS

  2. Cliquez sur la zone pour laquelle vous souhaitez mettre à jour la règle de routage de ResourceRecordSet.

  3. Sur la page Détails de la zone, à côté du ResourceRecordSet que vous souhaitez mettre à jour, cliquez sur Modifier.

  4. Après avoir effectué les mises à jour nécessaires, cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud beta dns record-sets update :

gcloud beta dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing_policy_type=ROUTING_POLICY_TYPE \
    --routing_policy_data=ROUTING_POLICY_DATA

Remplacez les éléments suivants :

  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, service.example.com)
  • TTL: la valeur TTL en secondes que le résolveur met en cache ce ResourceRecordSet, telle que 30
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A

    Pour obtenir la liste des types d'enregistrements compatibles, consultez la section Sélectionner des types d'enregistrements de ressources.

  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.

  • ROUTING_POLICY_TYPE: type de stratégie

    Vous pouvez saisir WRR pour round robin pondéré ou GEO pour la géolocalisation. Vous ne pouvez pas modifier ce champ une fois qu'un type de stratégie a été choisi. La seule façon de la modifier est de supprimer la stratégie et d'en ajouter une autre avec le type différent.

  • ROUTING_POLICY_DATA: données de la règle de routage

    • Pour --routing_policy_type=WRR, saisissez une liste au format ${weight_percent}:${rrdatas}, délimitée par des points-virgules, telle que .8=203.0.113.1;.2=198.51.100.1. Spécifiez la pondération sous forme de nombre décimal non négatif.
    • Pour --routing_policy_type=GEO, saisissez une liste au format ${region}=${IP_address} délimitée par des points-virgules, telle que asia-east1=198.51.100.1;us-central1=203.0.113.1. Vous pouvez spécifier plusieurs adresses IP pour une seule région en répétant la région.

API

Utilisez la méthode resourceRecordSets.patch. Spécifiez une seule des options rrset.rrdatas ou rrset.routingPolicy. Si vous spécifiez routingPolicy, vous devez spécifier le nouveau champ routingPolicy dans son intégralité.

PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "geoPolicy": {
              "item": [
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
               "failover": [
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     },
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     }
               ],

            }
      }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.
  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, service.example.com)
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A
  • TTL: la valeur TTL en secondes que le résolveur met en cache ce ResourceRecordSet, telle que 30
  • LOCATION: géolocalisation pour laquelle vous devez créer la règle, par exemple asia-east
  • RR_DATA : valeur arbitraire associée au jeu d'enregistrements de ressources, telle que 198.51.100.5 ; vous pouvez également saisir plusieurs valeurs, rrdata1 rrdata2 rrdata3, comme 198.51.100.5 203.0.113.1...

Supprimer des règles de routage DNS

Pour supprimer une règle de routage, vous devez supprimer le ResourceRecordSet qui contient la règle de routage. Pour cela, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Zones Cloud DNS.

    Accéder aux zones Cloud DNS

  2. Cliquez sur la zone pour laquelle vous souhaitez supprimer le ResourceRecordSet.

  3. Sur la page Détails de la zone, cochez la case située à côté du nom DNS du ResourceRecordSet que vous souhaitez supprimer.

  4. Cliquez sur Supprimer les jeux d'enregistrements.

gcloud

Exécutez la commande gcloud beta dns record-sets delete :

gcloud beta dns record-sets delete RRSET_NAME
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \

Remplacez les éléments suivants :

  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, service.example.com)
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A

    Pour obtenir la liste des types d'enregistrements compatibles, consultez la section Sélectionner des types d'enregistrements de ressources.

  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.

API

Exécutez la méthode resourceRecordSets.delete :

DELETE https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • MANAGED_ZONE : zone gérée avec laquelle ce ResourceRecordSet est affilié, telle que my-zone-name. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée comme suffixe.
  • RRSET_NAME : nom DNS correspondant aux requêtes entrantes avec le nom DNS de cette zone en tant que suffixe (par exemple, test.example.com)
  • RRSET_TYPE: type d'enregistrement de ressource de ce ResourceRecordSet, tel que A

Étape suivante

  • Pour créer, mettre à jour, répertorier et supprimer des zones gérées, consultez la page Gérer les zones.
  • Pour trouver des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation de Cloud DNS, consultez la page Dépannage.
  • Pour en savoir plus sur Cloud DNS, consultez la page Présentation de Cloud DNS.