¿Hay alguna forma de consultar nuestras entradas DNS internas para descubrir todas las entradas CNAME que apuntan a un servidor en particular?
Editar: Somos un entorno de Windows, Server 2003.
¿Hay alguna forma de consultar nuestras entradas DNS internas para descubrir todas las entradas CNAME que apuntan a un servidor en particular?
Editar: Somos un entorno de Windows, Server 2003.
Respuestas:
No especificó cuál es su entorno, pero si está utilizando Unix, creo que una combinación de dig y grep debería funcionar. ns.example.com
debe ser el nombre de host de su servidor de nombres, example.com
es el dominio del que forma parte su host y HOST es el host para el que desea encontrar todos los registros CNAME. Eso es en realidad un carácter de tabulación en el comando grep, no literalmente <TAB>
(puede que tenga que ajustar la cadena grep).
Además, su servidor de nombres debe configurarse para permitir transferencias de zona, cuyos detalles dependerán de la implementación.
dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'
O si está en Windows, podría usar nslookup :
C:\> nslookup
> name ns.example.com
> ls -a example.com FILE
Esto debería generar todos los registros del dominio example.com
que ns.example.com
"conoce" en ARCHIVO. Luego puede usar la herramienta que desee para ordenar el archivo de texto en busca de los CNAMES correspondientes.
O con este script perl no probado (pero aparentemente correcto) :
#!/usr/bin/perl
use Net::DNS;
($target, $zone) = @ARGV;
$res = new Net::DNS::Resolver;
foreach $rr ($res->axfr($zone)) {
print $rr->name."\n" if (($rr->type eq "CNAME") && ($rr->rdatastr eq $target."."));
}
Un par de puntos para completar:
Si tiene acceso a su configuración de DNS, es bastante trivial descubrir estos datos. Sin embargo, cualquiera puede tener un CNAME apuntando a su servidor. No podrás rastrearlos.
Como @wombie ha señalado, no puedes hacer una búsqueda inversa para CNAMES. No hay un equivalente PTR para CNAMES, e incluso si es probable que solo existan algunos registros. Una comprobación rápida de una selección aleatoria de dominios mostrará que los registros PTR a menudo no apuntan al registro A. Del mismo modo, hacer búsquedas inversas de registros PTR para direcciones aleatorias a menudo no encuentra el registro A correspondiente.
EDITAR: CNAME no son la única forma de alias de un sistema. DNS permite que múltiples registros A apunten a la misma dirección. Funcionalmente, esto es lo mismo que agregar un CNAME, pero el método es diferente. Los mismos problemas se aplican fuera de su dominio. Para buscar los distintos registros A, buscaría las direcciones IP del sistema en cuestión.
usar powershell:
compruebe el nombre primario en su servidor DNS de Microsoft:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_AType -Filter "IPAddress = 'xx.xx.xx.xx (IP)'" -ComputerName mydnsservername
obtenga todos los nombres de c para ese host de su servidor DNS de Microsoft:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_CNAMEType -Filter "primaryname = 'nombre primario de la primera consulta terminada con un punto.'" -ComputerName mydnsservername | seleccione el nombre del propietario, nombre primario
dnscmd
para exportar los datos de la zona:dnscmd a.ns.example.com / zoneexport zone.example.com some-filename-for-this-zone
CNAME
registros de recursos que apuntan al nombre de dominio de destino.