Jak sprawdzić rekord PTR?

30

Muszę sprawdzić rekord PTR, aby upewnić się, że skrypt, który mam, wysyła wiadomości e-mail, które faktycznie otrzymają moi użytkownicy i nie zostaną nieprawidłowo oznaczone jako spam.

Rozumiem, że dostawca Internetu będący właścicielem zakresu IP musi skonfigurować rekord PTR, ale jak mogę sprawdzić, czy jest już skonfigurowany?

Daisetsu
źródło
Cześć Daisetsu, chciałem tylko wspomnieć o twoim komentarzu: „ISP, który jest właścicielem zakresu IP, musi ustanowić rekord PTR”, to nie jest ISP. Jest to skonfigurowane z Twoim rejestratorem. Jeśli posiadasz „daisetsu.com”, możesz utworzyć rekord PTR dla własnej domeny. Możesz także utworzyć lokalny rekord PTR, jeśli masz wewnętrzną domenę na serwerze DNS.
projectdp

Odpowiedzi:

42

Jeśli masz system Unix lub Linux , możesz to zrobić, wpisując to w wierszu polecenia:

dig -x xx.yy.zz.aa

Otrzymasz odpowiedź od swojego autorytetu aa.zz.yy.xx.in-addr.arpa i serwera rozwiązującego ten adres.

W systemie Windows możesz to zrobić nslookup xx.yy.zz.aa.

Możesz także sprawdzić online na www.intodns.com i wprowadzić swoją domenę ... Błąd podczas sprawdzania wyników wyszukiwania strefy odwrotnej.

xx.yy.zz.aa = Adres IP, który próbujesz rozwiązać


Aktualizacja:

Podczas korzystania z dig, nslookup lub hosta często przydatne jest używanie serwera DNS poza kontrolą, takiego jak Google (8.8.8.8), aby uzyskać potwierdzenie, że wszystko jest w porządku od strony trzeciej. - Zoredache

Zoredache ma rację . Oto polecenia do testowania / rozwiązywania na zewnętrznych / zewnętrznych serwerach DNS:

Dig (testowanie odwrotnego DNS na serwerze DNS Google 8.8.8.8):

dig -x zz.yy.xx.aa @8.8.8.8

Host i Nslookup (testowanie odwrotnych dns na serwerze DNS Google w wersji 8.8.8.8)

nslookup zz.yy.xx.aa 8.8.8.8
host zz.yy.xx.aa 8.8.8.8
l0c0b0x
źródło
1
Podczas korzystania z dig, nslookup lub hosta często przydatne jest używanie serwera DNS poza kontrolą, takiego jak Google (8.8.8.8), aby uzyskać potwierdzenie, że wszystko jest w porządku od strony trzeciej.
Zoredache,
12

Wiem, że oznaczono to jako odpowiedź, ale chcę udzielić bardziej wyczerpującej odpowiedzi. Do moich przykładów użyję:

  1. google.com „s adres IP 172.217.3.206 , ponieważ nie posiada rekord PTR.
  2. serverfault.com ma adres IP 151.101.1.69, ponieważ nie ma rekordu PTR.

Pierwszą rzeczą, na którą należy zwrócić uwagę, jest digpolecenie wieloplatformowe, można je uzyskać dla systemu Windows na stronie internetowej ISC BIND wymienionej w BIND, a następnie wybrać platformę Windows (32- lub 64-bitową). Ma wiele innych narzędzi, w tym własny plik binarny nslookup. Nie używam tej wersji nslookup.exe, zamiast tego używam domyślnej wersji systemu Windows (C: \ Windows \ System32 \ nslookup.exe). Jeśli jednak chcesz użyć, digmożesz edytować lokalną zmienną środowiskową PATH lub przenieść dignarzędzie do folderu C: \ Windows \ System32.

