Gérer les stratégies de routage DNS et les vérifications de l'état

Les règles de routage DNS orientent le trafic en fonction du type de requête (par exemple, round robin (à tour de rôle) pondéré ou géolocalisation). Vous pouvez configurer ces règles en créant des jeux d'enregistrements de ressources contenant des valeurs de règles de routage spécifiques. Ces valeurs déterminent le mode de routage du trafic. Par exemple, dans une règle round robin (à tour de rôle) pondéré, chaque jeu d'enregistrements de ressources est associé à une pondération qui affecte la répartition du trafic.

Cette page fournit des informations sur la création, la modification et la suppression de règles de routage DNS et l'activation de la vérification de l'état à 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 jeu d'enregistrements de ressources et choisissez l'une des règles de routage DNS suivantes à appliquer au jeu d'enregistrements de ressources:

  • Règle de routage round robin (à tour de rôle) (WRR): utilisez WRR pour spécifier différentes pondérations par jeu d'enregistrements de ressources 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 géolocalisation sources et fournir des réponses correspondant à ces zones géographiques. La règle de routage avec 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.

    La fonctionnalité GEO mappe la source des DNS publics et privés de la manière suivante :

    • Pour un DNS public: l'adresse IP source ou le mécanisme d'extension pour le sous-réseau client DNS (EDNS) de la requête est utilisé.
    • Pour les DNS privés, le sous-réseau client EDNS n'est pas utilisé. Au lieu de cela, l'emplacement de la requête est celui du système qui envoie les paquets pour la requête :
      • Pour les requêtes provenant d'une instance de machine virtuelle (VM) dotée d'une interface réseau dans un réseau VPC, l'emplacement de la requête est la région qui contient la VM.
      • Pour les requêtes reçues par un point d'entrée de règle de serveur entrant, l'emplacement de la requête est la région du tunnel Cloud VPN, du rattachement de VLAN Cloud Interconnect ou de l'appareil de routeur ayant reçu les paquets pour la requête. La région de l'adresse IP du point d'entrée n'est pas pertinente. Pour en savoir plus, consultez la section Réseau et région pour les requêtes entrantes de la page "Règles de serveur DNS".
  • Règle de routage avec géorepérage: utilisez le géorepérage pour limiter le trafic vers une géolocalisation spécifique, même si tous les points de terminaison de cette géolocalisation sont non opérationnels. Pour en savoir plus sur le géorepérage, consultez la page Règles de routage avec géorepérage.

  • Règle de routage avec basculement : utilisez le basculement pour définir des configurations de sauvegarde actives. Pour en savoir plus, consultez la section Règles de routage avec basculement.

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.

Vérifications d'état

Cloud DNS accepte les vérifications d'état pour les équilibreurs de charge réseau passthrough internes et les équilibreurs de charge d'application internes pour lesquels l'accès mondial est activé, ainsi que pour les équilibreurs de charge d'application internes interrégionaux.

Après avoir configuré un équilibreur de charge réseau passthrough interne, configurez la règle de routage appropriée dans Cloud DNS à l'aide de la console Google Cloud, de gcloud CLI ou de l'API, en spécifiant l'équilibreur de charge réseau passthrough interne. Cette étape implique la configuration de plusieurs buckets WRR ou GEO, et chaque bucket peut contenir plusieurs équilibreurs de charge réseau passthrough internes.

Pour les équilibreurs de charge réseau passthrough internes, Cloud DNS vérifie les informations d'état de chaque instance backend de l'équilibreur de charge pour déterminer si celui-ci est opérationnel ou non. Cloud DNS applique un seuil par défaut de 20 % et, si au moins 20% des instances backend sont opérationnelles, le point de terminaison de l'équilibreur de charge est considéré comme opérationnel. Les règles de routage DNS marquent le point de terminaison comme opérationnel ou non opérationnel en fonction de ce seuil, acheminant le trafic en conséquence.

Pour les équilibreurs de charge d'application internes et interrégionaux internes, Cloud DNS vérifie l'état général de l'équilibreur de charge d'application interne et permet à l'équilibreur de charge d'application interne de vérifier lui-même l'état des instances backend.

