Richiesta di DNS per CNAME per un server


Risposte:


6

Non hai specificato quale sia il tuo ambiente ma se stai usando Unix penso che una combinazione di dig e grep dovrebbe funzionare. ns.example.comdovrebbe essere il nome host del tuo nameserver, example.comè il dominio di cui fa parte l'host e HOST è l'host per il quale desideri trovare tutti i record CNAME. Questo è in realtà un carattere di tabulazione nel comando grep, non letteralmente <TAB>(potrebbe essere necessario regolare la stringa grep).

Inoltre, il server dei nomi deve essere configurato per consentire i trasferimenti di zona, i cui dettagli dipenderanno dall'implementazione.

dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'

O se sei su Windows puoi usare nslookup :

C:\> nslookup
> name ns.example.com
> ls -a example.com FILE

Ciò dovrebbe generare tutti i record per il dominio example.comche ns.example.com"conosce" su FILE. È quindi possibile utilizzare qualsiasi strumento che si desidera ordinare attraverso il file di testo cercando i CNAMES corrispondenti.

O con questo script perl non testato (ma apparentemente corretto) :

#!/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 paio di punti per completezza:

  • Come affermato da @womble, non esiste un equivalente di un record PTR per un CNAME. Dovrai usare un po 'di consapevolezza contestuale ordinando tutte le informazioni sulla zona per CNAMES che corrispondono ai record A del tuo host.
  • Questo funziona solo per il tuo server DNS (e se hai l'autorizzazione per visualizzare le informazioni sulla zona). Non c'è modo di "tracciare" CNAMES per il tuo host che appartengono ad altre zone.
  • Come afferma @BillThor, esistono altri modi per alias di un nome host oltre CNAMES. Ancora una volta, avrai bisogno di un po 'di consapevolezza contestuale.

Domanda aggiornata, siamo su Windows.
PhilPursglove,

4

Se hai accesso alla tua configurazione DNS, è piuttosto banale scoprire questi dati. Tuttavia, chiunque può avere un CNAME che punta al tuo server. Non sarai in grado di rintracciarli.

Come ha sottolineato @wombie, non puoi fare una ricerca inversa per CNAMES. Non esiste un equivalente PTR per CNAMES e anche se lì dove è probabile esistano solo alcuni record. Un rapido controllo di una selezione casuale di domini mostrerebbe spesso che i record PTR non rimandano al record A. Allo stesso modo, fare ricerche inverse di record PTR per indirizzi casuali spesso non trova il record A corrispondente.

EDIT: i CNAME non sono l'unico modo per alias un sistema. Il DNS consente a più record A di indicare lo stesso indirizzo. Funzionalmente è come aggiungere un CNAME ma il metodo è diverso. Gli stessi problemi si applicano al di fuori del tuo dominio. Per cercare i vari record A, dovresti cercare gli indirizzi IP del sistema in questione.


3

Il protocollo DNS non consente di eseguire quel tipo di ricerca "inversa". Dovrai uscire dal protocollo, come usare i suggerimenti grep forniti da KCE.


2

usa powershell:

controlla il nome principale sul tuo server DNS Microsoft:

Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_AType -Filter "IPAddress = 'xx.xx.xx.xx (IP)'" -ComputerName mydnsservername

ottieni tutti i nomi per quell'host dal tuo server DNS Microsoft:

Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_CNAMEType -Filter "primaryname = 'primaryname dalla prima query terminata con un punto." "-ComputerName mydnsservername | selezionare il proprio nome, nome principale


1
  1. Trova tutte le zone servite dalle tue macchine.
  2. Per ciascuna zona, utilizzare dnscmdper esportare i dati della zona:
    dnscmd a.ns.example.com / zoneexport zone.example.com some-nomefile-per-questa-zona
  3. Cerca i file esportati per i CNAMErecord di risorse che puntano al nome di dominio di destinazione.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.