#dns #cdn
#dns #cdn
Вопрос:
Я не эксперт по маршрутизации. Но что я знаю: это может быть действительно большая тема. Итак, в настоящее время я думаю о балансировке геонагрузки и о том, как я могу это обеспечить. Вы можете использовать маршрут 53 для создания запросов GeoDNS. И это прекрасно. Но я думаю о CDN. У меня есть только два местоположения, в то время как CDN имеют множество местоположений. Почему не разрешить мой домен www.example.com напрямую с одним из этих IP-адресов CDN? Мой интерфейс статичен. Динамический материал создается с помощью Javascript. Итак, возможно ли разрешить мой домен example.com напрямую с ближайшим CDN IP?
Ответ №1:
То, что вы описываете, является довольно обычной настройкой. В AWS после создания дистрибутива CloudFront вы просто создадите псевдоним в своей консоли Route53:
www.example.com A ALIAS xyz123xyz.cloudfront.net
Если вы используете других поставщиков CDN / DNS, вы создадите запись CNAME:
www.example.com CNAME xyz456xyz.somecdn.net
Комментарии:
1. Привет, спасибо за твой ответ. Я знаю, что вы можете это сделать. Поправьте меня, если я ошибаюсь: с помощью этого решения клиент сначала разрешает домен www.example.com с помощью xyz123xyz.cloudfront.net . И затем клиенту потребуется другой поиск для xyz123xyz.cloudfront.net . Почему бы не создать запись A в example.com с помощью IP-адреса сервера CDN?
2. Обычно нет IP-адреса «an» сервера CDN, потому что существует более одного сервера во многих разных местах (в этом вся цель CDN — быть как можно ближе к клиенту). Если вы загуглите случайный Cloudfront.net dns-имя и попытайтесь получить его IP-адрес, видимый из разных частей мира, здесь вы увидите огромное количество разных адресов.
3. И даже если вы захотите добавить все эти адреса в свою зону GeoDNS, это будет неправильно, поскольку адреса серверов CDN, которые обслуживают ваш контент, могут измениться (часто) в будущем.
4. Да, я это знаю. Но мой вопрос таков: зачем разрешать имя другим именем, а затем с помощью IP. Почему бы не разрешить имя напрямую с помощью IP-адреса. Дополнительные шаги также означают увеличение задержки. Итак, возможно ли настроить CDN так, чтобы он интерпретировал мой домен так же, как xyz123xyz.cloudfront.net . Чтобы CDN записал правильные IP-адреса, основанные на местоположении, в запись моего домена.
5. Что ж, на самом деле AWS CloudFront сделает именно это за вас, если настроен как указано выше. Но в общем случае, когда DNS и CDN не находятся под одинаковыми полномочиями, это, вероятно, не имело бы особого смысла (как для вас разрешить CDN контролировать ваш домен, так и для CDN постоянно обновлять DNS тысяч своих клиентов). В любом случае, ответы DNS кэшируются, и упомянутая вами задержка произойдет только при самом первом запросе.
Ответ №2:
Возможно разрешить вашему домену только один CDN IP. И когда мы говорим об IP-адресе CDN, обычно это виртуальный IP (Anycast IP), который сопоставляется с различными физическими пограничными серверами по всему миру. В зависимости от того, откуда поступает запрос, этот виртуальный IP-адрес будет сопоставлен с пограничным сервером, ближайшим к конечному пользователю.
Возьмите этот домен www.cloudflare.com например, он находится в Cloudflare (http://www.whatsmycdn.com/?uri=www.cloudflare.com ), и он указывает на два виртуальных IP-адреса Cloudflare для целей отработки отказа, я полагаю.
dig www.cloudflare.com short
198.41.215.162
198.41.214.162
Конечно, указать этому домену только один виртуальный IP-адрес Cloudflare вполне выполнимо, хотя это и нежелательно.