Appliquer des règles de serveur Cloud DNS

Cette page décrit la procédure à suivre pour configurer des règles de serveur Cloud DNS et les utiliser avec des réseaux cloud privés virtuels (VPC). Avant d'utiliser cette page, consultez la présentation des règles de serveur DNS.

Avant de commencer

L'API Cloud DNS nécessite la création d'un projet Google Cloud et l'activation de l'API Cloud DNS.

Si vous créez une application qui utilise l'API REST, vous devez également créer un ID client OAuth 2.0.

  1. Si vous n'en possédez pas déjà un, vous devez créer un compte Google.
  2. Activez l'API Cloud DNS dans la console Google Cloud. Vous pouvez sélectionner un projet Compute Engine ou App Engine existant, ou en créer un.
  3. Si vous devez envoyer des requêtes à l'API REST, vous devez créer un ID OAuth 2.0 : Configurer OAuth 2.0.
  4. Dans le projet, notez les informations suivantes que vous devrez saisir aux prochaines étapes :
    • L'ID client (xxxxxx.apps.googleusercontent.com).
    • L'ID du projet que vous souhaitez utiliser. L'ID se trouve en haut de la page Présentation dans la console Google Cloud. Vous pouvez également demander aux utilisateurs d'indiquer le nom du projet qu'ils souhaitent utiliser dans votre application.

Si vous n'avez pas encore utilisé Google Cloud CLI, vous devez exécuter la commande suivante pour spécifier le nom du projet et vous authentifier dans la console Google Cloud :

gcloud auth login

Pour choisir un projet différent de celui que vous avez choisi précédemment, spécifiez l'option --project sur la ligne de commande.

Créer des règles de serveur DNS

Chaque objet de règle de serveur DNS peut définir l'une des règles de serveur suivantes :

Chaque réseau VPC ne peut référencer qu'une seule règle de serveur DNS. Si vous devez définir un transfert entrant et sortant pour un réseau VPC, créez une règle qui définit à la fois une règle entrante et sortante.

Créer une règle de serveur entrant

Pour créer une règle du serveur entrant, suivez les instructions ci-dessous. Cloud DNS crée un ensemble d'adresses IP de redirecteur entrant à partir des plages d'adresses IPv4 principales des sous-réseaux de chaque réseau VPC auquel la règle s'applique. Une fois votre règle créée, vous pouvez répertorier les points d'entrée créés par Cloud DNS.

gcloud

Pour créer une règle de serveur entrant, exécutez la commande dns policies create :

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --enable-inbound-forwarding

Remplacez les éléments suivants :

  • NAME : nom de la règle
  • DESCRIPTION : description de la règle
  • VPC_NETWORK_LIST : liste de réseaux VPC où créer les adresses de transfert entrantes, séparés par une virgule.

Terraform