Lorsque le point de terminaison est marqué comme non opérationnel, les conditions suivantes peuvent se produire:

  • Si plusieurs adresses IP virtuelles sont programmées sur une règle, seules les adresses IP virtuelles opérationnelles sont renvoyées.
  • Si toutes les adresses IP virtuelles programmées sur un bucket de règles ne sont pas opérationnelles, cette ligne de règle échoue. Le comportement suivant s'applique :

    • Pour une règle WRR, Cloud DNS distribue le trafic vers le bucket de pondération opérationnel le plus proche.
    • Pour une règle GEO sur laquelle le cloisonnement n'est pas activé, le trafic passe à la zone géographique la plus proche.
    • Pour une règle avec géorepérage sur laquelle le cloisonnement est activé, les adresses IP virtuelles dans le bucket le plus proche géographiquement sont renvoyées telles quelles.
    • Pour une règle avec basculement, Cloud DNS bascule le trafic vers un bucket de basculement.
    • Si aucun bucket de la règle n'est opérationnel, Cloud DNS se comporte comme si tous les points de terminaison étaient opérationnels.

Avant de commencer

Avant de démarrer cette procédure, vérifiez que vous avez bien :

  1. créé une zone gérée et suivi les étapes préalables à la création d'une zone ;
  2. Configurez l'un des équilibreurs de charge internes suivants :
  3. créé une règle de transfert pour l'équilibreur de charge interne ;
  4. configuré la vérification d'état pour l'équilibreur de charge interne.

Créer des règles de routage DNS

Pour créer un jeu d'enregistrements de ressources et lui appliquer une règle de routage, procédez comme suit.

Console

Démarrer la configuration

  1. Dans la console Google Cloud, 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 avec une règle de routage.

Données de base

  1. Sur la page Créer un jeu d'enregistrements avec une règle de routage, saisissez le sous-domaine de la zone DNS (par exemple, mail) dans le champ Nom DNS. Le point final est automatiquement ajouté.

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

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

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

  5. Cliquez sur Suivant.

Type de règle de routage

  1. Dans la liste Règle de routage, sélectionnez Round robin pondéré, Géolocalisation ou Basculement.
  2. Cliquez sur Suivant.

