Сводка знаний CDN и DNS

внешний интерфейс JavaScript

При оптимизации производительности обычно предлагают развернуть ресурсы на CDN, тогда возникает вопрос, что такое CDN? Какая польза от этого?

DNS

Давайте сначала поговорим о системе доменных имен (DNS).

Это распределенная база данных, функция которой состоит в том, чтобы связываться с доменными именами и IP-адресами. Соответствие между доменным именем и ip называется записью, которую можно разделить на различные типы.

  • A: Адрес, IP-адрес, на который указывает доменное имя. Доменное имя может иметь несколько записей A.
  • NS: Name Server, адрес сервера, на котором хранится информация о доменном имени следующего уровня.
  • MX: Mail eXchange, адрес сервера, который принимает электронную почту.
  • CNAME: каноническое имя, возвращает другое доменное имя, так что текущее доменное имя запроса выбирает это доменное имя, сопоставление нескольких доменных имен -> серверы.
  • PTR: запись указателя, используется только для доменного имени запроса IP-адреса.

DNS состоит из следующих трех частей

  • Преобразователь имен (преобразователь)
  • пространство доменного имени
  • сервер имен

Если вы хотите посетить baidu.com, вам необходимо узнать его IP-адрес, например 220.181.57.216, через систему DNS, прежде чем вы сможете посетить его.

Процесс DNS-запроса

Так вот вопрос, как dns узнает ip через доменное имя?В качестве примера возьмем ввод браузера www.example.com,

  1. Проверьте кеш браузера
  2. Проверьте кеши операционной системы, общие, такие как файл hosts.
  3. Проверьте кеш роутера
  4. Если на предыдущих шагах не нашли, проверим у провайдера (Internet Service Provider) сервер LDNS
  5. Если сервер LDNS не найден, он запросит разрешение у сервера доменных имен (корневого сервера), которое разделено на следующие шаги:

    1. Следуйте за сервером, чтобы вернуть адрес сервера домена верхнего уровня (TLD), такого как .com, .cn, .org и т. д. В мире их всего 13. В этом примере будет возвращен адрес .com .
    2. Затем отправьте запрос в TLD, а затем верните адрес сервера вторичного доменного имени (SLD), в этом примере будет возвращен адрес .example.
    3. Затем запросите сервер доменных имен SLD для целевого IP-адреса через доменное имя.В этом примере будет возвращен адрес www.example.com
    4. Локальный DNS-сервер кэширует результат и возвращает его пользователю, который кэшируется в системе.
Проблемы безопасности DNS
  1. Атаки с отражением/усилением DNS

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

  2. DDOS-атака может привести к параличу разрешения доменных имен
  3. Перехват DNS/домена
    Перехватывает запросы на разрешение доменного имени в пределах захваченного сетевого диапазона, анализирует запрошенное доменное имя, возвращает поддельный IP-адрес или делает запрос не отвечающим. Перехват DNS работает путем подделки данных на DNS-сервере, чтобы вернуть пользователю неверный результат запроса.
  4. Загрязнение DNS
    Загрязнение DNS - это метод, который делает обычных пользователей неспособными общаться с ними, потому что они получают поддельные IP-адреса целевых хостов.Это означает, что когда пользователи обращаются к адресу, когда внутренние серверы (не DNS) отслеживают отмеченные адреса, к которым обращаются пользователи, to be Действие DNS-сервера, возвращающего пользователю неправильный адрес.
    Разница между загрязнением DNS и захватом DNS заключается в том, что захват DNS изменяет результат разрешения DNS, в то время как загрязнение DNS не проходит через сервер DNS и возвращает сообщение об ошибке.
  5. Информационные хакеры DNS изменили
DNS-оптимизация

Видно, что разрешение DNS — это долгий процесс, как оптимизировать этот процесс?

  1. DNS Prefetching

    Прежде чем пользователь запрашивает ссылку, браузер пытается разрешить доменное имя ссылки, прежде чем кэшировать ее. Таким образом, нет необходимости в разрешении DNS при выполнении реального запроса.
    Может реагировать на настройки на сервереX-DNS-Prefetch-ControlЗначение on начинает подготовку

Или настроить так в HTML

<meta http-equiv="x-dns-prefetch-control" content="on">

Предварительное разрешение определенного доменного имени

<link rel=”dns-prefetch” href=”//fonts.googleapis.com”>
  1. Конвергенция доменных имен

    Рекомендуется размещать статические ресурсы только под одним доменным именем, что может эффективно уменьшить DNS-запросы.

  2. httpdns

    Отправка запроса на разрешение доменного имени на сервер HTTPDNS на основе протокола Http заменяет традиционный метод отправки запроса на разрешение в локальную DNS оператора на основе протокола DNS, что позволяет избежать захвата доменного имени оператором и выполнять точное планирование.
    Этот процесс делится на два этапа

    1. Клиент напрямую обращается к интерфейсу HttpDNS, чтобы получить IP-адрес с оптимальной задержкой доступа, настроенной в системе управления конфигурацией доменных имен. (Исходя из соображений устойчивости к сбоям, метод использования LocalDNS оператора для разрешения доменных имен по-прежнему зарезервирован)

    2. После того, как клиент отправляет полученный IP-адрес, он отправляет запрос служебного протокола непосредственно на этот IP-адрес. Взяв в качестве примера Http-запрос, указав поле host в заголовке, можно отправить стандартный Http-запрос на IP-адрес, возвращенный HttpDNS.

