Anycast


В теории компьютерных сетей anycast (англ. any cast — «посылка/отправка данных кому угодно») — метод рассылки пакетов, позволяющий устройству посылать данные ближайшему из группы получателей. Реализован, в частности, в протоколе IPv6.

В протоколе IP anycast реализован путём публикации одинакового маршрута из различных точек сети через протокол BGP. Одним из основных критериев выбора маршрута в BGP является AS-path — набор (список) номеров автономных систем, через которые должен пройти пакет; выбирается маршрут с самым коротким списком AS-path. При получении анонса маршрутов из двух и более точек, будет выбран самый короткий.

Из-за особенностей топологии сети или её политики ближайший узел не обязательно будет географически ближайшим.

В настоящее время anycast используется в интернете для уменьшения времени отклика и для балансировки нагрузки корневых DNS-серверов. Например, корневой DNS-сервер K имеет множество инсталляций, в том числе в Амстердаме, Лондоне, Токио, Дели, Майами, Рейкьявике, Новосибирске, Хельсинки и других городах[1].

Рассмотрим два маршрутизатора, находящихся в сетях разных фирм: Сибирьтелеком (Россия)[2] и NLIX (Нидерланды). Выполним на маршрутизаторах команду, показывающую маршрут до хоста 193.0.14.129 (k.root-servers.net).

Можно заметить, что списки AS-path (в столбцах под именами «AS path» и «Path» соответственно) не содержат повторяющихся элементов, кроме AS назначения под номером 25 152, и являются короткими. Из вывода команд можно сделать вывод о том, что ближайшими к данным маршрутизаторам являются разные зеркала.