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?


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.


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.


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.


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.


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.


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 .


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.

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.