Вопрос: Что такое «anycast» и как это полезно?


Я никогда не слышал о anycast, пока несколько секунд назад, когда я читал "Каковы некоторые интересные или полезные сетевые трюки?».

Википедия "Anycast«статья об этом довольно формальна и на самом деле не вызывает ментальной картины того, как она будет использоваться.

Может ли кто-нибудь объяснить в нескольких неофициальных предложениях, что такое «anycast», как вы его настраиваете (только в общем смысле), и каковы его преимущества (что облегчает)?


77
2018-05-29 18:54


Источник




Ответы:


Anycast - это сетевой метод, при котором один и тот же префикс IP рекламируется из нескольких мест. Затем сеть решает, какое местоположение маршрутизировать запрос пользователя, на основе затрат протокола маршрутизации и, возможно, «здоровья» рекламных серверов.

Есть несколько преимуществ для anycast. Во-первых, в устойчивом состоянии пользователи службы anycast (DNS - отличный пример) всегда будут подключаться к «ближайшему» (с точки зрения протокола маршрутизации) DNS-серверу. Это уменьшает задержку, а также обеспечивает уровень балансировки нагрузки (при условии, что ваши потребители распределены равномерно по сети).

Другим преимуществом является простота управления конфигурацией. Вместо того, чтобы настраивать разные DNS-серверы в зависимости от того, где развертывается сервер / рабочая станция (Азия, Америка, Европа), у вас есть один IP-адрес, который настроен в каждом месте.

В зависимости от того, как реализуется anycast, он также может обеспечить высокий уровень доступности. Если реклама маршрута anycast зависит от какой-либо проверки работоспособности (например, DNS-запрос для хорошо известного домена, в этом примере), то, как только сервер завершится, его маршрут может быть удален. После того, как сеть будет преобразована, пользовательские запросы будут легко перенаправлены на следующий ближайший экземпляр DNS без необходимости какого-либо ручного вмешательства или реконфигурации.

Конечным преимуществом является горизонтальное масштабирование; если вы обнаружите, что один сервер чрезмерно загружен, просто разверните еще один в местоположении, который позволит ему взять некоторую долю запросов перегруженного сервера. Опять же, поскольку настройка клиента не требуется, это можно сделать очень быстро.


82
2018-05-29 19:22



Использует ли anycast более высокую пропускную способность по сравнению с одноадресной рассылкой? Представьте, что у нас есть тысяча серверов, которые используют один и тот же IP-адрес, когда мы отправляем пакет что адрес, не будет ли он занимать больше полосы пропускания, чем по сравнению с одноадресной рассылкой? - Pacerier
Нет - трафик, отправленный на адрес anycast, будет поступать только в одном месте, рекламируя адрес. Вы можете думать о многоадресного, где пакеты, отправленные в групповой адрес группы, отправляются всем хостам, заинтересованным в этой группе. - Murali Suriar
Разве это не проблема "Вместо того, чтобы настраивать разные DNS-серверы в зависимости от того, где развертывается сервер / рабочая станция«решаются доменными именами? Итак, каков смысл anycast, когда он просто дублирует, какие доменные имена уже делают? - Pacerier
@Pacerier - вы не можете использовать доменные имена для поиска своего DNS-сервера - это круговая зависимость. Пример: настройте dns.foo.com. как ваш DNS-сервер. Какой IP-адрес я отправляю на dns.foo.com? Я знаю, я посмотрю в DNS. и т.п. - Murali Suriar


Одна из вещей, которые часто путают меня в понимании «anycast», состоит в том, что, хотя это термин высокого уровня, в практической реализации обычно сводится к двум примерам:

  1. Использование маршрутизаторов BGP для рекламы одного и того же блока IP через несколько В ВИДЕ пути как грубый способ направления пользователей на «более близкий» сайт. В то же время он обеспечивает почти прозрачный переход на другие сайты, просто втягивая маршруты с проблемного сайта. Это может быть полезно практически для любого протокола, хотя очевидно, что он вызывает множество проблем синхронизации данных с базовыми данными.

  2. Реклама одного и того же IP-сервиса с нескольких точек в вашей собственной сети (через статическая маршрутизация, OSPF, EIGRP, или что-то еще). Если маршруты взвешены иначеон действует как механизм переключения при сбое. Если маршруты взвешены равномерно он может использовать преимущества балансировки нагрузки для каждого пакета или каждого потока для большинства маршрутизаторов с именем-брендом-поставщиком. Вы должны быть осторожны, чтобы прикладной уровень протокол удобен в этом, поэтому вы почти всегда слышите об этом, используя DNS где запрос всегда является одним пакетом, и все без гражданства. Лично я рассматриваю это как хакерское вторжение проблем прикладного уровня в сетевой уровень, когда сочетание DNS и правильных балансировщиков всегда будет лучшим решением.


31
2018-05-30 04:24



