Już dawno otrzymałeś odpowiedź, ale uważam, że możemy być bardziej precyzyjni i masz dodatkowe pytanie, które powinno być kolejnym pytaniem.
Wróćmy więc od początku.
Jeśli zapytasz serwery główne, aby dowiedzieć się o .COM
delegowaniu (zwróć uwagę, że wszystko poniżej dotyczy w ten sam sposób, .NET
ponieważ oba są obsługiwane przez ten sam rejestr), otrzymasz następującą odpowiedź:
$ dig @a.root-servers.net com. NS +noall +auth
; <<>> DiG 9.12.0 <<>> @a.root-servers.net com. NS +noall +auth
; (1 server found)
;; global options: +cmd
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
Podsumowując, każdy z tych serwerów nazw jest autorytatywny .COM
i wszystkie mają te same dane (więc możesz poszerzyć swoje pytanie, nie a.gtld-servers.net
jest w żaden sposób wyjątkowy, wszystko poniżej będzie dotyczyć dowolnego z tych serwerów nazw).
Gdy zapytasz tych serwerów nazw o dowolną .COM/.NET
nazwę domeny, muszą oni odpowiedzieć autorytatywnie, podając nazwę autorytatywną dla nazwy domeny, o którą prosisz.
Stąd z definicji „Czy to znaczy, że a.gtld-servers.net (i * .gtld-servers.net) mają zapis wszystkich domen .com lokalnie?”, Ale to dokładnie tak! Z pewnym zastrzeżeniem dotyczącym „wszystkich”, które jest omówione poniżej.
Pamiętaj, że mówisz o zapisach klejów, jest to konkretny przypadek, a nie najczęstszy. Zazwyczaj żądanie domeny na dowolnym z powyższych serwerów nazw zwróci tylko jeden lub więcej rekordów NS.
Pozwól nam poświęcić czas na zajęcie się innymi drobnymi punktami w twoim tekście:
Odpowiadają bardzo szybko, więc nie sądzę, aby sami zadawali dalsze pytania.
Autorytatywny serwer nazw z definicji zawiera dane, za pomocą których musi odpowiadać na zapytania, bez konieczności polegania na zasobach zewnętrznych, w przeciwnym razie nie jest tak naprawdę autorytatywny.
Jeśli chodzi o szybkość, jest to częściowo subiektywne i wysoce zależne od tego, co i jak testujesz, ale jest kilka czynników: domyślnie DNS używa UDP, który jest lżejszy niż TCP, a zatem szybszy, a takie serwery nazw są anycastowane, co oznacza, że przy odrobinie szczęścia zawsze będziesz mieć jednego „blisko” ciebie.
Zdaję sobie sprawę, że a.gtld-servers.net to prawdopodobnie kilka maszyn
Możesz usunąć „prawdopodobnie” :-) Te serwery nazw otrzymują tak wiele zapytań, że żadne pojedyncze urządzenie nigdy nie będzie w stanie wytrzymać.
Jeśli przejdziesz do https://stat.ripe.net/192.5.6.30#tabId=routing , zobaczysz wiele informacji, które mogą być trudne do strawienia, ale w zasadzie, biorąc pod uwagę, że ten pojedynczy adres IP a.gtld-servers.net
(w rzeczywistości blok, w którym to jest) ogłaszane przez kilka AS kontrolowanych przez jedną firmę, co jest silnym wskaźnikiem anycastingu, który działa pięknie dla większości DNS.
Jeśli wejdziesz na http://www.root-servers.org/ , możesz dowiedzieć się więcej. Jest to związane z głównymi serwerami nazw, już nie .COM
tymi, ale technicznie jest to dokładnie to samo. Można na przykład odkryć, że 13 serwerami głównymi zarządza 12 różnych organizacji w 930 instancjach (instancja to nie tylko jeden serwer, to lokalizacja, „punkt obecności”, w którym operator ma „węzeł”, który zazwyczaj jest sprzęt do routingu, wiele serwerów w konfiguracji równoważenia obciążenia / przełączania awaryjnego, niektóre funkcje monitorowania / zdalnego sterowania itp. F
na przykład jest w 222 miejscach.
i że jestem przekierowywany do najbliższego mnie (dzięki tej nowej technologii jeden-ip-wiele-maszyn), ale oznaczałoby to po prostu, że kilka innych maszyn ma wszystkie domeny .com.
Tak, wiele komputerów ma listę wszystkich .COM
nazw domen. Ale najpierw precyzja: na tych serwerach nazw otrzymasz listę wszystkich serwerów nazw dla wszystkich nazw domen .COM ... co oznacza, że dla nazw domen, które nie zostały delegowane, nie znajdziesz ich tutaj. Może się to zdarzyć w wielu przypadkach:
- rejestrując nazwę domeny, możesz nie ustawiać serwerów nazw lub usuwać je później.
- Twój rejestrator, na przykład ze względu na spór o płatność, może dodać status
clientHold
do nazwy domeny, co spowoduje, że zniknie z DNS
- rejestr może założyć domenę z
serverHold
dowolnego powodu.
(patrz https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-pl, jeśli chcesz dowiedzieć się więcej o tych statusach i innych).
W zależności od tego, jak zdefiniujesz „wszystkie” i co zrobisz z takimi danymi, możesz nie uzyskać naprawdę absolutnie wszystkich z nich.
We wszystkich powyższych przypadkach domena nie pojawi się na serwerach DNS rejestru, ale pojawi się, gdy wykonasz zapytanie whois. Tak więc serwery whois (znowu, nie jedno pudełko) będą również miały ... listę wszystkich nazw domen .COM i jeszcze więcej danych niż na serwerach nazw, ponieważ:
- naprawdę masz wszystkie nazwy domen, w tym te nierozpoznane, a zatem nie na serwerach nazw rejestru
- whois zapewnia znacznie więcej informacji, takich jak dane kontaktowe
I nadal są to tylko publiczne usługi rejestrowe posiadające, w pewien sposób lub w części, listę (lub jej część) nazw domen.
Co do dalszych działań:
Dalsze pytanie: jeśli ktoś „włamie się” do jednej z tych maszyn, czy nie może uzyskać listy wszystkich domen .com?
Technicznie tak. Ale:
- Z pewnością nie jest to najłatwiejszy cel, jaki znajdziesz w Internecie
- W tym konkretnym przypadku dane są już dostępne za darmo.
.COM
jest gTLD i jako taki podlega umowie z ICANN. ICANN upoważnia wszystkie rejestry gTLD do publikowania swoich plików stref (co jest w zasadzie tym, czego używają same serwery nazw, więc rekordy NS plus kleje A / AAAA), przynajmniej raz dziennie, a dostęp jest bezpłatny dla każdego, pod warunkiem podpisania umowy aby mieć pewność, że nie wykorzystasz tych danych do „złych” celów (takich jak ich ponowne opublikowanie)
Zobacz szczegóły na https://czds.icann.org/en . To daje dostęp do setek plików stref gTLD.
Pamiętaj, że jeśli twoje pytanie zostanie rozszerzone na „jeśli ktoś włamie się na jeden z tych komputerów i zmieni zawartość, która dodaje lub usuwa nazwy domen .COM ...”, możemy szybko odpowiedzieć:
- zmiany nie będą widoczne na całym świecie, ponieważ włamujesz się tylko do jednego pudełka i istnieje wiele serwerów nazw, najpierw według nazwy, a potem przez anycasting
- DNSSEC może sprawić, że twoje zmiany pojawią się jako błędy i dlatego zostaną szybko wykryte (poza wszelkimi lokalnymi środkami zaradczymi przez samego operatora).
Krótko mówiąc, nie jest to najlepszy pomysł, aby robić bałagan z .COM
nazwami domen. Są też inne sposoby.
Zdaję sobie sprawę, że informacje o domenie są publiczne, ale nadal trudno jest uzyskać je masowo.
Zobacz powyżej program ICANN. Jeśli chodzi o ccTLD, sytuacja jest różna, ale częściej nie dają dostępu do swojego pliku strefy, i to nie w czasie rzeczywistym.
Czasami można uzyskać do niego dostęp po pewnym czasie, na przykład poprzez ruchy „otwartych danych”. Jeden przykład: https://opendata.afnic.fr/en/products-and-services/services/opendata-en.html dla .FR
nazw domen.
Domyślam się, że * .gtld-servers.net nie obsługuje transferów stref (chociaż serwery nazw .edu przynajmniej kilka lat temu).
Łatwy do przetestowania:
$ for ns in $(dig NS . +noall +ans | grep 'IN NS' | awk '{print $5}') ; do echo $ns ; dig @$ns com. AXFR; done
c.root-servers.net.
; <<>> DiG 9.12.0 <<>> @c.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
m.root-servers.net.
; <<>> DiG 9.12.0 <<>> @m.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
i.root-servers.net.
; <<>> DiG 9.12.0 <<>> @i.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
e.root-servers.net.
; <<>> DiG 9.12.0 <<>> @e.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
j.root-servers.net.
; <<>> DiG 9.12.0 <<>> @j.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
l.root-servers.net.
; <<>> DiG 9.12.0 <<>> @l.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
g.root-servers.net.
; <<>> DiG 9.12.0 <<>> @g.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
k.root-servers.net.
; <<>> DiG 9.12.0 <<>> @k.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
b.root-servers.net.
; <<>> DiG 9.12.0 <<>> @b.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
h.root-servers.net.
; <<>> DiG 9.12.0 <<>> @h.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
d.root-servers.net.
; <<>> DiG 9.12.0 <<>> @d.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
;; QUERY SIZE: 44
;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
;; QUERY SIZE: 44
;; connection timed out; no servers could be reached
;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
a.root-servers.net.
; <<>> DiG 9.12.0 <<>> @a.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
f.root-servers.net.
; <<>> DiG 9.12.0 <<>> @f.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44
; Transfer failed.
Nie, w tej chwili żaden .COM
autorytatywny serwer nazw nie akceptuje zapytań AXFR. Ale niekoniecznie jest tak samo wszędzie. Jeśli f.root-servers.net
zapytasz serwer nazw, możesz wykonać zapytanie AXFR, aby opublikować wszystkie TLD. Niektóre inne domeny TLD również mogą na to pozwolić.
Należy pamiętać, że istnieje „wiele” zaleceń, które nie zezwalają na publiczne zapytania AXFR. Fakty są takie, że są z definicji ogromnymi odpowiedziami i mogą obciążać serwer, jeśli zostaną powtórzone, to prawda. On może bez końca spierać się o to, dlaczego / jeśli społeczeństwo potrzebuje tych informacji. Na początku DNS był częściej używany do kopiowania stref między serwerami nazw (teraz są o wiele lepsze alternatywy). Dlatego AXFR jest często wyłączany ... poza tym, że wykonujesz DNSSEC w tym samym czasie, w określony sposób (to znaczy NSEC, a nie wariant NSEC3), łatwo jest przejść przez standardowe zapytania DNS i bez AXFR, wszystkie twoje strefę i zrekonstruuj plik strefy. Istnieją narzędzia do tego.
Zauważ również, że różni dostawcy online sprzedadzą ci pliki stref i / lub listę wszystkich nazw domen dla wielu TLD, które zdobyli różnymi sposobami (jeden pomysł między innymi: bierzesz otwarte pliki stref, jak .COM
, a dla TLD pytasz .example
jeden po drugim wszystkie nazwy, które znalazłeś .COM
, które mogą dać ci pewne pomysły, oprócz oczywiście chodzenia po słowniku w oparciu o języki najczęściej używane w wyszukiwanej TLD).