CDN

Что такое CDN

После разговора о DNS можно теперь перейти к CDN.Полное название CDN Content Delivery Network, то есть Content Delivery Network.Перенаправить запрос пользователя на ближайший к пользователю сервисный узел. Его цель — дать пользователям возможность получать желаемый контент поблизости, решить ситуацию с перегрузкой интернет-сети и повысить скорость отклика пользователей, посещающих веб-сайты.

Типичная система CDN состоит из следующих трех частей.

  • система обслуживания дистрибуции

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

  • система балансировки нагрузки

    Основная функция заключается в планировании доступа для всех пользователей, инициирующих запросы на обслуживание, и в определении окончательного фактического адреса доступа, предоставляемого пользователям. Двухуровневая система планирования делится на глобальную балансировку нагрузки (GSLB) и локальную балансировку нагрузки (SLB). GSLB в основном определяет физическое местоположение кэша, предоставляющего услуги пользователям, путем вынесения «оптимального» решения о каждом сервисном узле на основе принципа близости пользователя. SLB в основном отвечает за балансировку нагрузки устройств внутри узла.

  • Система управления операциями

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

Процесс CDN

Метод использования CDN очень прост: вам нужно только изменить собственное разрешение DNS и настроить CNAME, чтобы он указывал на поставщика услуг CDN.

Процесс доступа пользователей к неиспользуемым ресурсам кэша CDN выглядит следующим образом:

  1. Браузер анализирует доменное имя с помощью вышеупомянутого процесса, чтобы получить IP-адрес, соответствующий доменному имени;
  2. Браузер использует полученный IP-адрес для отправки запроса на доступ к данным хосту службы доменного имени;
  3. Сервер возвращает данные ответа в браузер

После использования CDN

  1. Когда пользователь щелкает URL-адрес контента на странице веб-сайта, локальная система DNS разрешается, и система DNS, наконец, передает право на разрешение доменного имени выделенному DNS-серверу CDN, на который указывает CNAME.
  2. DNS-сервер CDN возвращает пользователю IP-адрес глобального устройства балансировки нагрузки CDN.
  3. Пользователь инициирует запрос доступа по URL-адресу контента к глобальному устройству балансировки нагрузки CDN.
  4. Глобальное устройство балансировки нагрузки CDN выбирает региональное устройство балансировки нагрузки в регионе, к которому принадлежит пользователь, на основе IP-адреса пользователя и URL-адреса содержимого, запрошенного пользователем, и сообщает пользователю инициировать запрос к этому устройству.
  5. Региональное устройство балансировки нагрузки выберет подходящий кэш-сервер для предоставления услуг пользователю.Основа выбора включает в себя: в соответствии с IP-адресом пользователя, чтобы определить, какой сервер ближе всего к пользователю, в соответствии с именем контента, содержащимся в запрошенном URL-адресе. пользователем, чтобы определить, какой сервер Сервер имеет контент, требуемый пользователем; запросите текущую загрузку каждого сервера, чтобы определить, какой сервер все еще имеет сервисные возможности. После всестороннего анализа, основанного на вышеуказанных условиях, региональное устройство балансировки нагрузки вернет IP-адрес кэш-сервера глобальному устройству балансировки нагрузки.

  6. Устройство глобальной балансировки нагрузки возвращает пользователю IP-адрес сервера.

  7. Пользователь инициирует запрос к кэш-серверу, и кэш-сервер отвечает на запрос пользователя и передает контент, требуемый пользователем, на пользовательский терминал. Если на этом кэш-сервере нет контента, который хочет пользователь, и региональное балансировочное устройство по-прежнему назначает его пользователю, то сервер будет запрашивать контент со своего кэш-сервера верхнего уровня до тех пор, пока его нельзя будет отследить до исходного сервера. сайта Извлекайте контент локально.

На ней слишком много слов, мало накрутки? Популярным моментом является то, что ресурсы, к которым обращаются пользователи, изначально хранятся на вашем собственном сервере.Изменив DNS, пользователи могут выбрать соответствующий сервер кэширования CDN для получения ресурсов в соответствии с IP и другими условиями.

Преимущества CDN

Какая польза от этого?

  1. Ускорение локального кэша для более быстрого доступа
  2. Сервис зеркалирования, устраняющий узкое место взаимосвязи между операторами, чтобы пользователи в разных сетях могли получить доступ к хорошему качеству
  3. Удаленное ускорение, автоматический выбор кэш-сервера
  4. Оптимизация полосы пропускания, совместное использование сетевого трафика, снижение нагрузки,
  5. Кластерная защита от атак
  6. сэкономить расходы

наконец

Эта статьяПередовая продвинутая сериячасть,
Добро пожаловать, чтобы следовать иstarэтот блог или следуйте за мнойgithub

Цитировать

  1. Кэш браузера DNS
  2. 1.2 Основной рабочий процесс CDN - 51CTO.COM
  3. Подробное объяснение технологии CDN
  4. Предварительная выборка DNS