Données de règle de routage

  1. Si vous avez sélectionné Round robin pondéré, procédez comme suit dans la section Données de routage pour les règles de round robin pondéré :

    1. Dans le champ Pondéré, 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. Dans la section Ajouter une cible dont l'état a été vérifié, procédez comme suit:

      1. Dans la liste Projet, sélectionnez le projet dans lequel se trouve la règle de transfert.
      2. Dans la liste Type, sélectionnez Équilibreur de charge réseau passthrough interne, équilibreur de charge d'application interne ou équilibreur de charge d'application interne interrégional.
      3. Dans la liste Règle de transfert, sélectionnez une règle de transfert.

        La règle de transfert spécifie une adresse IP interne, un port, ainsi qu'un service de backend régional ou un proxy HTTP(S). Pour que Cloud DNS fonctionne avec les vérifications d'état, vous devez activer l'accès mondial pour l'équilibreur de charge interne.

    3. Pour autoriser les adresses IPv4 sans vérification d'état, sélectionnez Autoriser les adresses IPv4 sans vérification de l'état.

    4. Dans le champ adresse IPv4, saisissez une adresse IPv4.

  2. Si vous avez sélectionné Géolocalisation, procédez comme suit :

    1. Pour l'option Géorepérage, sélectionnez Désactivé ou Activé. L'activation du géorepérage limite le trafic à une géolocalisation spécifique, même si tous les points de terminaison de cette géolocalisation sont non opérationnels.
    2. Dans le menu Région source, sélectionnez une région source Google Cloud valide (par exemple asia-east1).
    3. Dans la section Ajouter une cible dont l'état a été vérifié, procédez comme suit:

      1. Dans la liste Projet, sélectionnez le projet dans lequel se trouve la règle de transfert.
      2. Dans la liste Type, sélectionnez Équilibreur de charge réseau passthrough interne, équilibreur de charge d'application interne ou équilibreur de charge d'application interne interrégional.
      3. Dans la liste Règle de transfert, sélectionnez une règle de transfert.

        La règle de transfert spécifie une adresse IP interne, un port, ainsi qu'un service de backend régional ou un proxy HTTP(S). Pour que Cloud DNS fonctionne avec les vérifications d'état, vous devez activer l'accès mondial pour l'équilibreur de charge interne.

    4. Pour autoriser les adresses IPv4 sans vérification d'état, sélectionnez Autoriser les adresses IPv4 sans vérification de l'état.

    5. Dans le champ adresse IPv4, saisissez une adresse IPv4.

  3. Si vous avez sélectionné Basculement, procédez comme suit :

    1. Dans le champ Trafic minime (%), saisissez le pourcentage de trafic envoyé aux cibles de basculement, quel que soit l'état de la vérification de l'état d'état des cibles principales.
    2. Dans la section Cibles principales, procédez comme suit:

      1. Dans la liste Projet, sélectionnez le projet dans lequel se trouve la règle de transfert.
      2. Dans la liste Type, sélectionnez Équilibreur de charge réseau passthrough interne, équilibreur de charge d'application interne ou équilibreur de charge d'application interne interrégional.
      3. Dans la liste Règle de transfert, sélectionnez une règle de transfert.

        La règle de transfert spécifie une adresse IP interne, un port, ainsi qu'un service de backend régional ou un proxy HTTP(S). Pour que Cloud DNS fonctionne avec les vérifications d'état, vous devez activer l'accès mondial pour l'équilibreur de charge interne.

    3. Dans la section Règle de géolocalisation des sauvegardes, procédez comme suit:

      1. Pour l'option Géorepérage, sélectionnez Désactivé ou Activé. L'activation du géorepérage limite le trafic à une géolocalisation spécifique, même si tous les points de terminaison de cette géolocalisation sont non opérationnels.
      2. Dans le menu Région source, sélectionnez une région source Google Cloud valide (par exemple asia-east1).
      3. Dans la section Ajouter une cible dont l'état a été vérifié, procédez comme suit:

        1. Dans la liste Projet, sélectionnez le projet dans lequel se trouve la règle de transfert.
        2. Dans la liste Type, sélectionnez Équilibreur de charge réseau passthrough interne, équilibreur de charge d'application interne ou équilibreur de charge d'application interne interrégional.
        3. Dans la liste Règle de transfert, sélectionnez une règle de transfert.

        Lorsqu'aucune adresse IP principale n'est opérationnelle, le trafic est automatiquement géré conformément à la règle de géolocalisation de sauvegarde.

    4. Pour autoriser les adresses IPv4 sans vérification d'état, sélectionnez Autoriser les adresses IPv4 sans vérification de l'état.

    5. Dans le champ adresse IPv4, saisissez une adresse IPv4.

  4. Cliquez sur Suivant.

Vérifier et créer

  1. Cliquez sur Vérifier.
  2. Vérifiez la configuration de la règle de routage de votre jeu d'enregistrements Cloud DNS.
  3. Facultatif : Cliquez sur Equivalent comment line (Ligne de commentaire équivalente) pour afficher la commande gcloud CLI qui permet de créer ce jeu d'enregistrements avec une règle de routage.
  4. Cliquez sur Créer.

gcloud

Un ResourceRecordSet peut contenir une routingPolicy ou une rrdatas, mais pas les deux. Il est possible de passer de rrdatas à routingPolicy lors de la mise à jour de ResourceRecordSets. Par exemple, si vous souhaitez mettre à jour un ResourceRecordSet contenant des rrdatas, vous pouvez supprimer le rrdatas et ajouter un routingPolicy au même ResourceRecordSet.

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

Exécutez la commande gcloud dns record-sets create.

Pour les règles de géolocalisation

gcloud dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=GEO \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-health-checking

Pour les règles WRR

gcloud dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=WRR \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-health-checking

Pour les règles avec géorepérage

gcloud dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=GEO \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-geo-fencing
    --enable-health-checking

Pour les règles avec basculement