Polecenie 1) dig PTR 206.3.217.172.in-addr.arpa- Tradycyjnie w ten sposób użytkownik wykonuje odwrotne wyszukiwanie DNS. Ręcznie transponowaliby adres IP: 172.217.3.206to 206.3.217.172(zauważ kolejność każdego z czterech oktetów) i dodali in-addr.arpana końcu łańcucha. Oto wynik:

; <<>> DiG 9.9.5 <<>> PTR 206.3.217.172.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39790
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;206.3.217.172.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
206.3.217.172.in-addr.arpa. 84300 IN    PTR     sea15s12-in-f206.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN    PTR     sea15s12-in-f14.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN    PTR     sea15s12-in-f14.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN    PTR     sea15s12-in-f206.1e100.net.

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 26 04:20:28 Pacific Daylight Time 2017
;; MSG SIZE  rcvd: 153

Polecenie 2) dig -x 172.217.3.206- Ta wersja polecenia jest o wiele prostsza, jak opisano w dig -h, -xflaga jest „skrótem do wyszukiwania wstecznego”. Dane wyjściowe są identyczne z danymi pokazanymi powyżej w poprzednim poleceniu.

Polecenie 3) dig -x 151.101.1.69- W tym przykładzie pokazano, jak to wygląda, gdy nie znaleziono rekordu PTR, na przykładzie serverfault.com. Jak widać, odpowiedź nie zawiera PTR i może jedynie znaleźć rekord SOA 151.in-addr.arpa:

; <<>> DiG 9.9.5 <<>> -x 151.101.1.69
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21854
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;69.1.101.151.in-addr.arpa.     IN      PTR

;; AUTHORITY SECTION:
151.in-addr.arpa.       1786    IN      SOA     pri.authdns.ripe.net. dns.ripe.net. 1490512027 3600 600 864000 3600

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 26 04:30:38 Pacific Daylight Time 2017
;; MSG SIZE  rcvd: 114

Polecenie 4) nslookup 172.217.3.174- Jest to polecenie sugerowane przez użytkownika l0c0b0x w podstawowej odpowiedzi w tym wątku. Chociaż prawdą jest, że istnieje wynik, nie jest jasne, czy jest to rekord PTR, czy jakiś inny rodzaj rekordu. Myślę, że domyślnie zwraca PTR, jeśli otrzyma adres IP, ale nadal chcę być pewien. Pomija także inne rekordy, jeśli istnieje wiele PTR:

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    sea15s11-in-f14.1e100.net
Address:  172.217.3.174

Polecenie 5) nslookup -debug 172.217.3.174- Użyj tego polecenia, aby wyświetlić pełną listę, w tym typ rekordu i pełną listę wyników. W -debugpowtarzał flag, aby go wyłączyć należy użyć -nodebug:

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        8.8.8.8.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  8.8.8.8.in-addr.arpa
        name = google-public-dns-a.google.com
        ttl = 86141 (23 hours 55 mins 41 secs)

------------
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 4,  authority records = 0,  additional = 0

    QUESTIONS:
        174.3.217.172.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  174.3.217.172.in-addr.arpa
        name = sea15s11-in-f14.1e100.net
        ttl = 83026 (23 hours 3 mins 46 secs)
    ->  174.3.217.172.in-addr.arpa
        name = sea15s11-in-f174.1e100.net
        ttl = 83026 (23 hours 3 mins 46 secs)
    ->  174.3.217.172.in-addr.arpa
        name = sea15s11-in-f14.1e100.net
        ttl = 83026 (23 hours 3 mins 46 secs)
    ->  174.3.217.172.in-addr.arpa
        name = sea15s11-in-f174.1e100.net
        ttl = 83026 (23 hours 3 mins 46 secs)

------------
Name:    sea15s11-in-f14.1e100.net
Address:  172.217.3.174