+1 для упоминания одного пакета и безгражданства - nponeccop
проблема с DNS заключается в том, что можно использовать Google или какой-либо другой удаленный преобразователь, а ближайший сервер для распознавателя может отличаться от пользователя. Конечно, это действительно только anycast для использования не DNS (например, tcp anycast или другого использования). - akostadinov
@cagenut, будет ли разрыв HTTP в случае балансировки нагрузки между пакетами (из-за даже веса или иначе)? - Pacerier


В основном используется для служб на основе UDP, таких как DNS. В принципе, вы сообщаете тот же маршрут из нескольких центров обработки данных по всему миру. Таким образом, ваши клиенты будут отправлены в «лучший» и «ближайший» датацентр на основе маршрутов BGP. Я поставил «лучшие» и «самые близкие» в кавычки, потому что сетевые провайдеры могут по-разному играть в игры и трафик трафика из определенных сетей. Как правило, все работает наилучшим образом с anycast, но это не гарантия.

Примером этого может служить список DNS-серверов как 1.2.3.4 и 1.2.3.5. Ваши маршрутизаторы объявят маршрут для 1.2.3 / 24 из нескольких датацентров. Если вы находитесь в Японии и располагаете там центром данных, скорее всего, вы окажетесь там. Если вы находитесь в США, вас отправят в ваш американский центр обработки данных. Опять же, это основано на маршрутизации BGP, а не на фактической географической маршрутизации, но обычно это как-то ломаться.


16
2018-05-29 19:01



Как избежать конфликтов? - Pacerier
Я не уверен, что вы подразумеваете под конфликтами. BGP не разрешает конфликтов. Он просто выбирает маршрут. Одна (часто игнорируемая) проблема с anycast является законной. Технически, anycasting покрывается различными патентами. Никто не применяет это, но разные типы трафика (CDN, DNS, TCP vs UDP) охватываются разными патентами. Этот пункт должен быть охвачен IANAL. - diq
Значит, вы имеете в виду, что эти службы ip2location неточны? Потому что нет официального места для IP, и это может быть в любом месте в зависимости от того, с каким компьютером BGP вы разговариваете? - Pacerier


В соответствии с моим первоначальным ответом я только что опубликовал еще две статьи в своем блоге: 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 (продолжение) 


8
2018-05-31 16:32



Так верно, что из-за anycast, возможно, что кто-то еще в Интернете по всему миру может иметь тот же публичный IP-адрес, что и ваш провайдер? - Pacerier
Не правда ли, что только интернет-провайдеры способны развертывать серверы anycast? - Pacerier
Фактически, вам нужно будет владеть множественный Интернет-провайдеры делают anycast. - Pacerier


Учитывая, что в настоящее время это DNS, на данный момент ...

Неформально это делает ваш сервис более устойчивым и с лучшим доступом к сети / задержкой / скоростью, позволяя вам настраивать одну и ту же услугу в разных местах по всему миру, используя один и тот же адрес. Когда кто-то запрашивает этот адрес, ему предоставляется ближайший / лучший маршрут.

С точки зрения сервера:

Если одноадресная передача вы собираетесь на одного человека, а многоадресная рассылка - вы собираетесь на несколько, и трансляция - вы собираетесь ко всем людям, тогда anycast является шизофреником и имеет несколько персонажей, в которых с ними связывается личность, наиболее подходящая для каждого человека. Хм. Не лучшая аналогия.


4
2018-05-29 19:19





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


3
2018-05-29 19:03



Но не является ли избыточность уже предоставленной системой DNS? - Pacerier


По словам одного из моих коллег, это также полезно в качестве метода смягчения ударов DoS, поскольку люди могут атаковать только «ближайший» IP-адрес anycast, поэтому, если в, скажем, США, в США, на вашем сайте Euro будет много зомби в основном не затронутые, поскольку они не могут фактически отправлять пакеты к нему.

Также возможно использовать его как способ (несколько наивно) фильтровать поддельные пакеты, если они явно откуда-то вряд ли будут рекламироваться в BGP в качестве правильного маршрута (например, пакеты, поступающие в Европу, когда ASN указывает на N American блок).


2
2018-05-31 17:16



Ну, даже в простом случае, который остановил бы только тех, кто прошел путь AS к этому серверу - например. вы можете остановить людей, которые доходят до вас от Comcast, но не AT & T. Если у вас есть настройка «надлежащим образом» для перехода на другой ресурс (отслеживайте службу L7, прекратите объявлять, когда она опустится), тогда на самом деле намного сложнее обрабатывать DoS-атаки, поскольку он будет ядерным сервером, а затем переместиться на следующий, когда он объявления сняты ... - James Cape
@JamesCape, Интересно, но когда они переходят к следующему, dos проиграл, потому что люди не могут правильно подключиться? - Pacerier
@Pacerier В простейшем случае, когда вы просто рекламируете один и тот же IP-адрес везде, где нет интеллекта, да. Однако, если вы попытаетесь получить умный и снять рекламу в США, потому что служба не отвечает, тогда единственная реклама, оставленная в Европе, будет единственной. Таким образом, все американские зомби попадут на следующий доступный сервер и убьют его. - James Cape