Я знаю, что корневые серверы DNS имеют 13 ips, и они используют anycast для распространения запроса на свои 800 реальных физических серверов по всему миру.

Я знаю, что у корневого сервера в Гонконге один и тот же IP-адрес с другим зеркальным сервером, допустимо иметь два сервера с разным физическим адресом в Интернете с одним и тем же IP-адресом?

Но я не знаю, как запрос DNS будет нацелить ближайший сервер к моему местоположению, как Гонконг.

Как DNS выбирает свой сервер и допустимо ли иметь 2 разных сервера с физическим адресом с одинаковым ip?

1 ответ1

0

В большой сети (с выделенными маршрутизаторами) между двумя компьютерами может быть несколько сетевых путей. Маршрутизаторы часто имеют несколько сетевых ссылок друг на друга для обеспечения избыточности, поэтому вы можете отправлять пакеты по любой ссылке для достижения одного и того же компьютера назначения.

Anycast использует это, создавая впечатление, что существует два или более маршрутов к IP-адресу, но на самом деле эти маршруты идут на совершенно разные компьютеры. Если один из компьютеров отключится, маршрут исчезнет, но другой маршрут останется доступным.

Это требует некоторой конфигурации, чтобы начать работать. Для совместного использования IP-адресов между сайтами вам необходимо настроить BGP (маршрутизация на уровне ISP), и вы можете сделать это только для блоков, по крайней мере, с 256 IP-адресами (поэтому использование anycast только для одного IP приведет к потере ~ 253 IP). Внутри сайта вам все еще нужно настроить маршрутизаторы, чтобы они знали, где найти все конечные точки anycast, и обычно это делается для того, чтобы каждая конечная точка публиковала свое присутствие, когда она в сети.

Поскольку конечные точки выглядят как несколько путей к одному компьютеру, трафик может случайным образом использовать другой путь. Обычно это не проблема (пакеты по-прежнему поступают в одно и то же место, даже если путь, по которому они пошли, изменились), но для anycast IP другой путь означает другое назначение. Это означает, что вы можете отправлять трафик на одну конечную точку, и вдруг пакеты будут доставлены на другую конечную точку.

По этой причине anycast не работает с "долгоживущими" протоколами и обычно используется только с протоколами без сохранения состояния. DNS-рассылка обычна, потому что пакеты маленькие, и не имеет значения, если сервер конечной точки неожиданно изменится. Некоторые сайты используют anycast с HTTP для очень маленьких файлов, которые могут быть получены только одним или двумя пакетами. Но все, что выходит за рамки этого, становится ненадежным с anycast, так как TCP-соединения будут случайным образом выпадать при каждом изменении "пути".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .