Czy jest możliwe, aby dwie nazwy hosta miały ten sam adres IP?

35

Czy ktoś może wyjaśnić, czy dwie nazwy hosta mogą mieć ten sam adres IP?

A jeśli jedna nazwa hosta reprezentuje więcej niż jeden adres IP, czy to też możliwe? Czemu?

drelich
źródło
18
Chcesz przykład z prawdziwego świata, gdzie to się dzieje? Pinguj serverfault.comi superuser.comspójrz na adres IP, który jest zwracany dla obu.
Scott Chamberlain
1
Wszystkie nazwy hostów mają już wspólny adres 127.0.0.1, w pewnym sensie ...
jlliagre

Odpowiedzi:

45

Możliwe jest również przypisanie więcej niż jednego adresu IP do jednej nazwy hosta:

rr.example.com.        A      192.0.2.12
rr.example.com.        A      192.0.2.23
rr.example.com.        A      192.0.2.34
rr.example.com.        A      192.0.2.45

Po wysłaniu zapytania do serwera DNS rr.example.comotrzymasz z powrotem listę adresów IP. Następnie możesz połączyć się z jednym z nich. Jeśli pierwsza próba połączenia zostanie aktywnie odrzucona, po prostu spróbuj następnej.

Większość przeglądarek będzie podążać za tym przepływem, o ile punkty końcowe aktywnie odmawiają połączenia TCP. W przypadku przekroczenia limitu czasu punktu końcowego zasób będzie traktowany jako nieosiągalny, mimo że nie wszystkie IP zostały wypróbowane

Ponieważ większość aplikacji (łącznie z przeglądarkami) często interesuje się tylko 1 punktem końcowym IP na raz i po prostu wybiera pierwszą dostępną odpowiedź, ryzykujesz przesunięcie obciążenia między serwerami docelowymi, aby pierwszy serwer uzyskał cały ruch, podczas gdy inne mogą być bezczynne .

Aby to obejść, większość serwerów DNS oferuje tak zwaną konfigurację Round Robin, dzięki czemu serwer zmienia kolejność, w której zwracane są równorzędne rekordy. Zanim usługi równoważenia obciążenia stały się powszechne, był to skuteczny sposób na zrównoważenie obciążenia i nieco wdrożenie odporności na uszkodzenia w systemach sieciowych.

Mathias R. Jessen
źródło
7
Czy pytanie nie jest odwrotne?
mowwwalker
2
Są dwa pytania. @Sirch bardzo dobrze opisał pierwszą część
Mathias R. Jessen
Och, rozumiem, pominąłem opis. Dziękuję za odpowiedź btw!
mowwwalker
1
Czy przeglądarki / stosy sieciowe zwykle wypróbowują pierwszy otrzymany adres? A może spróbują losowo? Czy miałoby sens zrandomizowanie kolejności zwracania adresów IP przez serwer DNS w celu zrównoważenia obciążenia?
Tom Marthenal
Zależy od konkretnej implementacji klienta. Większość serwerów losowo sortuje kolejność zwracanych adresów IP (jest to zachowanie określane jako „round-robin”). Ciekawe pytania, myślę, że rozwinę nieco odpowiedź
Mathias R. Jessen
35

Tak, wiele nazw hostów może używać tego samego adresu IP, najlepszą praktyką jest użycie rekordu CNAME w celu wskazania rekordu A

bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

Zwróć uwagę na wszystkie kropki.

Posiadanie jednej nazwy hosta do reprezentowania wielu adresów IP jest nieco bardziej skomplikowane. Jeśli mówimy o rekordach MX, to rozwiązanie już istnieje w DNS przy użyciu numerów priorytetowych, jeśli chcesz, aby reprezentowało wiele rekordów A, lepiej użyj modułu równoważenia obciążenia, na przykład HAProxy.

