Aplica políticas del servidor de Cloud DNS

En esta página, se describe cómo configurar las políticas del servidor de Cloud DNS y usarlas con redes de nube privada virtual (VPC). Antes de usar esta página, revisa la descripción general de las políticas del servidor DNS.

Antes de comenzar

En la API de Cloud DNS, se requiere que crees un proyecto de Google Cloud y que habilites la API de Cloud DNS.

Si creas una aplicación que usa la API de REST, también debes crear un ID de cliente de OAuth 2.0.

  1. Si aún no la tienes, regístrate para obtener una.
  2. Habilita la API de Cloud DNS en la consola de Google Cloud. Puedes seleccionar un proyecto existente de Compute Engine o App Engine, o puedes crear un proyecto nuevo.
  3. Si necesitas realizar solicitudes a la API de REST, debes crear un ID de OAuth 2.0: Configura OAuth 2.0.
  4. En el proyecto, observa la siguiente información que deberás ingresar en los pasos posteriores:
    • El ID de cliente (xxxxxx.apps.googleusercontent.com)
    • El ID del proyecto que deseas usar. Puedes encontrar el ID en la parte superior de la página Descripción general en la consola de Google Cloud. También podrías solicitarle a tu usuario que proporcione el nombre del proyecto que desea usar en tu aplicación.

Si no ejecutaste la Google Cloud CLI antes, debes ejecutar el siguiente comando para especificar el nombre del proyecto y autenticarlo con la consola de Google Cloud:

gcloud auth login

Para elegir un proyecto diferente del que elegiste anteriormente, especifica la opción --project en la línea de comandos.

Crea políticas del servidor DNS

En cada objeto de política del servidor DNS, se puede definir cualquiera de las siguientes políticas del servidor:

En cada red de VPC, solo puede hacerse referencia a una política del servidor DNS. Si necesitas definir el reenvío entrante y saliente para una red de VPC, crea una política que defina una política tanto entrante como saliente.

Crea una política del servidor de entrada

Para crear una política del servidor entrante, cumple con las siguientes instrucciones. En Cloud DNS, se crea un conjunto de direcciones IP de reenvío entrantes a partir de los rangos de direcciones IPv4 principales de las subredes en cada red de VPC a la que se aplica la política. Después de crear la política, puedes enumerar los puntos de entrada que crea Cloud DNS.

gcloud

Para crear una política de servidor entrante, ejecuta el comando dns policies create:

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

Reemplaza lo siguiente:

  • NAME: Es un nombre para la política
  • DESCRIPTION: Es una descripción de la política
  • VPC_NETWORK_LIST: Es una lista delimitada por comas de redes de VPC en la que se deben crear direcciones de reenvío de entrada

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
}

Crea una política del servidor de salida

Si quieres especificar una lista de servidores de nombres alternativos para una red de VPC, puedes crear una política del servidor saliente.

gcloud

Para crear una política de servidor saliente, ejecuta el comando 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

Reemplaza lo siguiente:

  • NAME: Es un nombre para la política
  • DESCRIPTION: Es una descripción de la política
  • VPC_NETWORK_LIST: Es una lista delimitada por comas de redes de VPC que consultan los servidores de nombres alternativos
  • ALTERNATIVE_NAMESERVER_LIST: Es una lista delimitada por comas de direcciones IP que puedes usar como servidores de nombres alternativos. El enrutamiento privado solo se usa para servidores de nombres alternativos que tienen direcciones RFC 1918.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: Es una lista delimitada por comas de direcciones IP que puedes usar como servidores de nombres alternativos, a los que se accede mediante enrutamiento privado.

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
}

Crea una política del servidor para ambos

gcloud

A fin de crear una política de servidor DNS para reenvío entrante y saliente, ejecuta el comando 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

