Czytałem o DNS kilka dni temu i dowiedziałem się, jak przetwarzane są żądania. Jeśli przejdziesz na stronę www.example.com, żądanie przejdzie do głównego serwera nazw, aby dowiedzieć się, kto jest właścicielem tego adresu .com, a następnie kolejne żądanie przejdzie na inny, bardziej lokalny serwer DNS, aby zobaczyć, kto jest właścicielem example.com adres i tak dalej.
W jaki sposób jest technicznie możliwe, że 13 głównych serwerów nazw może obsłużyć wszystkie żądania złożone przez miliardy użytkowników Internetu jednocześnie, bez konieczności wykonywania ddos: ed?
a.b.c.example
powiedziano ci, kto jest odpowiedzialny,c.example
a nie kto jest odpowiedzialnyexample
.Odpowiedzi:
Są 13 wysoce dostępnymi klastrami serwerów, a nie tylko 13 serwerami.
Między innymi operatorzy serwerów nazw root muszą mieć wystarczającą pojemność, aby obsłużyć trzykrotnie swoje normalne obciążenie ruchem ( RFC 2870 ). Prowadzi to do dość dużych klastrów.
Jednak serwery nazw korzeniowe służą jedynie odpowiedzi dla najpopularniejszych domen najwyższego poziomu, czyli siebie
com.
,net.
,uk.
,ae.
, itd, a serwery nazw, które kwerendy root może buforować tę informację do 48 godzin , co znacznie zmniejsza obciążenie na serwery nazw root. Prowadzi to do mniejszych klastrów.Główne serwery nazw znajdują się w ponad 130 fizycznych lokalizacjach w 53 krajach; z tylko 13 nazwami serwerów, odbywa się to za pomocą magii anycast IPv4.
Główne serwery nazw mają również własną stronę internetową , która może być interesująca do przeczytania.
źródło
Oni nie. Główne serwery nazw muszą tylko powiedzieć, jakie serwery nazw obsługują
com
. Odtąd nie musisz się do nich udawać, aby obsłużyć jakąkolwiek domenęcom
. Główne serwery nazw nie mają pojęcia, kto jest właścicielemexample.com
. Są to główne serwery nazw, a nie serwery nazw com .To, co powiedział slimsuperhero, jest również prawdą. Wiele serwerów nazw o dużej objętości korzysta z anycast, aby jeden adres IP był obsługiwany przez wiele serwerów na całym świecie.
źródło
com
.com
z drugiej strony muszą być znacznie bardziej masywne.Każdy serwer root nie jest tak naprawdę serwerem, są to ogromne klastry serwerów. Oprócz tego odpowiedzi DNS są buforowane, więc nie każde żądanie dociera do serwera root.
źródło
Pamiętaj, że nie korzystasz z serwerów głównych. Zwykle używasz serwera DNS dostarczonego przez dostawcę usług internetowych, który zazwyczaj może natychmiast zareagować, jeśli potrzebne informacje znajdują się w lokalnej pamięci podręcznej. Tylko jeśli nie jest w pamięci podręcznej, pytany jest ich serwer DNS, a dopiero potem serwer główny (i ta odpowiedź jest następnie buforowana)
źródło
W rzeczywistości jest to 13 Anycastowy adres IP, który można znaleźć na wielu serwerach na całym świecie. Możesz spojrzeć na link, aby znaleźć te serwery w razie potrzeby. Wszystkimi tymi serwerami zarządza zainteresowany organ.
Fakt, że nadal używamy tylko 13 adresów IP (i klastra serwerów posiadających ten sam adres IP) polega na tym, że rozmiar pakietu nie przekroczy 512 bajtów. To dlaczego? mamy TCP, który może przekroczyć ten rozmiar pakietu, dlaczego nie możemy go użyć ?. Chodzi o to, że TCP wiąże się z bardzo dużym obciążeniem, ponieważ obejmuje wiele kroków i procedur w celu ustanowienia połączenia TCP. Z tego powodu cały proces zapytania DNS będzie przebiegał powoli.
Rzeczy takie jak DNS nigdy nie mogą być wolne i dlatego wciąż używamy tego samego starego systemu.
źródło
.
nie mieści się już w 512 bajtach. Ponieważ IPv6 jest teraz koniecznością, odpowiedź wzrosła do 811 bajtów. Z EDNS, które można zwrócić w jednej odpowiedzi. Jednak zapytania.
nie są potrzebne tak często, że kilka podróży w obie strony jest wizytówką. Jest to przede wszystkim potrzebne, aby rekursory poznały najnowsze zmiany adresów IP rdzeni, które rzadko się zmieniają.