Циклическая настройка DNS

Обновлено: 02.07.2024

Что такое циклический перебор?
Для объяснения конфигурации циклического перебора посетите наш учебник здесь.

Что такое DNS Failover?
Служба DNS Failover от DNS Made Easy используется для поддержания работоспособности сайтов и веб-служб в случае системных или сетевых проблем. Это делается путем перемещения DNS-трафика на другой IP-адрес, который у вас работает в другом месте. Эту услугу также можно использовать для переноса трафика между резервными интернет-соединениями. Конфигурация DNS Failover с циклическим перебором будет равномерно распределять трафик между хостами, если только один из хостов не находится в автономном режиме, и в этом случае он будет удален из пула циклического перебора.

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

1. Перейдите к управляемому DNS.
В верхней части панели управления щелкните меню DNS и выберите в раскрывающемся списке управляемый DNS.


2. Выберите свой домен
Выберите домен либо в поле «Недавно обновленные домены», либо начните вводить имя домена в текстовом поле на вкладке «Выбор домена».

< бр />

3. Добавьте циклические записи A (если они еще не существуют)

  • Если запись А для нужного имени еще не существует, в разделе Записи А нажмите знак "плюс" (+), чтобы добавить новую запись А.



4. Добавьте список контактов (если он еще не существует)

  • Теперь мы настроим список контактов для уведомления о событии отработки отказа. Выберите меню Конфигурация, щелкните Списки контактов
  • .


  • Нажмите на значок плюса (+), чтобы добавить новый список контактов.

< бр />

  • Дайте списку контактов узнаваемое имя и введите адреса электронной почты, которые вы хотите включить в список, по одному в каждой строке. Нажмите Отправить. Примечание. Группы обсуждаются здесь в отдельном руководстве, однако, если вы являетесь единственным пользователем своей учетной записи, ваш список контактов должен быть частью группы По умолчанию. В противном случае он должен быть частью какой-либо группы, настроенной для получения разрешений на управление доменом.

< бр />

5. Настроить отказоустойчивость

  • Теперь мы настраиваем отказоустойчивость DNS. ВАЖНОЕ ПРИМЕЧАНИЕ. Параметры мониторинга системы и отказоустойчивости DNS, настроенные в этой части руководства, приведены только в качестве примеров. Каждая конфигурация будет отличаться в зависимости от требований к мониторингу. В меню DNS выберите Управляемый DNS
  • .

< бр />

  • Выберите домен в поле Недавно обновленные домены или начните вводить имя домена в текстовом поле на вкладке Выбор домена.

< бр />

  • В столбце SM / FO рядом с записью A нажмите выкл., чтобы изменить конфигурацию.

< бр />

  • Включите мониторинг системы и/или отказоустойчивость DNS, установив соответствующие флажки. При желании их можно использовать независимо друг от друга.



А. Предоставьте Описание системы — оно будет включено в полученное вами уведомление, чтобы вы знали, для какой системы оно предназначено.

Б. Выберите свой список контактов, чтобы получать уведомления о статусах или изменениях IP — мы выбираем тот, который мы создали. Уведомление по умолчанию отправляется Владельцу учетной записи, который является адресом электронной почты в файле для учетной записи (вы можете просмотреть это в меню «Конфигурация — Пользователи»).

С. Выберите максимальное количество электронных писем, которые вы хотите получать по каждому событию мониторинга системы и/или аварийного переключения

D. Выберите уровень конфиденциальности. Параметр чувствительность в DNS Failover позволяет указать различное количество проверок, которые места мониторинга будут выполнять в отношении IP-адреса. Высокая чувствительность означает меньшее количество проверок, три проверки выполняются сразу одна за другой для подтверждения состояния сервера. Средняя чувствительность (по умолчанию) выполняет шесть немедленных проверок. Низкая чувствительность выполняет девять немедленных проверок. Чем ниже уровень чувствительности, тем больше подтверждений будут делать серверы мониторинга.