Reemplaza lo siguiente:

  • NAME: Es un nombre para la política
  • DESCRIPTION: Es una descripción de la política
  • VPC_NETWORK_LIST: Es una lista delimitada por comas de redes de VPC en la que se deben crear las direcciones de reenvío de entrada y que deben consultar los servidores de nombres alternativos
  • ALTERNATIVE_NAMESERVER_LIST: Es una lista delimitada por comas de direcciones IP que puedes usar como servidores de nombres alternativos. El enrutamiento privado solo se usa para los servidores de nombres alternativos que tienen direcciones RFC 1918
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: Es una lista delimitada por comas de direcciones IP que puedes usar como servidores de nombres alternativos, a los que se accede mediante enrutamiento privado

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
}

Enumera los puntos de ingreso de los reenviadores entrantes

Cuando una política del servidor entrante se aplica a una red de VPC, Cloud DNS crea un conjunto de direcciones IP internas regionales que funcionan como destinos a los que tus sistemas locales o agentes de resolución de nombres pueden enviar consultas de DNS. Estas direcciones sirven como puntos de ingreso al orden de resolución de nombres de tu red de VPC.

Las reglas de firewall de Google Cloud no se aplican a las direcciones internas regionales que actúan como puntos de ingreso para los reenviadores entrantes. En Cloud DNS, se acepta el tráfico de TCP y UDP del puerto 53 automáticamente.

En cada reenviador entrante, se aceptan y reciben consultas de túneles de Cloud VPN o adjuntos de Cloud Interconnect (VLAN) en la misma región que la dirección IP interna regional. Las instancias de VM pueden acceder al servidor de reenvío de entrada a través de cualquiera de las direcciones IP internas de la misma red de VPC. Para acceder al reenvío entrante, la interfaz de red debe tener una dirección IP externa o una subred de la NIC debe tener habilitado el Acceso privado a Google.

gcloud

Si quieres generar una lista del conjunto de direcciones IP internas regionales que funcionan como puntos de entrada para el reenvío entrante, ejecuta el comando compute addresses list:

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

Actualiza las políticas de DNS

En las siguientes secciones, se proporciona información para cambiar las redes de VPC y habilitar o inhabilitar el reenvío de entrada.

Cambia las redes de VPC

En la siguiente lista, se describe qué sucede cuando cambias la lista de redes de VPC a las que se aplica una política de DNS:

  • Si en la política se especifica una política de entrada, los puntos de ingreso para los reenviadores entrantes se crean en las redes de VPC según sea necesario.
  • Si en la política se especifica una política de salida, el orden de resolución de nombres de cada red de VPC se actualiza para incluir los servidores de nombres alternativos especificados.

gcloud

Para modificar la lista de redes a las que se aplica una política de servidor DNS, ejecuta el comando dns policies update:

gcloud dns policies update NAME \
    --networks=VPC_NETWORK_LIST

Reemplaza lo siguiente:

  • NAME: Es un nombre para la política
  • VPC_NETWORK_LIST: Es una lista delimitada por comas de redes de VPC a las que se aplica la política. La lista de redes de VPC que especificas reemplaza a la lista anterior

Habilita o inhabilita el reenvío de entrada

Puedes habilitar el reenvío entrante para una política del servidor DNS que defina solo una política de salida (servidor de nombres alternativo). También puedes inhabilitar el reenvío entrante para una política de DNS existente.

gcloud

A fin de habilitar el reenvío entrante para una política de servidor DNS, ejecuta el comando dns policies update:

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

A fin de inhabilitar el reenvío entrante para una política de servidor DNS, ejecuta el comando dns policies update:

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

Reemplaza NAME por el nombre de la política.

Enumera las políticas de DNS

gcloud

Para enumerar las políticas del servidor DNS en tu proyecto, ejecuta el comando dns policies list:

gcloud dns policies list

Borra una política de DNS

gcloud

Para borrar una política de servidor, ejecuta el comando dns policies delete:

gcloud dns policies delete NAME

Reemplaza NAME por el nombre de la política que deseas borrar.

¿Qué sigue?