![Один IP-адрес назначен нескольким серверам?](https://rvso.com/image/726406/%D0%9E%D0%B4%D0%B8%D0%BD%20IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%D0%BC%3F.png)
Как можно назначить один IP-адрес нескольким серверам доменных имен?
Например, у Google есть IPv4 8.8.8.8 со многими DNS, имеющими тот же адрес.
Когда я делаю запрос на поиск домена в их DNS, на основе моего геолокации запрос будет перенаправлен в местоположение DNS Google, которое является ближайшим к моему.
решение1
Соответствующая технология называетсялюбойкастмаршрутизация.
Anycast по сути искусно использует внутреннее поведение протокола маршрутизации BGP. Сетевой префикс, содержащий соответствующий адрес(а), объявляется из нескольких мест. Другие маршрутизаторы BGP в Интернете привыкли видеть несколько путей к одному и тому же месту назначения и выбирать кратчайший (с точки зренияКАКhops) path. В этом случае, однако, так уж получилось, что несколько путей к этому «одному» месту назначения на самом деле заканчиваются в разных местах сети.
Стоит отметить, что он работает не по принципу географической близости, а по принципу близости по количеству.автономные системы(субъекты, такие как интернет-провайдеры, выполняющие маршрутизацию BGP) на сетевом пути к сети. Часто это в некоторой степени коррелирует с географической близостью, но не обязательно.
Также стоит отметить, что когда доступность маршрутов в таблице BGP неизбежно со временем изменится, вполне возможно, что "ближайший" пункт назначения anycast изменится, возможно, в середине сеанса. Это событие, очевидно, сломает любой протокол, который поддерживает состояние (включая все, что основано на TCP), когда это произойдет. DNS — это пример протокола, который особенно хорошо подходит (в первую очередь, использующий UDP, просто отвечая на то единственное, что он получил в текущем запросе), но все, что не имеет очень долгоживущих соединений, может работать достаточно хорошо (известно, что CDN используют HTTP/HTTPS, что, очевидно, немного рискованно).
решение2
Название вашего вопроса предполагает нечто совершенно иное, несколько IP-адресов для одного имени DNS. Ваш фактический вопрос на самом деле не относится к DNS, он просто использует DNS в качестве примера. Сеть доставки контента для http(s) будет использовать то же самое.
Если по всему миру имеются разные серверы для одной и той же цели, то на маршрутизаторах настраиваются разные цели маршрутизации, каждая из которых указывает на ближайший сервер.
Обычно вы хотите, чтобы IP-адрес был направлен на один и тот же пункт назначения. Здесь они направлены на разные пункты назначения, но на одну и ту же функциональность.
решение3
Другим вариантом, если на вашем уровне недоступна маршрутизация Anycast, будет запуск географически распределенного сервера и настройка системы DNS с использованиемDNS-разделение горизонта