Sirch
źródło
6
Warto zauważyć, a widziałem w prawdziwym Internecie, łańcuchy CNAME, które złamały translatory nazw. Ponieważ CNAME może wskazywać na inną CNAME. Możliwe są nawet pętle CNAME.
PP.
2
RFC 1912 2.4 ietf.org/rfc/rfc1912.txt
dmourati
Warto również podkreślić, że Azapisy zawierające ten sam adres IP może pojawić się w różnych strefach, na przykład, x.foo.com. A 1.2.3.4i y.bar.com. A 1.2.3.4.
Blrfl,
Ta odpowiedź zapomina powiedzieć o Arekordach wieloznacznych , które również prowadzą do wielu nazw hostów w tym samym adresie IP.
Izzy
Hej, Sirch, o co chodzi z przystankami?
JonoRR,
6

Oprócz zmiany CNAME, jak sugerują inne odpowiedzi, musisz także obsługiwać logikę na serwerze hostingowym. Używam Apache i skonfigurowałem go jako:

<VirtualHost 1.2.3.4:80>
    ServerName  www.abc.com
    ServerAlias abc.com
    ...
</VirtualHost>

<VirtualHost 1.2.3.4:80>
    ServerName  www.xyz.com
    ServerAlias xyz.com
    ...
</VirtualHost>

Jestem pewien, że inne oprogramowanie serwera HTTP ma podobne rzeczy.

Yandong Liu
źródło
2

Musisz jasno określić, co rozumiesz przez dwie nazwy hostów. Jeśli masz na myśli dwa fizyczne pola z tym samym adresem IP, odpowiedź zazwyczaj nie. W przypadku, gdy serwer A i serwer B pracują jako klaster aktywno-pasywny, każdy serwer ma dwa adresy na jeden element. Jednym z nich byłby adres IP dedykowany temu serwerowi, a drugim byłby adres współdzielony między serwerami, ale tylko aktywny serwer będzie nasłuchiwał tego wspólnego adresu. Serwer pasywny zaczyna nasłuchiwać pod wspólnym adresem dopiero, gdy aktywny serwer ulegnie awarii.

Keith Wolters
źródło
2

Warto również zauważyć, że w IPv6 możesz przypisać ten sam adres IP do dwóch lub więcej hostów, a sieć wykona dla ciebie równoważenie obciążenia i przełączenie awaryjne (jeśli jeden nie jest osiągalny, spróbuj drugiego). Oba są traktowane jako jeden logiczny punkt końcowy i DNS nie jest w żaden sposób zaangażowany.

Ta funkcja nosi nazwę Anycast .

scravy
źródło
1

Wiele adresów IP dla tej samej domeny:

  • Tak, jest to możliwe i bardzo powszechne: jeśli serwer (z ip A) upadnie, możesz połączyć się z następnym adresem IP rejestru DNS i uzyskać dostęp do innego serwera (z ip B), aby uzyskać usługę.

Wiele domen dla tego samego adresu IP:

Musisz odpowiedzieć na następne pytanie: Czy wszystkie domeny zapewniają tę samą usługę?

  • Jeśli tak: jest to bardzo powszechna konfiguracja: wiele firm kupuje wiele domen z inną domeną najwyższego kraju: xxx.com, xxx.net, xxx.org itp. I wszystkie wskazują na tę samą usługę, to znaczy , na tę samą listę adresów IP.
  • Jeśli nie: jest to możliwe, ale nie jest powszechne i nie jest zalecane. Niektóre firmy hostingowe, które zezwalają tylko na usługę HTTP, używają NAT / proxy do oszczędzania IP. Ale oczywiście oznacza to serwer proxy, który „rozumie” HTTP w celu identyfikacji usługi docelowej.
Adrian Maire
źródło
0

Wiele serwerów w telekomunikacji (takich jak HSS i PCRF) korzysta z transportu SCTP, dlatego serwery te mają wiele adresów IP. Adresy te są używane do obsługi wielu baz danych (które obsługuje SCTP), zapewniając połączenie z redundancją i przełączaniem awaryjnym.

Nissar Ali
źródło