Polecenie 6) nslookup -type=PTR 172.217.3.174- Ta wersja polecenia określa rekordy PTR z -typeflagą. Różni się od wersji bez -typeflagi na dwa sposoby. Pierwszą jest lista wszystkich odpowiedzi PTR. Drugi polega na tym, że zawiera informację „Odpowiedź nieautorytatywna”, której drugie polecenie nie uwzględnia. Jeśli uważnie spojrzysz powyżej na wynik debugowania, authority recordsstan 0, więc oba te polecenia powinny zawierać „Nieautorytatywną odpowiedź”.

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
174.3.217.172.in-addr.arpa      name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f174.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f174.1e100.net

Polecenie 7) nslookup -debug -d2 -type=PTR 151.101.1.69- Oto, w jaki sposób uzyskasz możliwie najwięcej szczegółów na temat żądania pełnego wyszukiwania wstecznego. Przypomnienie: Aby wyłączyć, użyj -nodebugi -nod2. Ten przykład celowo zawodzi w przykładzie serverfault.com:

------------
SendRequest(), len 38
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        8.8.8.8.in-addr.arpa, type = PTR, class = IN

------------
------------
Got answer (82 bytes):
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        8.8.8.8.in-addr.arpa, type = PTR, class = IN
    ANSWERS:
    ->  8.8.8.8.in-addr.arpa
        type = PTR, class = IN, dlen = 32
        name = google-public-dns-a.google.com
        ttl = 86280 (23 hours 58 mins)

------------
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

------------
SendRequest(), len 43
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        69.1.101.151.in-addr.arpa, type = PTR, class = IN

------------
------------
Got answer (103 bytes):
    HEADER:
        opcode = QUERY, id = 2, rcode = NXDOMAIN
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        69.1.101.151.in-addr.arpa, type = PTR, class = IN
    AUTHORITY RECORDS:
    ->  151.in-addr.arpa
        type = SOA, class = IN, dlen = 48
        ttl = 1787 (29 mins 47 secs)
        primary name server = pri.authdns.ripe.net
        responsible mail addr = dns.ripe.net
        serial  = 1490512027
        refresh = 3600 (1 hour)
        retry   = 600 (10 mins)
        expire  = 864000 (10 days)
        default TTL = 3600 (1 hour)

------------
*** google-public-dns-a.google.com can't find 69.1.101.151.in-addr.arpa.: Non-ex
istent domain

Polecenie 8) nslookup 174.3.217.172.in-addr.arpa- Być może zastanawiasz się, czy możesz użyć tradycyjnej metody wstecznego wyszukiwania DNS, nslookuptak jak to zrobiliśmy w Poleceniu 1 z dig. Możesz. Zwróć uwagę na te same błędy nslookup, które wymieniłem powyżej (Polecenie 6) między tym poleceniem a tym z -type=PTRflagą ustawioną poniżej (Polecenie 9):

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    174.3.217.172.in-addr.arpa

Command 9) nslookup -type=PTR 174.3.217.172.in-addr.arpa- Jak można się spodziewać, wygląda identycznie jak Command 6.

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
174.3.217.172.in-addr.arpa      name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f174.1e100.net
174.3.217.172.in-addr.arpa      name = sea15s11-in-f174.1e100.net
projectdp
źródło
Nie ma problemu, myślę, że wciąż brakuje mi wiedzy na temat znaczenia i znaczenia autorytetu w odniesieniu do wyników. Zrobię trochę badań i dodam je, kiedy skończę.
projectdp
To powinna być zaakceptowana odpowiedź. Zachęcam PO do oznaczenia go jako takiego.
Niall Cosgrove
1

Jest to to samo, co wykonywanie jakiegokolwiek wyszukiwania DNS.

Z wiersza polecenia systemu Windows: nslookup.exe <ip address>

Z linii poleceń linux: host <ip address>

Uwaga: Prawdopodobnie najlepiej jest uruchamiać te polecenia z komputera spoza sieci, aby uzyskać dostęp do publicznego serwera DNS. Alternatywnie zarówno nslookup, jak i host oferują sposoby określania serwera DNS, który ma być używany.

Evan
źródło