Я полагаю, что этот вопрос можно назвать правильным, как CDN работает на уровне DNS, но реальная проблема у меня заключается в том, что у моей компании есть центры обработки данных на трех континентах, и у нас должны быть europe.example.com us.example.com и asia.example .com
CDN обычно отправляют вас в местный центр обработки данных, который я представляю, в зависимости от вашего IP-адреса. Это должно быть DNS, когда DNS-сервер в США отправляет вас в центр обработки данных в США для того же поиска DNS на example.com?
Я ошибаюсь? Если я ошибаюсь по этому поводу, как бы я сделал это эффективно и, если возможно, без центральных (не DNS) серверов?
domain-name-system
cdn
Стюарт Робинсон
источник
источник
Ответы:
Проблема с CDN заключается в том, что они не направляют вас на основе вашего собственного IP-адреса - они направляют вас на основе IP-адреса вашего DNS-сервера ... Это может быть совершенно неправильно. И действительно прочитайте статью ACM Пола Vixie , это удар по деньгам.
В любом случае, если вы уже
region.example.com
настроены и работаете, вы можете рассмотреть вопрос о перенаправлении HTTP сexample.com
соответствующего веб-сервера на основе IP-адреса клиента.Это в значительной степени то, что делает Google, это то, как я в конечном итоге
google.co.uk
набралgoogle.com
.Также убедитесь, что вы предоставляете клиентам средства для доступа к другим вариантам. Клиентам не нравится, когда они вынуждены заходить на определенный сайт, будь то из-за ошибок в базах данных Geo или просто потому, что им действительно нужно увидеть сайт из другого региона.
источник
Новые CDN (Cloudflare, MaxCDN, fast.ly) используют anycast как для DNS, так и для реальных контент-серверов. Это несколько лучше, чем пытаться использовать исходный IP-адрес DNS-запроса и постоянно меняющуюся базу данных сопоставлений.
Теоретически использование anycast для DNS и контент-серверов позволяет самой сети находить «самые близкие» серверы к клиенту. На практике это в основном верно, но возникают некоторые странные случаи, когда люди в Сингапуре получат доступ к пограничным серверам в Калифорнии, а не в Гонконге, из-за постоянно меняющихся пиринговых отношений между провайдерами.
Anycast трудно сделать хорошо .
Старые CDN, такие как Akamai и Limelight, обычно используют anycast, чтобы добраться до ближайшего DNS-сервера, но затем используют подход, основанный на догадках на основе IP-адреса. По моему опыту, это не очень хорошо работает, особенно если клиент использует DNS-серверы, которых нет с точки зрения топологии сети. Тем не менее, огромный установленный CDN, такой как Akamai, имеет сотни расположений контент-серверов, поэтому возвращение «достаточно близкого» ответа приводит к достойному взаимодействию с пользователем. Очевидно, что иметь сотни сайтов очень дорого, поэтому ни один из всех anycast CDN не выбрал этот маршрут. Следовательно, они также не взимают так много за в основном эквивалентное обслуживание.
источник
Есть несколько способов справиться с этим, но все они сводятся к тому, чтобы выяснить, где находится IP-адрес, и указать его соответствующим образом. Например, вы можете указать диапазон IP-адресов для Северной Америки и один для Европы. Если IP-адрес, запрашивающий информацию (от DNS, вашего веб-сервера, вашего контент-сервера и т. Д.), Попадает в европейский диапазон, то ваши европейские серверы должны получать запросы.
источник
Вы можете настроить главную страницу по умолчанию на example.com. В первый раз, когда кто-то посещает, он выбирает регион, в который он хочет попасть. Это так же, как работает www.ups.com.
С этого момента пользователь может установить флажок, чтобы сделать этот выбор по умолчанию, сохраняя выбор в файле cookie.
Это дает вам преимущество использования DNS в соответствии с тем, для чего он был разработан в соответствии с Полом Викси, и позволяет вашему пользователю наиболее точно определить, к какому центру обработки данных он должен быть направлен.
источник
Если у вас есть веб-сайт, размещенный в нескольких регионах, вам не нужно ничего делать на уровне DNS. Вы можете использовать API, например http://ipinfo.io, чтобы получить страну посетителя, а затем перенаправить их на соответствующий URL-адрес.
Если мы не говорим о веб-сайте или каком-либо протоколе, который обрабатывает перенаправления, то есть несколько вариантов на уровне DNS. Вы можете выполнить тот же поиск страны IP и затем вернуть запись, которая соответствует региону (DNS на основе геолокации), или вы можете получить карту задержки между различными сетями и вернуть запись, которая представляет самую низкую задержку для пользователя (задержка) на основе DNS). DNS-сервис Amazon Route53 предлагает оба варианта .
источник