В системе Windows этот файл находится по адресу C:\WINDOWS\system32\drivers\etc\hosts
. Этот файл позволяет нам по умолчанию определенный IP-адрес для имени хоста.
Вопрос в том, могу ли я установить несколько IP-адресов для имени хоста. Например, могу ли я сделать что-то вроде этого:
192.168.244.128 gateway.net
192.168.226.129 gateway.net
И ожидать, что браузер может разрешить оба из них, посмотреть, какой из них будет работать, и, следовательно, указать на это?
Если нет, есть ли другой способ получить поведение, которое я хочу?
Примечание. Я развертываю это приложение в своей локальной сети, поэтому нет необходимости в Интернете.
Да, вы можете сделать это, я использовал его для тестирования сценариев циклического перебора DNS без необходимости вводить хосты в DNS.
Когда приложение вызывает gethostbyname, оно возвращает полный список IP-адресов (возможно, в произвольном порядке - в зависимости от библиотек / ОС).
источник
Я думаю, что вы идете об этом неправильно. Дайте мне знать, если я делаю неправильные предположения здесь.
Сценарий:
То, что вы пытаетесь сделать, называется циклическим DNS (он же балансировка нагрузки плохого человека), но вы пытаетесь сделать это со стороны клиента. Кажется, это не дает желаемого эффекта (по крайней мере, на моем компьютере с Windows XP), даже если я очищаю кэш DNS. Windows разрешит только первый IP-адрес в файле. Тем не менее, циклический DNS не является отказоустойчивым, так что это не поможет вам достичь того, чего вы хотите.
Предлагаемое решение:
Аппаратный балансировщик нагрузки: некоторые торговые марки Alteon, Big-IP, Barracuda. То, что это делает, в основном представляет один IP-адрес для подключения ваших пользователей и перенаправляет запросы на веб-серверы. Если один из серверов станет недоступным, он больше не будет перенаправлять трафик на него. Это дорогой вариант.
Службы балансировки сетевой нагрузки: это технология Microsoft, доступная на сервере Windows, которая дает вам один кластерный IP-адрес. Он достигает того же результата, что и аппаратный балансировщик нагрузки, но другим способом. Все, что вам нужно сделать, это настроить его .
источник
С http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main
Пример IPv4
В этом примере hostA имеет 2 IP-адреса и 3 псевдонима. Псевдоним hostB указывает первый адрес, а псевдонимы hostC и host-C указывают второй адрес. LSF использует официальное имя хоста hostA, чтобы определить, что оба IP-адреса принадлежат одному и тому же хосту.
источник
Я предлагаю использовать внутренний DNS-сервер с циклическим перебором DNS и TTL = 0. Если вы обновите запись DNS (также с автоматической системой проверки ip), когда IP / сервер не работает, вы можете иметь систему высокой доступности.
источник
Я сделал это в домашней сети, где я назначаю статические IP-адреса как проводным, так и беспроводным сетевым интерфейсам ноутбука, а из файла хостов другой машины указывает одно имя хоста на оба этих IP-адреса. Вроде нормально работает.
источник
Основываясь на этом примере, я сделал следующее 10.18.yx 192.168.zx hostA
Где hostA - это имя хоста сервера, к которому я намерен подключиться как из внутренней сети (192.168.yx), так и из VPN (10.8.zx).
Так что это работает хорошо, и я могу заставить samba работать через VNP с использованием имени хоста, поэтому для меня нормально иметь подключенные диски в Windows в обоих случаях (с подключением к локальной сети или VPN).
С наилучшими пожеланиями.
источник
@ Plamen Dimitrov Вам понадобится устройство для управления таким балансом, возможно, коммутатор, который может обрабатывать BGP перед вашим FW- или использовать ваш FW, если это возможно. Если ваш Ciscos обрабатывает BGP, изучите его. Таким образом, вы можете сделать так, чтобы оба IP-адреса вашего интернет-провайдера входили в коммутатор Cisco и / или коммутатор, и целевые серверы имели бы действительные IP-адреса 24-битных общедоступных IP-адресов (ОТЛИЧАЮЩИХСЯ ОТ 2 IP-адресов ISP). В этот момент (вы используете 3 различных общедоступных IP-блока, один для ваших серверов ДОЛЖЕН БЫТЬ 24 БИТА), вам нужно, чтобы каждый из ваших интернет-провайдеров знал об этом решении, и они должны были бы поддержать Решение BGP между ними, которое большинство сделает. Теперь, когда ваше полное доменное имя разрешится, оно будет преобразовано в ваш 24-битный блок IP-адресов, даже если 1 линия ISP не работает. Цель состоит в том, Ваши 24-битные адреса всегда будут доступны, поскольку ваши интернет-провайдеры согласны направить этот 24-битный адрес через свои линии. Это работает и для VPN, поскольку все, что вы используете для VPN, это 24-битные адреса, а не IP-адреса интернет-провайдера, который вы подключили к своему Cisco / или коммутатору. В этот момент вы должны быть осторожны с BGP FLAPPING, где, если ваши линии сильно растут и падают, из-за линии, получающей DOS, DNS-адреса будут настолько сильно изменяться в Интернете, что DNS-серверы автоматически удаляют IP-адреса. Это приведет к вашему 24-битному блоку IP-адресов. Это атака DOS на решения BGP. В этот момент вы должны быть осторожны с BGP FLAPPING, где, если ваши линии сильно растут и падают, из-за линии, получающей DOS, DNS-адреса будут настолько сильно изменяться в Интернете, что DNS-серверы автоматически удаляют IP-адреса. Это приведет к вашему 24-битному блоку IP-адресов. Это атака DOS на решения BGP. В этот момент вы должны быть осторожны с BGP FLAPPING, где, если ваши линии сильно растут и падают, из-за линии, получающей DOS, DNS-адреса будут настолько сильно изменяться в Интернете, что DNS-серверы автоматически удаляют IP-адреса. Это приведет к вашему 24-битному блоку IP-адресов. Это атака DOS на решения BGP.
источник
Небольшое уточнение здесь, по крайней мере, в мире Windows: у вас МОЖЕТ быть два IP-адреса для одного имени в файле hosts. При запросе все адреса возвращаются. Приложение (т.е. браузер) будет пытаться подключиться к каждому по очереди, пока не будет установлено соединение. IOW, он попробует все адреса до истечения времени ожидания. (Это распространенное недоразумение, так как многие считают, что он попробует только «первый» адрес.)
Вы можете проверить это с помощью следующего эксперимента:
Добавьте два или более адреса для хоста в файле hosts, один реальный, а другие фальшивые. (Уменьшите фальшивые адреса в алфавитном порядке.) Откройте браузер и попробуйте подключиться к имени хоста. Запустите netstat -no одновременно. Вы должны увидеть попытки подключения к поддельному адресу. (застрял в SYN_SENT) Браузер в конечном итоге доберется до хорошего адреса и подключится. Существует задержка в подключении, но она будет работать.
источник
ipconfig /flushdns
чтобы убедиться, что предыдущие разрешения были забыты. Попытался открыть сайт (локальный для моей машины) в окне инкогнито в Chrome, чтобы исключить результаты кэширования. Это просто не удалось (и я подождал несколько минут, чтобы посмотреть, будет ли это в конечном итоге работать). Нажмите «Обновить», чтобы быть уверенным. Затем я закомментировал фиктивный IP из моего файла hosts. Ничего не делая, я обновил страницу, и это сработало. То же самое с Firefox.Вы не можете сделать это с файлом hosts.
Вы также не можете сделать это с DNS: вы можете обслуживать несколько IP-адресов для одного имени, но браузер выберет только один из этих нескольких IP-адресов, попробуйте его, и если этот хост в настоящее время не работает, браузер отобразит ошибку подключения ,
Одним из возможных решений является настройка прокси-сервера и настройка этих двух IP-адресов в качестве родительских для обслуживаемого ими домена. По крайней мере, в случае Squid, прокси будет пробовать один сервер и, в случае неудачи, пробовать второй сервер. Затем настройте свой браузер на использование этого прокси-сервера.
источник