gcloud dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=FAILOVER \
    --enable-geo-fencing \
    --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
    --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \
    --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
    --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
    --enable-health-checking

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 : valeur TTL en secondes que le résolveur met en cache pour ce ResourceRecordSet (par exemple 30).
  • RRSET_TYPE : type d'enregistrement de ressources de ce ResourceRecordSet (par exemple 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 à laquelle ce ResourceRecordSet est affilié, par exemple service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée en tant que suffixe

  • ROUTING_POLICY_TYPE : type de règle de routage

    Saisissez WRR pour la règle de routage round robin pondéré, GEO pour la règle de géolocalisation et FAILOVER pour la règle de basculement. Vous ne pouvez pas modifier ce champ une fois qu'un type de règle a été choisi. Vous pouvez uniquement supprimer la règle et ajouter une règle de 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. Le ratio du trafic acheminé vers la cible est calculé à partir du ratio du poids individuel sur le total pour toutes les pondérations. Les noms de règles de transfert sont des valeurs acceptées et entraînent l'activation de la vérification d'état.
    • 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 même région en ajoutant des adresses IP séparées par des virgules. Les noms de règles de transfert sont des valeurs acceptées et entraînent l'activation de la vérification d'état.
    • Pour --routing-policy-type=FAILOVER, saisissez le nom de la règle de transfert que vous avez créé au format ${region}=${Forwarding rule name}.

    Vous devez spécifier à la fois le type de règle de routage et les données de la règle de routage. Si vous spécifiez une option, vous ne pouvez pas laisser l'autre vide.

  • --enable-geo-fencing : pour les règles de routage GEO, cette option permet de déterminer si le trafic doit basculer sur plusieurs régions lorsque tous les points de terminaison d'une région sont marqués comme non opérationnels. Lorsque cette option est définie, Cloud DNS dirige toujours les requêtes vers la région la plus proche, même si tous les points de terminaison de cette région sont non opérationnels. Utilisez --no-enable-geo-fencing pour désactiver le géorepérage. Lorsque cette règle n'est pas définie, Cloud DNS dirige les requêtes vers la région la plus proche si tous les points de terminaison d'une région sont non opérationnels. La valeur par défaut est false.

  • ROUTING_POLICY_PRIMARY_DATA : cible principale à utiliser pour les règles de routage FAILOVER. Cette cible doit être une référence à une ou plusieurs règles de transfert (par exemple, forwarding-rule-1). Tant qu'au moins une de ces règles de transfert est opérationnelle, les adresses IP de toutes les règles de transfert opérationnelles sont utilisées pour répondre aux requêtes.

  • ROUTING_POLICY_BACKUP_DATA : cible de sauvegarde à utiliser pour les règles de routage FAILOVER. Ces cibles sont utilisées quand toutes les règles de transfert spécifiées dans --routing-policy-primary-data sont non opérationnelles. Cloud DNS accepte uniquement les cibles de sauvegarde basées sur la géolocalisation. Le format de ce champ correspond à celui des --routing-policy-data lorsque --routing-policy-type = 'GEO' (par exemple asia-east1=forwarding-rule-2).

  • ROUTING_POLICY_BACKUP_DATA_TYPE : pour les règles de routage FAILOVER, c'est le type de règle de routage que les données de sauvegarde utilisent. Il doit s'agir de GEO.

  • BACKUP_DATA_TRICKLE_RATIO : le ratio de trafic à envoyer aux cibles de sauvegarde, même si les cibles principales sont opérationnelles. Le ratio doit être entre 0 et 1 (par exemple 0.1). La valeur par défaut est 0.

  • --enable-health-checking : l'option permettant d'activer la vérification d'état. Lorsque vous utilisez cette option, vous devez fournir le nom de la règle de transfert plutôt que l'adresse IP dans le champ --routing-policy-data.

API

Exécutez la méthode resourceRecordSets.create.

Pour les règles de géolocalisation

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
            "name": "RRSET_NAME",
            "type": "RRSET_TYPE",
            "ttl": TTL,
            "routingPolicy": {
          "geo": {
              "items": [
              {
                  "location": "LOCATION",
                  "healthCheckedTargets": {
                     "internalLoadBalancers": [
                      {
                       "loadBalancerType": "LOAD_BALANCER_TYPE"
                       "ipAddress": "IP_ADDRESS"
                       "port" : "PORT_NUMBER"
                       "ipProtocol": "IP_PROTOCOL"
                       "networkUrl": "NETWORK_URL"
                       "project": "PROJECT"
                       "region": "REGION"
                      }
                     ]
                  }
              },
              {
                  "location": "LOCATION",
                  "healthCheckedTargets": {
                     "internalLoadBalancers": [
                      {
                       "loadBalancerType": "LOAD_BALANCING_TYPE"
                       "ipAddress": "IP_ADDRESS"
                       "port" : "PORT_NUMBER"
                       "ipProtocol": "IP_PROTOCOL"
                       "networkUrl": "NETWORK_URL"
                       "project": "PROJECT"
                       "region": "REGION"
                      }
                     ]
                  }
              },
              }
           ]

        }
     }
}

