Czy to możliwe, że jedna nazwa domeny ma wiele odpowiadających sobie adresów IP?

86

Na przykład, kiedy się łączymy www.example.com, na początku próbujemy się połączyć 192.0.2.1. A jeśli pierwsza próba się nie powiedzie, to próbujemy 192.0.2.222.

Czy to możliwe? Czy możemy zarejestrować wiele zapasowych adresów IP dla jednej nazwy domeny?

firia2000
źródło
To nie będzie dokładnie działać w ten sposób (z Round Robin). Jeśli zapytasz hosta wiele razy, otrzymasz z powrotem różne adresy IP za każdym razem, gdy wykonasz zapytanie, a nie tylko w przypadku awarii hosta.
karatedog
@karatedog, zakładałem, że połączenie przez gniazdo spróbuje połączyć się z następnym IP, jeśli nie może połączyć się z pierwszym
Akash Kava
4
@AkashKava: Pojedyncze połączenie ma wiele wewnętrznych kroków. Uproszczone: aplikacja wysyła zapytanie do DNS i otrzymuje adres IP. Następnie łączy się z tym adresem IP. Jeśli to połączenie nie powiedzie się, aplikacja nie wróci do pierwszego kroku i nie wyśle ​​ponownego zapytania do DNS, tylko jeśli zostanie wyraźnie zakodowana, aby to zrobić. Wielokrotne wysyłanie zapytań do serwera DNS niekoniecznie daje inny adres IP. Krótko mówiąc, zapasowy serwer DNS nie może być używany do celów równoważenia obciążenia.
karatedog
czy możemy użyć tej techniki do skalowania wielu systemów równoważenia obciążenia?
Vikas Verma

Odpowiedzi:

62

To jest system DNS z działaniem okrężnym. To dość proste rozwiązanie do równoważenia obciążenia. Zwykle serwery DNS dokonują rotacji / tasowania rekordów DNS dla każdego przychodzącego żądania DNS. Niestety nie jest to prawdziwe rozwiązanie w przypadku przełączania awaryjnego. Jeśli jeden z serwerów ulegnie awarii, niektórzy odwiedzający nadal będą kierowani na ten uszkodzony serwer.

Jens Bradler
źródło
3
To zależy od Twoich oczekiwań co do czasu rekonwalescencji. Jeśli świadczona usługa może nie działać przez kilka sekund lub minut, możesz odpowiednio zaktualizować DNS (np. Usunąć adresy IP z uszkodzonych systemów). Jeśli jest to nie do przyjęcia, usługa DNS nie może Ci pomóc i musisz użyć modułów równoważenia obciążenia i struktury sieci o wysokiej dostępności.
Jens Bradler
Czy wiesz, jak klient wybiera swój adres IP z listy? Czy jest to wybór losowy, czy też klient powinien wybrać pierwszą pozycję z listy? Ponieważ w pierwszym przypadku runda / robin nie jest zbyt przydatna.
Tobia,
Tasowanie lub obracanie rekordów jest zadaniem serwera DNS. Większość klientów użyje tylko pierwszego rekordu. Na przykład Bind9 można skonfigurować tak, aby zastosować różne porządki do tego typu zestawu rekordów: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler,
czy możemy użyć tej techniki do skalowania wielu systemów równoważenia obciążenia?
Vikas Verma
45

Możesz to zrobić. To właśnie robią duzi faceci.

Pierwsze zapytanie:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Następne zapytanie:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Jak widać, lista adresów IP była obracana, ale względna kolejność między dwoma adresami IP pozostała taka sama.

Aktualizacja: Widzę kilka komentarzy przechwalających się, że działanie okrężne DNS nie jest wygodne w przypadku przełączania awaryjnego, więc oto podsumowanie: DNS nie służy do przełączania awaryjnego. Więc oczywiście nie nadaje się do przełączania awaryjnego. Nigdy nie został zaprojektowany jako rozwiązanie do przełączania awaryjnego.

karatedog
źródło
1
Czy musimy coś włączyć, aby ten Round Robin działał, czy jest to wykonywane automatycznie przez każdy serwer DNS? Mam jeden Linux i jeden MS DNS.
Akash Kava,
3
Dlaczego Google miałby to robić, skoro nie obejmuje przełączania awaryjnego?
Joseph Persie,
12
@JosephPersie: ponieważ DNS nie jest używany do przełączania awaryjnego. Dając wiele adresów IP do tej samej nazwy domeny, przychodzące żądania są po prostu dzielone między serwery nasłuchujące na tych adresach IP. Potraktuj to jako równoważenie obciążenia pierwszego poziomu, bez sprawdzania stanu zaplecza. Nie potrzebujesz tego, jeśli nie masz tysięcy serwerów :-)
karatedog
co się dzieje, gdy moduł równoważenia obciążenia nie działa, a żądanie jest przekazywane do tego samego systemu równoważenia?
Jitendra Vispute
1
@JitendraVispute: DNS nie wie o usłudze za adresem IP, który zwraca. Krótko mówiąc, jeśli za adresem IP, który został właśnie zwrócony przez serwer DNS, znajduje się uszkodzony serwer lub usługa zepsuta, żądanie do tego adresu IP zakończy się niepowodzeniem.
karatedog
2

Tak, jest to możliwe, ale nie jest wygodne, jak powiedział Jens. Korzystanie z modułów równoważenia obciążenia nowej generacji, takich jak Alteon, który wykorzystuje zastrzeżony protokół o nazwie DSSP (Distributed Site State Protocol), który przeprowadza regularne kontrole lokalizacji, aby upewnić się, że usługa jest dostępna zarówno lokalnie, jak i globalnie, tj. W różnych obszarach geograficznych. Musisz jednak w swoim głównym serwerze DNS delegować adres URL lub usługę do urządzenia, konfigurując je jako autorytatywny serwer nazw dla tego adresu IP lub usługi. W ten sposób urządzenie odpowiada na zapytania DNS, gdzie rozwiąże adres IP, który ma usługę w trybie Round-Robin lub nie jest przeciążony, zgodnie z wybranym przez Ciebie kilkoma metrykami.

Ezra A.Mosomi
źródło
1
To brzmi bardziej jak reklama niż cokolwiek innego, a systemy równoważenia obciążenia nie są wybitnymi wykonawcami w świecie DNS (w odniesieniu do specyfikacji). A dokładniej: „w głównym serwerze DNS do delegowania adresu URL lub usługi” nie ma pojęcia adresu URL lub usługi w serwerach nazw / DNS, gdy delegujesz strefę (domenę) do innych serwerów nazw. „jako autorytatywny serwer nazw dla tego adresu IP lub usługi”. w konsekwencji serwery nazw są autorytatywne dla stref / domen, a nie dla adresów IP lub usług.
Patrick Mevzek,
Z punktu widzenia pracy działają, de facto standardem dla całej sieci CDN było używanie modułów równoważenia obciążenia, aby skutecznie to robić, ponieważ mogą łączyć zaawansowane funkcje, takie jak GEO-LOKALIZACJA, aby nadać adresy IP, które są nawet w pobliżu Twojego lub dla serwera, który jest wysoce responsywny, między innymi metryki.
Ezra A.Mosomi
1
I wprowadzają wiele problemów w tym samym czasie. Brak srebrnej kuli, wszystko ma cechy i wady. Każdy serwer nazw może wykonywać lokalizację geograficzną i odpowiadać za pomocą innego adresu IP w zależności od klienta, bez potrzeby stosowania do tego modułów równoważenia obciążenia. Jest nawet pomocny standard: podsieć klienta EDNS.
Patrick Mevzek,