resource "google_dns_policy" "default" {
  name                      = "example-inbound-policy"
  enable_inbound_forwarding = true

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Créer une règle de serveur sortant

Pour spécifier une liste de serveurs de noms alternatifs pour un réseau VPC, vous pouvez créer une règle de serveur sortant.

gcloud

Pour créer une règle de serveur sortant, exécutez la commande dns policies create :

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST

Remplacez les éléments suivants :

  • NAME : nom de la règle
  • DESCRIPTION : description de la règle
  • VPC_NETWORK_LIST : liste de réseaux VPC interrogeant les serveurs de noms alternatifs, séparés par des virgules
  • ALTERNATIVE_NAMESERVER_LIST : liste d'adresses IP que vous pouvez utiliser comme serveurs de noms alternatifs, séparées par des virgules. Le routage privé n'est utilisé que pour les serveurs de noms alternatifs qui utilisent des adresses RFC 1918
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST : liste d'adresses IP séparées par des virgules, que vous pouvez utiliser comme serveurs de noms alternatifs, accessibles via un routage privé

Terraform

resource "google_dns_policy" "default" {
  name = "example-outbound-policy"

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Créer une règle de serveurs entrant et sortant

gcloud

Pour créer une règle de serveur DNS pour le transfert entrant et sortant, exécutez la commande dns policies create :

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST \
    --enable-inbound-forwarding

Remplacez les éléments suivants :

  • NAME : nom de la règle
  • DESCRIPTION : description de la règle
  • VPC_NETWORK_LIST : liste des réseaux VPC dans lesquels des adresses de transfert entrantes doivent être créées et qui doivent interroger les autres serveurs de noms, séparés par des virgules
  • ALTERNATIVE_NAMESERVER_LIST : liste d'adresses IP séparées par des virgules que vous pouvez utiliser comme serveurs de noms alternatifs. Le routage privé n'est utilisé que pour les serveurs de noms alternatifs qui possèdent des adresses RFC 1918.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST : liste d'adresses IP séparées par des virgules que vous pouvez utiliser comme serveurs de noms alternatifs, accessibles via un routage privé.

Terraform

resource "google_dns_policy" "example_policy" {
  name                      = "example-policy"
  enable_inbound_forwarding = true

  enable_logging = true

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.network_1.id
  }
  networks {
    network_url = google_compute_network.network_2.id
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

Répertorier les points d'entrée du redirecteur entrant

Lorsqu'une règle de serveur entrant s'applique à un réseau VPC, Cloud DNS crée un ensemble d'adresses IP internes régionales qui servent de destinations vers lesquelles vos systèmes sur site ou vos résolveurs de noms peuvent envoyer des requêtes DNS. Ces adresses servent de points d'entrée à l'ordre de résolution des noms de votre réseau VPC.

Les règles de pare-feu Google Cloud ne s'appliquent pas aux adresses internes régionales qui servent de points d'entrée pour les redirecteurs entrants. Cloud DNS accepte automatiquement le trafic TCP et UDP sur le port 53.

Chaque redirecteur entrant accepte et reçoit des requêtes provenant de tunnels Cloud VPN ou de rattachements Cloud Interconnect (VLAN) situés dans la même région que l'adresse IP interne régionale. Les instances de VM peuvent accéder au redirecteur entrant via n'importe quelle adresse IP interne du même réseau VPC. Pour accéder au transfert entrant, l'interface réseau doit disposer d'une adresse IP externe ou l'accès privé à Google doit être activé sur un sous-réseau de la carte d'interface réseau.

gcloud

Pour répertorier l'ensemble des adresses IP internes régionales servant de points d'entrée pour le transfert entrant, exécutez la commande compute addresses list :

gcloud compute addresses list \
    --filter='purpose = "DNS_RESOLVER"' \
    --format='csv(address, region, subnetwork)'

Mettre à jour les règles DNS

Les sections suivantes fournissent des informations sur la modification des réseaux VPC et l'activation ou la désactivation du transfert entrant.

Modifier les réseaux VPC

La liste suivante décrit ce qui se passe lorsque vous modifiez la liste des réseaux VPC auxquels s'applique une règle DNS :

  • Si les règles spécifient une règle entrante, des points d'entrée sont créés pour les redirecteurs entrants dans les réseaux VPC, si nécessaire.
  • Si les règles spécifient une règle sortante, l'ordre de résolution des noms de chaque réseau VPC est mis à jour pour inclure les autres serveurs de noms spécifiés.

gcloud

Pour modifier la liste des réseaux auxquels s'applique une règle de serveur DNS, exécutez la commande dns policies update :

gcloud dns policies update NAME \
    --networks=VPC_NETWORK_LIST

Remplacez les éléments suivants :

  • NAME : nom de la règle
  • VPC_NETWORK_LIST : liste des réseaux VPC séparés par une virgule, auxquels la règle s'applique. La liste des réseaux VPC que vous spécifiez remplace la précédente

Activer ou désactiver le transfert entrant

Vous pouvez activer le transfert entrant pour une règle de serveur DNS qui ne définit qu'une règle sortante (serveur de noms alternatif). Vous pouvez également désactiver le transfert entrant pour une règle DNS existante.

gcloud

Pour activer le transfert entrant pour une règle de serveur DNS, exécutez la commande dns policies update :

gcloud dns policies update NAME \
    --enable-inbound-forwarding

Pour désactiver le transfert entrant pour une règle de serveur DNS, exécutez la commande dns policies update :

gcloud dns policies update NAME \
    --no-enable-inbound-forwarding

Remplacez NAME par le nom de la règle.

Répertorier les règles DNS

gcloud

Pour répertorier les règles de serveur DNS dans votre projet, exécutez la commande dns policies list :

gcloud dns policies list

Supprimer une règle DNS

gcloud

Pour supprimer une règle de serveur, exécutez la commande dns policies delete :

gcloud dns policies delete NAME

Remplacez NAME par le nom de la règle à supprimer.

Étapes suivantes

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