Anycast - это сетевой метод, в котором один и тот же IP-префикс объявляется из разных мест. Затем сеть решает, в какое место направить запрос пользователя, исходя из стоимости протокола маршрутизации и, возможно, «работоспособности» рекламных серверов.
У anycast есть несколько преимуществ. Во-первых, в устойчивом состоянии пользователи службы anycast (отличный пример DNS) всегда будут подключаться к «ближайшему» (с точки зрения протокола маршрутизации) DNS-серверу. Это уменьшает задержку, а также обеспечивает уровень балансировки нагрузки (при условии, что ваши потребители равномерно распределены по вашей сети).
Еще одним преимуществом является простота управления конфигурацией. Вместо того чтобы настраивать разные DNS-серверы в зависимости от того, где развернут сервер / рабочая станция (Азия, Америка, Европа), у вас есть один IP-адрес, который настраивается в каждом местоположении.
В зависимости от того, как реализован anycast, он также может обеспечить высокий уровень доступности. Если объявление маршрута anycast обусловлено некоторой проверкой работоспособности (например, запросом DNS для хорошо известного домена в этом примере), то, как только сервер потерпит неудачу, его маршрут может быть удален. Как только сеть повторно соединится, пользовательские запросы будут беспрепятственно перенаправлены на следующий ближайший экземпляр DNS без необходимости какого-либо ручного вмешательства или перенастройки.
Конечным преимуществом является горизонтальное масштабирование; если вы обнаружите, что один сервер перегружен, просто разверните другой в месте, которое позволит ему принимать некоторую долю запросов перегруженного сервера. Опять же, поскольку не требуется настройка клиента, это можно сделать очень быстро.
Одна из вещей, которая часто смущала меня в понимании «anycast», заключается в том, что, хотя это термин высокого уровня, в практической реализации он обычно сводится к двум примерам:
Маршрутизаторы, использующие BGP для объявления одного и того же IP-блока через несколько путей AS, являются грубым способом направления пользователей на «более близкий» сайт. В то же время он обеспечивает почти прозрачное переключение на другие сайты, просто убирая маршруты из проблемного сайта. Это может быть полезно практически для любого протокола, хотя, очевидно, он вызывает много проблем с синхронизацией данных на сервере.
Рекламируйте один и тот же сервисный IP из нескольких точек в вашей собственной сети (через статическую маршрутизацию , OSPF , EIGRP или что-то еще). Если маршруты взвешены по- разному, это действует как механизм отработки отказа. Если маршруты взвешены равномерно, он может использовать преимущества балансировки нагрузки для каждого пакета или потока для большинства маршрутизаторов известных производителей. Вы должны быть осторожны, чтобы протокол прикладного уровня удобен для этого, поэтому вы почти всегда слышите о его использовании с DNSгде запрос всегда один пакет и все без сохранения состояния. Лично я рассматриваю это как хакерское вторжение проблем прикладного уровня в сетевой уровень, когда комбинация DNS и правильных балансировщиков нагрузки почти всегда будет лучшим решением.
источник
В основном используется для служб на основе UDP, таких как DNS. По сути, вы объявляете один и тот же маршрут из нескольких центров обработки данных по всему миру. Таким образом, ваши клиенты будут отправлены в «лучший» и «ближайший» центры обработки данных на основе маршрутов BGP. Я поместил «лучшие» и «самые близкие» в кавычки, потому что сетевые провайдеры могут по-разному играть в игры и маршрутизировать трафик из определенных сетей. Как правило, с anycast все получается лучше, но это не гарантия.
Примером этого может быть перечисление ваших DNS-серверов как 1.2.3.4 и 1.2.3.5. Ваши маршрутизаторы объявят маршрут для 1.2.3 / 24 из нескольких центров обработки данных. Если вы находитесь в Японии и там есть центр обработки данных, скорее всего, вы окажетесь там. Если вы находитесь в США, вас отправят в центр обработки данных в США. Опять же, это основано на маршрутизации BGP, а не на фактической географической маршрутизации, но обычно это происходит так.
источник
В соответствии с моим первоначальным ответом я только что опубликовал еще две статьи в своем блоге под названием: Anycast DNS - часть 3, использование RIP и Anycast DNS - часть 3, использование RIP (продолжение). Последнее более детально, но на сайте www.netlinxinc.com/netlinx-blog.html вы найдете реальные рецепты по настройке маршрутизаторов Cisco и программного обеспечения для маршрутизации на основе хоста с открытым исходным кодом Quagga для Anycast DNS с использованием RIP.
В настоящее время я работаю над написанием четвертой статьи в серии. Это даст информацию о том, как развернуть Anycast DNS с использованием OSPF. Последним в этой серии я покажу рецепты развертывания Anycast DNS с использованием BGP.
Anycast DNS - часть 1, обзор
Anycast DNS - часть 2, использование статических маршрутов
Anycast DNS - Часть 3, Использование RIP
Anycast DNS - Часть 3, Использование RIP (продолжение)
источник
Учитывая, что это в основном DNS на данный момент ...
Неформально это делает вашу службу более устойчивой и обеспечивает лучший доступ к сети / задержку / скорость, позволяя вам настроить одну и ту же службу в нескольких местах по всему миру, используя один и тот же адрес. Когда кто-то запрашивает этот адрес, ему предоставляется ближайший / лучший маршрут.
С точки зрения сервера:
Если одноадресная передача - это то, что вы делаете с одним человеком, а многоадресная передача - с несколькими, а трансляция - это то, что вы делаете для всех людей, тогда анкаст является шизофреником и имеет несколько личностей, где личность, наиболее подходящая для каждого человека, связана с ними. Хм. Не самая лучшая аналогия.
источник
Действительно интересное использование anycast - DNS. Вы можете разместить 5 разных DNS-серверов в разных физических и сетевых расположениях, но использовать один (а иногда и первичный, и вторичный DNS) адреса. В зависимости от того, где находится источник, они направляются к ближайшему узлу. Это обеспечивает некоторую балансировку трафика и обеспечивает избыточность в случае смерти DNS-сервера.
источник
По словам одного из моих коллег, это также полезно в качестве метода смягчения атаки DoS, поскольку люди могут атаковать только «ближайший» anycast IP-адрес, поэтому, если в США, например, в США много зомби, ваш сайт в Европе будет в основном незатронутый, поскольку они фактически не могут посылать ему пакеты.
Также может быть возможно использовать его как способ (несколько наивно) фильтровать поддельные пакеты, если они явно поступают откуда-то, и вряд ли будут объявлены в BGP как правильный маршрут (например, пакеты, поступающие в Европу, когда ASN указывает на N American) блок).
источник
Также полезно отметить, что Anycast не подходит и не надежен для некоторых TCP-соединений, которые не могут пережить перезагрузки или длительный разговор.
Anycast IP, использующие BGP, сообщают Интернету, что существует 2, 3 или более путей к конкретному HOST , однако на самом деле это НЕ один и тот же хост , а точные копии хостов, объявленных в нескольких центрах обработки данных для достижения соединений с более низкой задержкой.
Например, у меня есть 3 сервера, которые выполняют 301 переадресацию без www для 198.251.86.133, если вы пропингуете этот хост, вы можете время от времени получать ответы DUPLICATE или даже отбрасывать их в зависимости от того, где вы находитесь, так как мои серверы находятся в США, на востоке США. -Запад и евро. для соединений с коротким временем (например, 301, которые являются кешем браузера) это дает быстрый ответ локального сервера в ближайшем центре обработки данных.
С точки зрения избыточности в Anycast нет встроенных, вам все равно потребуется независимая избыточность на каждом сайте, так как этот IP (в типичных сценариях) всегда будет указывать на эти центры данных.
источник