Administra registros

La administración de registros DNS para la API de Cloud DNS implica el envío de solicitudes de cambio a la API. En esta página, se describe cómo realizar cambios, que consisten en realizar adiciones y eliminaciones en la colección de conjuntos de registros de recursos. También se describe cómo enviar los cambios deseados a la API con los comandos import, export y transaction.

Antes de comenzar

Ya debes haber creado una zona administrada y completado los requisitos para esta tarea.

Agrega o quita un registro

Cuando agregas un registro, puedes agregar dos valores o strings al conjunto de registros para el mismo nombre de DNS. Cuando agregas conjuntos de registros, debes agregar un espacio entre el primer valor y el segundo.

Para agregar o quitar registros DNS en un conjunto de registros, crea y ejecuta una transacción que especifique las operaciones que deseas realizar. Una transacción es un grupo de uno o más cambios de registro que se deberían propagar conjuntamente. Las transacciones solo se completan o fallan en su totalidad. Por ello, los datos nunca quedan en un estado intermedio.

Console

Sigue estos pasos para crear un conjunto de registros en Cloud Console:

  1. Ve a la página de Cloud DNS.
  2. Haz clic en el nombre de la zona administrada en la que quieres agregar el registro.
  3. En la página “Detalles de la zona”, haz clic en Agregar conjunto de registros.
  4. En la pantalla "Crear un conjunto de registros", ingresa el subdominio de la zona de DNS en el campo Nombre de DNS. Por ejemplo, mail. El punto final se agrega automáticamente al final.

    Para crear un registro DNS comodín, ingresa un asterisco. Por ejemplo, *.example.com.

  5. Selecciona el Tipo de registro de recursos. Por ejemplo, MX.

  6. En el campo TTL, ingresa un valor numérico para el tiempo de actividad del registro de recursos. Este valor indica el tiempo que se puede almacenar en caché y debe ser un número entero positivo. Selecciona la unidad de tiempo en el menú desplegable Unidad TTL. Por ejemplo, 30 minutes.

  7. Según el tipo de registro de recursos que seleccionaste, completa los campos restantes como se describe en la tabla.

  8. Haz clic en Agregar elemento si quieres ingresar información adicional.

  9. Haz clic en Crear.

gcloud

a. Para iniciar una transacción usa el comando gcloud dns record-sets transaction start:

gcloud dns record-sets transaction start --zone="my-zone-name"
  

donde

  • --zone es el nombre de la zona administrada cuyos conjuntos de registros quieres administrar.

b. Para agregar un conjunto de registros como parte de una transacción, usa el comando gcloud dns record-sets transaction add:

gcloud dns record-sets transaction add 10.2.3.4 --name="test.example.com" \
  --ttl="30" \
  --type="A" \
  --zone="my-zone-name"
  

donde

  • --name es el nombre de dominio o DNS del conjunto de registros que se debe agregar.
  • --ttl es el TTL (tiempo de actividad) en segundos para el conjunto de registros.
  • --type es el tipo de registro descrito en la tabla.
  • --zone es el nombre de la zona administrada cuyos conjuntos de registros quieres administrar.

c. Para ejecutar la transacción, usa el comando gcloud dns record-sets transaction execute:

gcloud dns record-sets transaction execute --zone="my-zone-name"

Para agregar una transacción con comodines:

gcloud dns record-sets transaction add --zone="my-zone-name" \
    --name="*.example.com." \
    --type=CNAME \
    --ttl=300 "sinkhole.example.com"
 

donde

  • --name es el nombre de dominio o DNS del conjunto de registros que se debe agregar.
  • --ttl es el tiempo de actividad en segundos para el conjunto de registros.
  • --type es el tipo de registro descrito en la tabla.
  • --zone es el nombre de la zona administrada cuyos conjuntos de registros quieres administrar.

Para quitar una transacción, usa el comando gcloud dns record-sets transaction remove:

gcloud dns record-sets transaction remove 10.2.3.4 --name="test.example.com" \
    --ttl="number of seconds" \
    --type="record type" \
    --zone="zone name"
  

donde

  • --name es el nombre de dominio o DNS del conjunto de registros que se debe quitar.
  • --ttl es el tiempo de actividad en segundos para el conjunto de registros.
  • --type es el tipo de registro descrito en la tabla.

Para reemplazar un registro existente, emite el comando remove seguido del comando add.

API

PUBLICA https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/managedZone/changes

{
  "deletions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "198.51.100.5"
      ]
    }
  ]
  "additions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "203.0.113.1"
      ]
    }
  ]
}

Donde PROJECT_ID es tu ID del proyecto y managedZone es el nombre o ID de la zona administrada.

Lista de los tipos de registro DNS admitidos

Haz clic aquí para probarlo en el Explorador de API