F.Введите полное доменное имя отслеживаемой системы. Это полное имя хоста отслеживаемой системы.

К вашему сведению, ниже приведен список сетей, в которых наши службы мониторинга будут проверять ваш основной IP-адрес:

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

В этой статье мы увидим, как использовать некоторые из действительно превосходных и уникальных возможностей, предлагаемых глобальной инфраструктурой облачных серверов/центров обработки данных DigitalOcean, для создания географически распределенных высокодоступных приложений с минимальным временем простоя ( и, следовательно, потеря данных) путем управления ответами DNS.

Глоссарий

1. Традиционная структура развертывания приложений

2. Высокая доступность

  1. Структура развертывания приложений высокой доступности
  2. Как добиться высокой доступности с помощью DNS
  3. Сводка

3. Как развернуть высокодоступные приложения

  1. Настройка балансировщиков нагрузки/обратного прокси-сервера
  2. Настройка записей DNS
  3. Настройка серверов приложений
  4. Настройка баз данных

Традиционная структура развертывания приложений

Традиционное и наиболее распространенное развертывание приложений зависит от настроек, когда все связанные компоненты находятся в одном месте по нескольким причинам, например:

Недостаток средств у поставщиков;

Высокие затраты и/или;

Сложные инженерные работы.

Даже если приложение обслуживается с нескольких компьютеров, находящихся за балансировщиками нагрузки (или обратными прокси-серверами), и даже если база данных также настроена таким образом, чтобы обеспечить надежность и предотвратить потерю данных, такие механизмы склонны к разным уровням ошибок, что иногда приводит к простоям.

Чтобы предотвратить это, необходимо полагаться на более надежную системную архитектуру и использовать ее. В котором данные и серверы распределены по всему миру в разных областях (например, в Сан-Франциско и Нью-Йорке).

Высокая доступность

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

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

С точки зрения проектирования ИТ-систем такая структура называется высокой доступностью.

Благодаря присутствию DigitalOcean на двух континентах в пяти разных местах вы также можете распространять свой стек приложений по всему миру.

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

Структура развертывания высокодоступных приложений

Проще говоря, высокодоступная структура развертывания приложений, как мы только что рассмотрели, зависит от доставки и ответа клиентам из разных центров обработки данных.

Несмотря на то, что существует несколько возможных способов получить такую ​​структуру, вероятно, самый простой и доступный из них — воспользоваться преимуществами работы DNS.

Основной пример настройки можно рассматривать следующим образом:

Как добиться высокой доступности с помощью DNS

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

Поскольку DNS позволяет хранить несколько записей (даже одного и того же типа), появляется возможность указать несколько хостов в качестве сервера.

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

Такой тип балансировки нагрузки называется циклической балансировкой нагрузки DNS.

Обзор

На первый взгляд все может показаться немного сложным. Давайте обобщим их, используя пошаговые инструкции:

DNS может содержать несколько записей для одного и того же доменного имени.

DNS может возвращать список IP-адресов для того же доменного имени.

Когда веб-браузер запрашивает веб-сайт, он будет пробовать эти IP-адреса один за другим, пока не получит ответ.

Эти IP-адреса должны указывать не на серверы приложений, а на балансировщики нагрузки/обратные прокси-серверы.

Эти обратные прокси-серверы должны балансировать нагрузку между несколькими серверами в разных местах.

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

Поскольку маловероятно, что оба центра обработки данных будут недоступны одновременно, второй балансировщик нагрузки вернет ответ.

Серверы веб-приложений должны быть апатридами, чтобы упростить работу балансировщиков нагрузки.

Серверы баз данных должны быть настроены реплицированным образом.

Как развернуть высокодоступные приложения

Настройка балансировщиков нагрузки/обратного прокси-сервера

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

Создайте два облачных сервера в двух местах:

Создайте две капли DigitalOcean.

Настройте балансировщик нагрузки/обратный прокси-сервер для каждой капли:

