Возможно ли, чтобы два имени хоста имели один и тот же IP-адрес?

35

Может кто-нибудь объяснить, возможно ли для двух имен хостов использовать один и тот же IP-адрес?

А что, если одно имя хоста представляет более одного IP-адреса, это тоже возможно? Зачем?

джинсовый
источник
18
Хотите пример из реального мира, где это происходит? Пинг serverfault.comи superuser.comи посмотреть на IP-адрес, который возвращается для обоих.
Скотт Чемберлен
1
Все
имена

Ответы:

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 уже довольно неплохо описал первую часть
Матиас Р. Джессен,
О, я вижу, я пропустил описание. Спасибо за ответ, кстати!
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.

Sirch
источник
6
Стоит отметить, и я видел в реальном Интернете цепочки CNAME, которые ломали средства определения имен. Потому что CNAME может указывать на другой CNAME. Возможны даже циклы CNAME.
пп.
2
RFC 1912 2.4 ietf.org/rfc/rfc1912.txt
dmourati
Также стоит отметить, что 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 .

scravy
источник
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), обеспечивая соединение с резервированием и аварийным переключением.

Ниссар али
источник