Detalles para seleccionar los tipos de registros de recursos

Tipo de registro Valores que se deben ingresar
A

La dirección IP numérica del host en formato decimal con puntos

AAAA

La dirección IP numérica del host en formato hexadecimal IPv6

CAA

Las autoridades certificadas con autorización para emitir certificados para este dominio

CNAME

El nombre canónico para el que el nombre del DNS es un alias

DNSKEY

La clave de DNSSEC de otro operador para la transferencia segura. Este tipo de conjunto de registros solo se puede agregar a una zona que tenga habilitado DNSSEC en el estado de transferencia

DS

La huella digital de la clave de DNSSEC para la zona delegada segura. Este tipo de conjunto de registros no activa DNSSEC para una zona delegada, a menos que habilites (y actives) DNSSEC para ella

IPSECVPNKEY

La clave de VPN pública de IPSec. Cuando se usa este tipo de conjunto de registros, se recomienda DNSSEC, pero no está habilitado para esta zona

MX

Un número y nombre de DNS de un servidor de intercambio de correo que indica la prioridad del servidor. Primero se prueban los servidores con números más bajos. Asegúrate de incluir un espacio entre el número y el nombre de DNS

NAPTR

Reglas del puntero de autoridad de nombres usadas para la asignación de nombres de recursos uniformes

NS

El nombre de DNS del servidor de nombres autorizado. Los registros NS deben coincidir con los servidores de nombres de tu zona

PTR

El nombre canónico del recurso, utilizado habitualmente para búsquedas inversas

SPF

El tipo de conjunto del registro SPF está obsoleto. En su lugar, usa registros TXT que comiencen con “v=spf1”. El software moderno de correo electrónico no usa registros de tipo SPF

SRV

Los datos que especifican la ubicación, es decir, el nombre de host y el número de puerto de los servidores de un servicio específico. Para conocer más detalles, consulta RFC 2782

SSHFP

El número de algoritmo del servidor SSH, el número del tipo de huella digital y la huella digital de la clave. Usa este tipo de registro si habilitaste DNSSEC para esta zona

TLSA

La información de la Asociación de certificados TLSA sobre la autenticación basada en DNS de las entidades con nombre (DANE)

TXT

Datos de texto, que pueden contener texto arbitrario y que también se pueden utilizar para definir datos procesables, como información sobre seguridad o prevención de abusos. Un registro TXT puede contener una o más strings de texto; la longitud máxima de cada string individual es de 255 caracteres. Los agentes de correo y otros agentes de software concatenarán varias strings. Encierra cada string entre comillas. Por ejemplo:


"Hello world" "Bye world"

Importa y exporta conjuntos de registros

Puedes usar import y export para copiar conjuntos de registros dentro y fuera de una zona administrada. Los formatos que puedes importar y exportar son el formato de archivo de zona BIND o el formato de registros YAML.

Para importar conjuntos de registros, usa el comando dns record-sets import. La marca --zone-file-format le indica a import que espere un archivo con formato de zona BIND. Si omites esta marca, import espera un archivo de registros con formato YAML:

gcloud dns record-sets import -z=examplezonename \
   --zone-file-format path-to-example-zone-file

Para exportar conjuntos de registros, usa el comando dns record-sets export. Usa la marca --zone-file-format para indicarle a export que exporte los conjuntos de registros a un archivo con formato de zona BIND. Por ejemplo:

example.com. 21600 IN NS ns-gcp-private.googledomains.com.
example.com. 21600 IN SOA ns-gcp-private.googledomains.com.
cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
host1.example.com. 300 IN A 192.0.2.91

Si omites esta marca, export exporta el conjunto de registros a un archivo de registros con formato YAML:

gcloud dns record-sets export example.zone -z=examplezonename \
   --zone-file-format
   

Por ejemplo:

---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com.
ttl: 21600
type: NS
---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600
  259200 300
ttl: 21600
type: SOA
---
kind: dns#resourceRecordSet
name: host1.example.com.
rrdatas:
- 192.0.2.91
ttl: 300
type: A

Muestra el conjunto de registros actual

Sigue estos pasos a fin de mostrar los registros DNS actuales para tu zona:

gcloud

gcloud dns record-sets list --zone="myzonename"
El comando genera la respuesta JSON para el conjunto de registros de recursos de los primeros 100 registros. Puedes especificar estos parámetros adicionales:
  • limit: la cantidad máxima de conjuntos de registros en la lista.
  • name: solo enumera conjuntos de registros con este nombre de dominio exacto.
  • type: solo enumera los registros de este tipo. Si está presente, el parámetro --name también debe estar presente.

Python

def list_resource_records(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    records = zone.list_resource_record_sets()

    return [(record.name, record.record_type, record.ttl, record.rrdatas)
            for record in records]

Próximos pasos