Чи можливо, що два імена хоста мають спільну IP-адресу?


35

Чи може хтось пояснити, чи можна двом іменам хостів спільно використовувати однакову IP-адресу?

А як бути, якщо одне ім’я хоста представляє більше однієї IP-адреси, це теж можливо? Чому?


18
Хочете прикладу реального світу, де це відбувається? Пінг serverfault.comі superuser.comподивитися IP-адресу, яка повертається для обох.
Скотт Чемберлен

1
Усі імена хостів уже мають адресу 127.0.0.1, начебто ...
jlliagre

Відповіді:


45

Також можливе призначення декількох IP-адрес одному імені хоста:

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

Коли ви запитаєте DNS-сервер, rr.example.comви отримаєте назад список IP-адрес. Потім ви можете підключитися до одного з них. Якщо в першій спробі підключення активно відмовилися, просто спробуйте наступну.

Більшість браузерів буде стежити за цим потоком, доки кінцеві точки активно відмовляються від TCP-з'єднання. Якщо час закінчення закінчується, то ресурс буде розглядатися як недоступний, навіть не випробувані всі IP-адреси

Оскільки більшість програм (включені браузери) часто цікавлять лише 1 кінцеву точку IP одночасно і просто вибирають першу доступну відповідь, ви ризикуєте перекрутити навантаження між цільовими серверами, щоб перший сервер отримував увесь трафік, а інші могли працювати в режимі очікування. .

Щоб обійти це, більшість серверів DNS пропонують те, що відомо як конфігурація Round Robin, змушує сервер чергувати порядок, у якому повертаються однаково відповідні записи. Перед тим, як балансири навантажень були звичними, це був ефективний спосіб завантаження балансу та дещо реалізувати відмовостійкість у мережевих системах.


7
Чи не питання ставить зворотну сторону цього?
mowwwalker

2
Є два питання. @Sirch вже досить добре висвітлював першу частину
Mathias R. Jessen

О, бачу, я пропустив опис. Дякую за відповідь btw!
mowwwalker

1
Чи зазвичай браузери / мережеві стеки намагаються отримати першу адресу? Або спробують випадковий? Чи має сенс рандомізувати IP-адреси замовлення, які повертає ваш DNS-сервер, щоб спробувати збалансувати навантаження?
Том Мартенал

Залежить від конкретного впровадження клієнта. Більшість серверів рандомізують порядок повернених IP-адрес (така поведінка називається "кругообіг"). Насправді цікаві питання, я думаю, я трохи
розширю

35

Так, можливо для кількох імен хостів використовувати одну і ту ж ip адресу, найкраща практика - використовувати запис CNAME для вказівки на запис A

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

Візьміть на замітку всі повні зупинки.

Мати одне ім’я хоста для представлення кількох ip-адрес трохи складніше. Якщо ми говоримо про записи MX, це рішення вже існує в DNS з використанням номерів пріоритету, якщо ви хочете, щоб вони представляли кілька записів A, краще використовувати балансир навантаження, наприклад HAProxy.


6
Варто зазначити, і я бачив в реальному Інтернеті ланцюги CNAME, які зламали роздільну здатність імен. Оскільки CNAME може вказувати на інший CNAME. Можливі навіть петлі CNAME.
ПП.


Варто також зазначити, що Aзаписи, що містять один і той же IP, можуть з’являтися в різних зонах, наприклад, x.foo.com. A 1.2.3.4і y.bar.com. A 1.2.3.4.
Blrfl

Ця відповідь забуває розповісти про Aзаписи підстановок , які також призводять до кількох імен хостів в одному IP-адресі.
Іззі

Гей, Сірч, у чому справа з повними вершинами?
JonoRR

6

На додаток до зміни CNAME, як запропоновано інші відповіді, вам також доведеться керувати логікою на своєму хостинг-сервері. Я використовую Apache і налаштував його як:

<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>

Я впевнений, що в інших програмних програмах http-сервера є подібні речі.


2

Вам потрібно зрозуміти, що ви маєте на увазі під двома іменами хостів. Якщо ви маєте на увазі два фізичних поля з однаковою IP-адресою, відповідь, як правило, ні. Випадок, коли б ви були, якщо serverA та serverB працюють як активно-пасивний кластер, то у кожного сервера буде дві частини. Один буде ip-адресою, присвяченою цьому серверу, а другий ip-адресою, який би був спільним між серверами, але лише активний сервер слухатиме цю спільну адресу. Пасивний сервер починає прослуховувати за загальною адресою лише тоді, коли активний сервер знижується.


2

Варто також зазначити, що в IPv6 ви можете призначити один і той же IP двом або більше хостам, і мережа зробить балансування навантаження та відмову від вас (якщо один недоступний, спробуйте інший). Обидва розглядаються як одна логічна кінцева точка, і жодна DNS не має жодної участі.

Ця функція відома як Anycast .


1

Кілька IP для одного домену:

  • Так, це можливо і дуже часто: Якщо сервер (з ip A) впаде, ви можете підключитися до наступного IP-реєстру DNS і отримати доступ до іншого сервера (з ip B), щоб отримати послугу.

Кілька доменів для одного і того ж IP:

Вам потрібно відповісти на наступне запитання: чи всі домени надають однакову послугу?

  • Якщо так: це дуже поширена конфігурація також: багато компаній купують багато домену з різними доменними країнами: xxx.com, xxx.net, xxx.org тощо. І всі вони вказують на ту саму послугу, тобто , до того ж списку IP.
  • Якщо ні: це можливо, але не є загальним і не рекомендується. Деякі хостингові компанії, які дозволяють лише сервіс HTTP, використовують NAT / Proxy, щоб зберегти IP. Але звичайно, це означає проксі, який "розуміє" HTTP, щоб визначити службу призначення.

0

Багато серверів у телекомунікаціях (наприклад, HSS та PCRF) використовують транспорт SCTP, і ці сервери мають кілька IP-адрес. Ці адреси використовуються для багатонавісного наведення (який підтримує SCTP), що забезпечує з'єднання із надмірністю та відмовою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.