Установите и настройте Nginx, Apache или HAProxy.

Получить IP-адреса ваших балансировщиков нагрузки:

Введите /sbin/ifconfig и узнайте IP-адреса ваших дроплетов.

например. инет-адрес: 107.170.40.112

Настройка записей DNS

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

Войдите в панель управления DigitalOcean:

Нажмите DNS в меню слева и добавьте новое доменное имя, указывающее на дроплет балансировщика нагрузки из предыдущего шага.

Добавить новую запись A:

Перейдя к следующему шагу, нажмите «Добавить запись» вверху и создайте новую запись A с IP-адресом другого дроплета балансировщика нагрузки.

Настройка серверов приложений

Следующий шаг — настройка серверов приложений.

Чтобы глобальное распределение работало, как и первые созданные вами серверы балансировки нагрузки, вам нужны две новые капли для размещения серверов приложений.

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

Разверните или продублируйте дроплет сервера приложений в двух местах. Например:

В Нью-Йорк 1 и Нью-Йорк 2;

В AMS 1 и AMS 2;

В Сан-Франциско 1, Нью-Йорк 2 и т. д.

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

Настройка баз данных

Сложно представить веб-приложение без базы данных. Самая сложная часть распределения приложений по нескольким серверам, вероятно, связана с базами данных.

В зависимости от вашего выбора сервера базы данных создайте дублирующую конфигурацию, но в нескольких местах.

  • Для репликации MySQL Master/Slave:
  • Для MySQL Master/Master Replication:
  • Для репликации PostgreSQL Master/Slave:

После того, как вы завершите создание реплицированной структуры базы данных, укажите вашим приложениям использовать их адреса, как описано в руководствах, в качестве сервера БД.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Циклический DNS — это метод распределения нагрузки, балансировки нагрузки или обеспечения отказоустойчивости нескольких резервных хостов службы Интернет-протокола (например, веб-сервера, FTP-сервера) путем управления ответами системы доменных имен (DNS) на запросы адресов. с клиентских компьютеров в соответствии с соответствующей статистической моделью.

Циклический DNS часто используется для балансировки нагрузки запросов между несколькими веб-серверами. Например, у компании есть одно доменное имя и три идентичные копии одного и того же веб-сайта, расположенные на трех серверах с тремя разными IP-адресами. Когда один пользователь пытается получить доступ к домашней странице, он будет отправлен на первый IP-адрес. Второй пользователь, который попытается получить доступ к домашней странице, будет отправлен на следующий IP-адрес, а третий пользователь будет отправлен на третий IP-адрес. В каждом случае, как только IP-адрес выдается, он идет в конец списка. Таким образом, четвертый пользователь будет отправлен на первый IP-адрес.

Зачем вам нужен циклический DNS?

В наши дни балансировка нагрузки необходима для крупных веб-сервисов, которые генерируют огромный объем трафика. Как вы понимаете, веб-серверы легко могут быть перегружены. По этой причине Round-Robin, безусловно, является хорошим способом избежать таких инцидентов. Это правильный и один из наиболее часто используемых способов разделения трафика на ваших серверах.

Пример конфигурации циклического перебора:

< td style="text-align: center;">Указывает на:
Хост Тип записи
example.com A ip.of.first.server
example.com A ip.of. second.server
example.com A ip.of. Third.server

Round Robin DNS

Вопрос. Какой хостинг-план мне нужен для использования Round-Robin DNS?
Ответ: Round-Robin DNS включен в бесплатный план и все платные планы. Зарегистрируйтесь бесплатно здесь.

Вопрос. Могу ли я использовать запись ALIAS в своей конфигурации DNS с циклическим перебором?
Ответ: Да, вы можете использовать записи A и ALIAS в конфигурации DNS с циклическим перебором

Вопрос. Могу ли я использовать запись AAAA в конфигурации DNS с циклическим перебором?
Ответ: Да, записи AAAA можно использовать в конфигурации DNS с циклическим перебором