Pour les règles WRR

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
        "type": "RRSET_TYPE",
        "ttl": TTL,
  "routingPolicy": {
    "wrr": {
      "items": [
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port" : "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port" : "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT"
                "region": "REGION"
              }
            ]
          }
        },
      ]
    }
  }
}

Pour le basculement (règles de géolocalisation)

Avec l'option de basculement, Cloud DNS accepte uniquement les règles GEO.

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
        "type": "RRSET_TYPE",
        "ttl": TTL,
  "routingPolicy": {
    "primaryBackup": {
      "trickleTraffic": TRICKLE_TRAFFIC,
      "primaryTargets": {
        "internalLoadBalancers": [
          {
            "ipAddress": "IP_ADDRESS"
            "ipProtocol": "IP_PROTOCOL"
            "loadBalancerType": "LOAD_BALANCER_TYPE"
            "networkUrl": "NETWORK_URL"
            "port": "PORT_NUMBER"
            "project": "PROJECT"
            "region": "REGION"
           }
         ]
       },
       "backupGeoTargets": {
         "enableFencing": ENABLE_FENCING,
         "items": [
           {
             "location": "LOCATION",
             "rrdatas": [
               "RRDATA"
             ]
           },
           {
             "location": "LOCATION",
             "rrdatas": [
               "RRDATA"
             ]
           }
         ]
       }
     },
   }
}

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 ressources de ce ResourceRecordSet (par exemple A)
  • TTL : valeur TTL en secondes que le résolveur met en cache pour ce ResourceRecordSet (par exemple 30).
  • TRICKLE_TRAFFIC : le ratio de trafic à envoyer aux cibles de sauvegarde, même si les cibles principales sont opérationnelles. Le ratio doit être entre 0 et 1 (par exemple 0.1).
  • ENABLE_FENCING : pour les règles de routage GEO, cela permet de déterminer si le trafic doit basculer sur plusieurs régions si tous les points de terminaison d'une région sont non opérationnels. Lorsque cette option est définie, Cloud DNS dirige toujours les requêtes vers la région la plus proche, même si tous les points de terminaison de cette région sont non opérationnels. Si elle n'est pas définie, Cloud DNS dirige les requêtes vers la région la plus proche lorsque tous les points de terminaison d'une région sont non opérationnels. La valeur par défaut est false.
  • LOCATION : pour les règles GEO, la géolocalisation pour laquelle vous devez créer la règle (par exemple asia-east1).
  • WEIGHT : pour les règles WRR, une liste délimitée par des points-virgules au format ${weight_percent}=${rrdatas} (par exemple .8=10.128.1.1;.2=10.130.1.1). Spécifiez la pondération sous forme de nombre décimal non négatif.
  • RR_DATA : valeur arbitraire associée au jeu d'enregistrement de ressources, telle que 198.51.100.5 ; vous pouvez également saisir plusieurs valeurs, rrdata1 rrdata2 rrdata3 (par exemple 198.51.100.1 203.0.113.1…).
  • LOAD_BALANCER_TYPE : type d'équilibreur de charge (par exemple regionalL4ilb)
  • IP_ADDRESS : adresse IP utilisée par la règle de transfert
  • PORT_NUMBER : numéro de port
  • IP_PROTOCOL : définit le protocole utilisé pour la vérification d'état ; les options valides sont tcp et udp.
  • NETWORK_URL : URL de réseau à laquelle s'applique cette règle de transfert
  • REGION : région dans laquelle vous avez créé la règle de transfert

Mettre à jour les règles de routage DNS

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

Console

  1. Dans la console Google Cloud, 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 du jeu d'enregistrements de ressources.

  3. Sur la page Détails de la zone, à côté du jeu d'enregistrements de ressources 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 dns record-sets update :

