Используйте разные DNS-серверы для CDN
Когда Google впервые выпустил свои 8.8.8.8 и 8.8.4.4 днс-серверы, я провел некоторое профилирование, и они намного быстрее для нашего местоположения. Более поздний тест подтверждает, что это все еще так. Однако, после тщательного рассмотрения, я отказался отойти от DNS нашего провайдера, потому что, глядя на несколько снимков нашего трафика, многие наши запросы касались адресов cdn. Использование центрального DNS для поиска на сайтах CDN может дать результаты, которые работают (и производят результаты быстро), но замедляют процесс, поскольку они могут возвращать менее оптимальные узлы.
Тогда мой вопрос состоял в том, можно ли как-то отличить сеть CDN и направить эти поиски в DNS моего интернет-провайдера, но указать обычные поиски в Google 8.8.8.8 DNS.
3 ответа
Когда вы выполняли профилирование, вы профилировали через свой существующий DNS-сервер AD - в сравнении с тем, что AD DNS-серверы пересылки были настроены по-разному между вашим провайдером и Google? Или вы просто профилировали своего провайдера и DNS от Google?
Я имею в виду, что если у вас уже есть локальный DNS-сервер (AD, BIND или другой), и если все ваши клиенты используют этот локальный, пересылающий DNS-сервер - до тех пор, пока локальный DNS-сервер настроен правильно, он будет кешировать исходящие результаты. Таким образом, только первый DNS-запрос для данного имени ресурса в течение разумного времени TTL должен быть перенаправлен за пределы вашей сети для разрешения. Имея это в виду, разве вы не можете просто использовать DNS своего провайдера в качестве настроенного перенаправленного сервера для разрешения внешних результатов, используя преимущества локализованных результатов - понимая, что все будет кэшироваться?
Это просто служба DNS с разделением горизонта на прокси-сервере DNS, что довольно просто в прямом случае.
- Для переадресации прокси-сервера DNS просто используется условная пересылка. Обратитесь к руководству по программному обеспечению вашего DNS-сервера, чтобы узнать, как выполнить условную пересылку. djbdns, DNS-сервер Microsoft, BIND ISC, мой DNSFCPD и некоторые другие могут выполнять условную пересылку.
- Для разрешающего прокси-сервера DNS используются любые механизмы переопределения делегирования, которые поставляет серверное программное обеспечение. Для djbdns, один добавляет файл в
servers/
каталог. Для ISC BIND и DNS-сервера Microsoft используются зоны-заглушки.
Проблема в том, что CDN не являются простыми случаями, и вы готовите постоянную головную боль обслуживания для себя.
Иногда CDN используют довольно длинные цепочки псевдонимов. Вы не сможете узнать, где в цепочке закодирована информация о распространении CDN, потому что каждый CDN может делать это по-своему.
Например: www.microsoft.com.
это псевдоним для toggle.www.ms.akadns.net.
который является псевдонимом для g.www.ms.akadns.net.
который является псевдонимом для lb1.www.ms.akadns.net.
который сопоставляется с IP-адресом 65.55.12.249
, Вы могли бы сделать чернослив и привить в microsoft.com.
, g.www.ms.akadns.net.
, www.ms.akadns.net.
, ms.akadns.net.
, или же akadns.net.
, Но вы не знаете, какое место является подходящим без знания, которое является специфическим для этого CDN и даже не обязательно вам известно в первую очередь. Неправильно, и вы снова столкнулись с проблемой внутренних запросов, поступающих от стороннего IP-адреса, и данные DNS, подходящие для этого адреса, не для вас.
Более того, Akamai может изменить все эти промежуточные доменные имена через десять минут без каких-либо требований информировать вас об этом, чтобы вы могли перенастроить переопределения с разделенным горизонтом. И это бесплатно делать все это завтра. Умножьте это на все различные CDN, для которых вы намереваетесь использовать службу DNS с расщепленным горизонтом, и у вас впереди огромная Гонка Красной Королевы.
В любом случае, как отмечали другие, на самом деле не очень хорошая идея использовать сторонние, не имеющие контрактов внешние, финансируемые рекламодателем, случайные прокси-серверы DNS. Люди не будут мечтать о передаче сторонним сторонним организациям, финансируемым рекламодателем, без контрактов, для прокси-службы HTTP или службы SMTP Submission. Служба прокси DNS немного отличается, и применяются те же обоснования. То, что вы хотите сделать, на самом деле довольно плохая идея.
Если вы хотите, чтобы DNS-запросы вашей локальной сети работали лучше, поработайте над этим.
Это один из тех случаев, когда составление вопроса прояснило мне ответ. Я не ожидал, что какой-либо DNS-сервер сможет сделать это различие автоматически. Я просто хотел вручную направить некоторые из наиболее часто запрашиваемых cdn нашей сети в нужное место. Чтобы сделать это, мне все равно придется вручную ввести значения где-нибудь, и в этот момент я также могу просто выполнить поиск и поместить эти записи прямо на наш сервер AD DNS. Условные экспедиторы были бы лучше, но я не видел способа сделать это.
Однако я собираюсь немного об этом поговорить, поскольку это может иметь последствия (т. Е. Необходимость часто проверять, что все не изменилось, проверять, стоит ли сохранять определенные записи и т. Д.), И еще может будь лучше. В нашем случае, мы маленький колледж, и поэтому на самом деле важны два CDN: Netflix и Facebook. На эти два приходится около 40% нашего трафика по размеру и количеству посещений соответственно, и, как правило, более быстрый поиск с правильными результатами для этих двух, вероятно, будет заметным улучшением.