Как можно назначить один IP-адрес для нескольких серверов доменных имен?
Например, у Google есть IPv4 8.8.8.8 со многими DNS, имеющими один и тот же адрес.
Когда я делаю запрос на поиск домена в их DNS, в зависимости от моего географического местоположения, запрос будет перенаправлен в местоположение Google DNS, которое является ближайшим к моему.
Соответствующая технология называется Anycast маршрутизация.
Anycast по сути умело использует поведение, присущее протоколу маршрутизации BGP. Сетевой префикс, содержащий соответствующий адрес (а), объявляется из нескольких мест. Другие маршрутизаторы BGP в Интернете используются для просмотра нескольких путей к одному месту назначения и выбора самого короткого (с точки зрения ТАК КАК хмеля) путь. В этом случае, однако, случается так, что несколько путей к этому «одному» месту назначения фактически заканчиваются в разных местах сети.
Стоит отметить, что он работает не из-за географической близости, а из-за близости с точки зрения количества автономные системы (объекты, такие как ISP, выполняющие маршрутизацию BGP) на сетевом пути к сети. Часто это отчасти коррелирует с географической близостью, но не обязательно.
Также стоит отметить, что, когда доступность маршрутов в таблице BGP со временем неизбежно изменится, вполне возможно, что «ближайший» адресат произвольной передачи изменится, возможно, в середине сеанса. Это, очевидно, нарушит любой протокол, который поддерживает состояние (включая все, что основано на TCP), когда это произойдет. DNS является примером протокола, который особенно хорошо подходит (в основном с использованием UDP, просто отвечая на одно сообщение, полученное в текущем запросе), но все, что не имеет очень долгоживущих соединений, может работать достаточно хорошо (CDN известно, что он поддерживает HTTP / HTTPS, что, очевидно, представляет собой небольшую авантюру).
Название вашего вопроса предполагает что-то совершенно другое, несколько IP-адресов для одного DNS-имени. Ваш фактический вопрос на самом деле не относится к DNS, он просто использует DNS в качестве примера. Сеть доставки контента для http (s) будет использовать то же самое.
Если в мире существуют разные серверы для одной и той же цели, то в маршрутизаторах устанавливаются разные цели маршрутизации, каждая из которых указывает на ближайший сервер.
Обычно вам нужен IP-адрес, который каждый маршрутизатор указывает на одно и то же место назначения. Здесь они указывают на разные направления, но на ту же функциональность.
Другой вариант, если маршрутизация Anycast недоступна на вашем уровне, - запустить географически разнесенный сервер и настроить систему DNS с помощью DNS Split Horizon