Pour les règles de géolocalisation

gcloud dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=GEO \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-health-checking

Pour les règles WRR

gcloud dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=WRR \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-health-checking

Pour les règles avec géorepérage

gcloud dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=GEO \
    --routing-policy-data=ROUTING_POLICY_DATA \
    --enable-geo-fencing
    --enable-health-checking

Pour les règles avec basculement

gcloud dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=FAILOVER \
    --enable-geo-fencing \
    --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
    --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
    --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
    --enable-health-checking

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 : valeur TTL en secondes que le résolveur met en cache pour ce ResourceRecordSet (par exemple 30).
  • RRSET_TYPE : type d'enregistrement de ressources de ce ResourceRecordSet (par exemple 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 à laquelle ce ResourceRecordSet est affilié, par exemple service-zone. Le nom de ce ResourceRecordSet doit avoir le nom DNS de la zone gérée en tant que suffixe

  • ROUTING_POLICY_TYPE : type de règle de routage

    Saisissez WRR pour la règle de routage round robin pondéré, GEO pour la règle de géolocalisation et FAILOVER pour la règle de basculement. Vous ne pouvez pas modifier ce champ une fois qu'un type de règle a été choisi. Vous pouvez uniquement supprimer la règle et ajouter une règle de 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. Le ratio du trafic acheminé vers la cible est calculé à partir du ratio du poids individuel sur le total pour toutes les pondérations. Les noms de règles de transfert sont des valeurs acceptées et entraînent l'activation de la vérification d'état.
    • 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 même région en ajoutant des adresses IP séparées par des virgules. Les noms de règles de transfert sont des valeurs acceptées et entraînent l'activation de la vérification d'état.
    • Pour --routing-policy-type=FAILOVER, saisissez le nom de la règle de transfert que vous avez créé au format ${region}=${Forwarding rule name}.

    Vous devez spécifier à la fois le type de règle de routage et les données de la règle de routage. Si vous spécifiez une option, vous ne pouvez pas laisser l'autre vide.

  • --enable-geo-fencing : pour les règles de routage GEO, cette option permet de déterminer si le trafic doit basculer sur plusieurs régions lorsque tous les points de terminaison d'une région sont marqués comme non opérationnels. Lorsque cette option est définie, Cloud DNS dirige toujours les requêtes vers la région la plus proche, même si tous les points de terminaison de cette région sont non opérationnels. Utilisez --no-enable-geo-fencing pour désactiver le géorepérage. Lorsque cette règle n'est pas définie, Cloud DNS dirige les requêtes vers la région la plus proche si tous les points de terminaison d'une région sont non opérationnels. La valeur par défaut est false.

  • ROUTING_POLICY_PRIMARY_DATA : cible principale à utiliser pour les règles de routage FAILOVER. Cette cible doit être une référence à une ou plusieurs règles de transfert (par exemple, forwarding-rule-1). Tant qu'au moins une de ces règles de transfert est opérationnelle, les adresses IP de toutes les règles de transfert opérationnelles sont utilisées pour répondre aux requêtes.

  • ROUTING_POLICY_BACKUP_DATA : cible de sauvegarde à utiliser pour les règles de routage FAILOVER. Ces cibles sont utilisées quand toutes les règles de transfert spécifiées dans --routing-policy-primary-data sont non opérationnelles. Cloud DNS accepte uniquement les cibles de sauvegarde basées sur la géolocalisation. Le format de ce champ correspond à celui des --routing-policy-data lorsque --routing-policy-type = 'GEO' (par exemple asia-east1=forwarding-rule-2).

  • BACKUP_DATA_TRICKLE_RATIO : le ratio de trafic à envoyer aux cibles de sauvegarde, même si les cibles principales sont opérationnelles. Le ratio doit être entre 0 et 1 (par exemple 0.1). La valeur par défaut est 0.

  • --enable-health-checking : active la vérification de l'état des règles de transfert qui sont fournies en tant que rrdata aux --routing-policy-data.

API

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

Pour les règles GEO, utilisez la méthode suivante :

PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
            "name": "RRSET_NAME",
            "type": "RRSET_TYPE",
            "ttl": TTL,
            "routingPolicy": {
          "geo": {
              "items": [
              {
                  "location": "LOCATION",
                  "healthCheckedTargets": {
                     "internalLoadBalancers": [
                      {
                       "loadBalancerType": "LOAD_BALANCER_TYPE"
                       "ipAddress": "IP_ADDRESS"
                       "port" : "PORT_NUMBER"
                       "ipProtocol": "IP_PROTOCOL"
                       "networkUrl": "NETWORK_URL"
                       "project": "PROJECT"
                       "region": "REGION"
                      }
                     ]
                  }
              },
              {
                  "location": "LOCATION",
                  "healthCheckedTargets": {
                     "internalLoadBalancers": [
                      {
                       "loadBalancerType": "LOAD_BALANCING_TYPE"
                       "ipAddress": "IP_ADDRESS"
                       "port" : "PORT_NUMBER"
                       "ipProtocol": "IP_PROTOCOL"
                       "networkUrl": "NETWORK_URL"
                       "project": "PROJECT"
                       "region": "REGION"
                      }
                     ]
                  }
              },
              }
           ]

        }
     }
}

Pour les règles WRR, utilisez la méthode suivante :

PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "wrrPolicy": {
              "item": [
                    {
                        "weight": WEIGHT,
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "weight": WEIGHT,
                        "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 ressources de ce ResourceRecordSet (par exemple A)
  • TTL : valeur TTL en secondes que le résolveur met en cache pour ce ResourceRecordSet (par exemple 30).
  • TRICKLE_TRAFFIC : le ratio de trafic à envoyer aux cibles de sauvegarde, même si les cibles principales sont opérationnelles. Le ratio doit être entre 0 et 1 (par exemple 0.1).
  • ENABLE_FENCING : pour les règles de routage GEO, cela permet de déterminer si le trafic doit basculer sur plusieurs régions si tous les points de terminaison d'une région sont non opérationnels. Lorsque cette option est définie, Cloud DNS dirige toujours les requêtes vers la région la plus proche, même si tous les points de terminaison de cette région sont non opérationnels. Si elle n'est pas définie, Cloud DNS dirige les requêtes vers la région la plus proche lorsque tous les points de terminaison d'une région sont non opérationnels. La valeur par défaut est false.
  • LOCATION : pour les règles GEO, la géolocalisation pour laquelle vous devez mettre à jour la règle (par exemple asia-east1).
  • WEIGHT : pour les règles WRR, une liste délimitée par des points-virgules au format ${weight_percent}=${rrdatas} (par exemple .8=10.128.1.1;.2=10.130.1.1). Spécifiez la pondération sous forme de nombre décimal non négatif.
  • RR_DATA : valeur arbitraire associée au jeu d'enregistrement de ressources, telle que 198.51.100.5 ; vous pouvez également saisir plusieurs valeurs, rrdata1 rrdata2 rrdata3 (par exemple 198.51.100.1 203.0.113.1…).
  • LOAD_BALANCER_TYPE : type d'équilibreur de charge (par exemple regionalL4ilb)
  • IP_ADDRESS : adresse IP utilisée par la règle de transfert
  • PORT_NUMBER : numéro de port
  • IP_PROTOCOL : définit le protocole utilisé pour la vérification d'état ; les options valides sont tcp et udp.
  • NETWORK_URL : URL de réseau à laquelle s'applique cette règle de transfert
  • REGION : région dans laquelle vous avez créé la règle de transfert

Supprimer des règles de routage DNS

Pour supprimer une règle de routage, vous devez supprimer le jeu d'enregistrements de ressources qui contient la règle de routage. Pour cela, procédez comme suit.

Console

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

    Accéder aux zones Cloud DNS

  2. Cliquez sur la zone pour laquelle vous souhaitez supprimer le jeu d'enregistrements de ressources.

  3. Sur la page Détails de la zone, cochez la case à côté du nom DNS du jeu d'enregistrements de ressources que vous souhaitez supprimer.

  4. Cliquez sur Supprimer les jeux d'enregistrements.

gcloud

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

gcloud 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 ressources de ce ResourceRecordSet (par exemple 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

Utilisez 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 ressources de ce ResourceRecordSet (par exemple A)

Étapes suivantes