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

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

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

7 ответов

Решение

Назначение более одного 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, заставляя сервер чередовать порядок, в котором возвращаются одинаково совпадающие записи. До того, как балансировщики нагрузки стали обычным явлением, это был эффективный способ балансировки нагрузки и некоторой реализации отказоустойчивости в сетевых системах.

Да, несколько имен хостов могут использовать один и тот же IP-адрес. Рекомендуется использовать запись CNAME для указания на запись A

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

Обратите внимание на все полные остановки.

Наличие одного имени хоста для представления нескольких IP-адресов немного сложнее. Если мы говорим о записях MX, это решение уже существует в DNS с использованием номеров приоритетов, если вы хотите, чтобы оно представляло несколько записей A, лучше использовать балансировщик нагрузки, например HAProxy.

В дополнение к изменению 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-серверов есть подобные вещи.

Стоит также отметить, что в IPv6 вы можете назначить один и тот же IP-адрес двум или более хостам, и сеть выполнит балансировку нагрузки и восстановление после сбоя (если один из них недоступен, попробуйте другой). Оба рассматриваются как одна логическая конечная точка, и DNS вообще не задействован.

Эта функция известна как Anycast.

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

Несколько IP для одного домена:

  • Да, это возможно и очень часто: если сервер (с ip A) падает, вы можете подключиться к следующему IP-адресу регистра DNS и получить доступ к другому серверу (с ip B), чтобы получить услугу.

Несколько доменов для одного IP:

Вам необходимо ответить на следующий вопрос: все ли домены предоставляют одинаковые услуги?

  • Если да: это также очень распространенная конфигурация: многие компании покупают много доменов с доменом верхнего уровня другой страны: xxx.com, xxx.net, xxx.org и т. Д. И все они указывают на один и тот же сервис, то есть, к тому же списку IP.
  • Если нет: это возможно, но не часто и не рекомендуется. Некоторые хостинговые компании, которые разрешают только HTTP-сервис, используют NAT/Proxy для экономии IP. Но, конечно, это означает, что прокси-сервер "понимает" HTTP для идентификации службы назначения.

Многие серверы в телекоммуникации (например, HSS и PCRF) используют транспорт SCTP, поэтому у этих серверов несколько IP-адресов. Эти адреса используются для множественной адресации (которую поддерживает SCTP), обеспечивая соединение с резервированием и аварийным переключением.

Другие вопросы по тегам