Вопрос. Могу ли я использовать запись CNAME в конфигурации DNS с циклическим перебором?
Ответ: Нет, записи CNAME не поддерживаются в конфигурации DNS с циклическим перебором и не могут использоваться в сочетании с любой другой записью DNS для тот же хост.

Вопрос: Зависит ли Round-Robin от текущего состояния моего сервера?
Ответ: Нет, не зависит. Другими словами, если один из ваших серверов не работает, Round-Robin не будет исключать недоступный сервер из вашей текущей конфигурации DNS.

Вопрос. Если у меня есть 2 записи "A" в Round-Robin, будет ли это просто означать, что мой трафик будет разделен 50/50?
Ответ: Из-за кеша резолвера и кеша на стороне клиента вы не можете быть абсолютно уверены, что ваш трафик будет разделен поровну.

Поддержка циклического DNS

ClouDNS обеспечивает полную поддержку Round-Robin для всех наших служб DNS, включая перечисленные ниже. Просто напишите в нашу службу технической поддержки, если вам нужна помощь с настройкой Round-Robin. Наша служба технической поддержки работает круглосуточно и без выходных через чат и тикеты.

Циклический DNS обеспечивает дешевую и простую балансировку нагрузки и отказоустойчивость.

Кластер серверов

Можно настроить кластер серверов (два или более ), и запись DNS для вашего сайта может быть определена с IP-адресами для каждого из серверов, это известно как циклический DNS

Циклический перебор DNS для аварийного переключения веб-сервера

  • www1 -> 10.0.0.1
  • www2 -> 10.0.0.2
  • www -> 10.0.0.1, 10.0.0.2

Теперь DNS-сервер возвращает оба IP-адреса для каждого запроса www в случайном порядке.Если оба веб-сервера работают, проблем, очевидно, нет. Если один упал. вопросы в том, будет ли браузер пробовать второй IP-адрес. и как долго это ждать?

В идеале статический IP-адрес одного сервера должен быть от одного сетевого провайдера, а IP-адрес другого сервера должен быть от другого сетевого провайдера. Это означает, что мы не полагаемся на одного сетевого провайдера.

Успех в современных браузерах

Браузер клиента выберет один из идентичных серверов. Если он не может подключиться к одному, он попытается подключиться к другому.

Использование последних версий IE (8 и выше), Opera, Safari, Firefox и Chrome. Браузер попробует один веб-сервер, и если он не сможет подключиться, браузер попробует следующий сервер, процесс прозрачен для пользователя и происходит только в том случае, если время ожидания первого сервера истекло, и только для первой страницы, запрошенной с нашего сайта в любой сеанс браузера.

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

Сбои с устаревшими браузерами

Браузеры старше IE8 не поддерживаются веб-приложением ST, но их можно использовать для просмотра веб-сайтов. Старые браузеры, такие как IE7, будут использовать только первый IP-адрес.

Каковы преимущества?

    • Последовательный перезапуск серверов можно выполнять прозрачно (перезапуск 1 сервера через несколько минут после следующего сервера).
    • Если один сервер выйдет из строя, пользователи автоматически перейдут на следующий.
    • Соединение браузера является "прилипчивым", что очень важно, т. е. после подключения браузер останется подключенным к серверу, к которому он был первоначально подключен.

    Есть ли недостатки?

    В периоды, когда один из серверов был недоступен, пользователи непереключаемых браузеров (IE7) с вероятностью 50 % столкнутся с неисправным сервером в отдельном сеансе браузера. Использование IE7 в настоящее время составляет менее 1% веб-трафика для этих браузеров. Это не преимущество, а довольно большая победа для всех современных браузеров.

    Примечание. Пользователи с IE7 не могут входить на какие-либо серверы ST из-за отсутствия поддержки HTML5, но их можно использовать для просмотра веб-сайтов.

    Читайте также: