Включить циклический перебор dns

Обновлено: 03.07.2024

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

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

  • какие параметры сети вам может потребоваться обновить после создания кластера;
  • для каких вариантов использования Azure FXT Edge Filer необходим сервер AD или DNS-сервер;
  • как настроить DNS с циклическим перебором (RRDNS) для автоматического распределения нагрузки запросов клиента к кластеру FXT.

Время, необходимое для выполнения этих шагов, зависит от того, сколько изменений конфигурации требуется в системе:

  • если вам нужно только прочитать учебник и проверить несколько настроек, это займет 10-15 минут;
  • если необходимо настроить DNS с циклическим перебором, эта задача может занять больше часа.

Настройка параметров сети

Несколько задач, связанных с сетью, являются частью настройки нового кластера Azure FXT Edge Filer. Ознакомьтесь с приведенным списком и определите задачи, которые необходимо применить к вашей системе.

Дополнительные сведения о параметрах сети для кластера см. на странице настройки служб сети в руководстве по настройке кластера.

Настройка DNS с циклическим перебором для сети клиента (необязательно)

Распределите нагрузку трафика кластера, настроив систему DNS как описано в разделе Настройка DNS для кластера FXT Edge Filer.

Проверка параметров NTP

Настройка Active Directory и загрузок имен пользователя и групп (при необходимости)

Если сетевые узлы используют Active Directory или другой вид внешней службы каталогов, необходимо изменить конфигурацию служб каталогов кластера, чтобы настроить способ скачивания кластером информации об имени пользователя и группе. Дополнительные сведения см. в разделе Cluster > Directory Services (Кластер > Службы каталогов) в руководстве по настройке кластера.

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

Определение виртуальных локальных сетей (необязательно)

Настройте любые дополнительные виртуальные локальные сети, необходимые перед определением vservers кластера и глобального пространства имен. Чтобы получить дополнительные сведения, ознакомьтесь с разделом Working with VLANs (Работа с виртуальными локальными сетями) в руководстве по настройке кластера.

Настройка прокси-серверов (при необходимости)

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

  1. Определите прокси-сервер на странице параметров Proxy Configuration (Конфигурация прокси-сервера).
  2. Примените конфигурацию прокси-сервера на странице Cluster > General Setup (Кластер > Общая настройка) или Core Filer Details (Сведения об основном файловом хранилище).

Дополнительные сведения см. в разделе Using web proxies (Использование веб-прокси) в руководстве по настройке кластера.

Отправка сертификатов шифрования для использования кластера (необязательно)

Сертификаты шифрования

Кластер FXT Edge Filer использует сертификаты X.509 для этих функций:

для шифрования трафика администрирования кластера;

для аутентификации от имени клиента на сторонних серверах KMIP;

для проверки сертификатов сервера поставщиков облачных служб.

Для шифрования данных об управлении кластером используйте страницу параметров Кластер > Общая настройка, чтобы выбрать, какой сертификат использовать для TLS администрирования.

Убедитесь, что компьютеры администрирования соответствуют стандартам шифрования кластера.

Ключи доступа облачной службы хранятся с помощью страницы конфигурации Cloud Credentials (Учетные данные облака). В предыдущем разделе Add a core filer (Добавление основного файлового хранилища) приведен пример. Дополнительные сведения см. в разделе Cloud Credentials (Учетные данные облака) в руководстве по настройке кластера.

Настройка DNS для балансировки нагрузки

В этом разделе описаны основные настройки системы DNS с циклическим перебором (RRDNS) для распределения клиентской нагрузки по всем IP-адресам клиента в кластере FXT Edge Filer.

Следует ли использовать DNS

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

Принимая решение о том, следует ли использовать DNS-сервер, учитывайте следующее:

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

Если ваша система поддерживает доступ к SMB (CIFS), DNS-сервер требуется, потому что нужно указать домен DNS для сервера Active Directory.

DNS является обязательным, если вы хотите использовать аутентификацию Kerberos.

Сведения о конфигурации DNS с циклическим перебором

Система DNS с циклическим перебором (RRDNS) автоматически направляет клиентские запросы между несколькими адресами.

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

Для настройки RRNDS необходимо выполнить два основных действия:

Измените файл named.conf DNS-сервера, чтобы установить циклический порядок запросов к кластеру FXT. Если задан этот параметр, сервер циклически перебирает все доступные значения IP-адресов. Добавьте инструкцию следующим образом:

Настройте записи А и PTR для каждого доступного IP-адреса, как показано в приведенном ниже примере.

С помощью этих команд создается запись A для каждого адреса подключения кластера, а также надлежащим образом настраиваются записи PTR для поддержки обратных проверок DNS.

На приведенной ниже схеме показана базовая структура этой конфигурации.

Схема: конфигурация DNS для точки подключения клиента.

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

Включение DNS в кластере

Укажите DNS-сервер, используемый кластером, на странице параметров: Cluster > Administrative Network (Кластер > Административная сеть). Параметры на этой странице включают:

  • адрес DNS-сервера;
  • доменное имя DNS-сервера;
  • домены поиска DNS.

Ознакомьтесь с параметрами DNS в руководстве по настройке кластера для получения дополнительных сведений.

Дальнейшие действия

Это последний шаг базовой конфигурации для кластера Azure FXT Edge Filer.

Для успешного выполнения этой процедуры необходимо войти в систему на сервере или в домене в группу администраторов домена или в группу пользователей DnsAdmins.

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

Переопределение полного доменного имени пула внутренних веб-служб.

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

Создайте DNS A Records hosts, чтобы разрешить полное доменное имя пула с IP-адресами всех серверов в пуле.

Включение случайного выбора IP-адреса или для DNS-сервера Windows Server включите циклическое управление.

По умолчанию будет включена функция "циклический перебор".

Чтобы переопределить полное доменное имя внутренней веб-службы

Запустить построитель топологии: нажмите кнопку Пуск, выберите пункт все программы, а затем — Microsoft Lync Server 2013 и нажмите кнопку Построитель топологии Lync Server.

В дереве консоли разверните узел Пулы переднего плана Enterprise Edition.

Щелкните пул правой кнопкой мыши, выберите команду изменить свойства, а затем — веб-службы.

В разделе внутренние веб-службы установите флажок Переопределение полного доменного имени .

Введите полное доменное имя пула, которое разрешается в физические IP-адреса серверов в пуле.

Под внешними веб-службами введите полное доменное имя внешнего пула, которое разрешается в виртуальные IP-адреса пула, и нажмите кнопку ОК.

В дереве консоли щелкните Lync Server 2013, а затем в области действия выберите пункт топология публикации.

Создание записей DNS Host (A) для всех внутренних серверов пула

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

Щелкните правой кнопкой мыши домен DNS, в который нужно добавить записи, и выберите команду создать узел (A или AAAA).

В поле Имя введите имя записи узла (имя домена добавляется автоматически).

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

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

Дополнительные сведения о создании записей DNS Hosting (A) можно найти в разделе Настройка записей узлов DNS для Lync Server 2013.

Включение циклического переобслуживанием для Windows Server

Разверните узел DNS, щелкните правой кнопкой мыши DNS-сервер, который вы хотите настроить, и выберите пункт свойства.

На вкладке Дополнительно установите флажок включить циклический перебор и включите расстановку по сети, а затем нажмите кнопку ОК.

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

Я понимаю, что циклический DNS является, в лучшем случае, решением низкого уровня (некоторые могут даже сказать, гетто ), но я не могу не задаться вопросом - является ли циклический DNS «достаточно хорошим» решением для базовой балансировки нагрузки статического контента ?

Это обсуждается в тегах [dns] [балансировка нагрузки] , и я прочитал несколько замечательных постов на эту тему.

Мне известны общие недостатки балансировки нагрузки на DNS через несколько циклических записей A:

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

Но достаточно ли циклический DNS для начала, лучше, чем ничего, «пока мы исследуем и реализуем лучшие альтернативы» в форме балансировки нагрузки для нашего статического контента? Или DNS круглого робина практически ничего не стоит при любых обстоятельствах?

как я сказал в посте, это конкретный вопрос об этом решении - можем ли мы остаться в теме? @jeff - абсолютно, тупой балансировщик нагрузки (который является простым циклическим DNS) не создает избыточности. Еще сложнее, если вы говорите о балансировке / избыточности на нескольких сайтах. @symcbean Я хорошо знаком с терминологией, описанной в RFC 2119. Вы сказали, что DNS-сервер определяет список предпочтений. Если у вас нет какого-то странного определения «списков предпочтений», это просто неверно.

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

DNS roundrobin отлично подходит для увеличения емкости, распределяя нагрузку по нескольким точкам (потенциально географически распределенным). Но это не обеспечивает отработки отказа. Сначала вы должны описать, какой тип ошибки вы пытаетесь устранить. Сбой сервера должен быть покрыт локально с использованием стандартного механизма захвата IP-адресов (VRRP, CARP, . ). Отказ коммутатора покрывается упругими ссылками на сервере на два коммутатора. Отказ канала WAN может быть покрыт установкой нескольких каналов между вами и вашим провайдером с использованием протокола маршрутизации или решения уровня 2 (например, PPP с несколькими каналами). Отказ сайта должен быть покрыт BGP: ваши IP-адреса реплицируются на несколько сайтов, и вы объявляете их в сети только там, где они доступны.

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

Вы спросили: «Что делать, если машина с прокси не работает? Это то же самое. Все мои знакомые, использующие haproxy для балансировки нагрузки и высокой доступности, имеют две машины и запускают на них ucarp, keepalived или heartbeat, чтобы гарантировать, что одна из них всегда доступна.

Надеюсь, это поможет!

Кстати, вас может заинтересовать статья, которую я написал около 4 лет назад об этих концепциях: 1wt.eu/articles/2006_lb (возьмите PDF, читать HTML через страницы скучно). -1: «не обеспечивает отработки отказа» - да, это так - и он реализует это в единственном месте, где можно надежно определить недоступность, - на клиенте. Не за что. Это будет работать, если DNS не использует кэши, но это не так, и клиенты не могут принудительно обновить кэши. Поговорите с любым человеком, который регулярно переключает записи DNS, и он скажет вам, что, несмотря на то, что он наблюдает 80% -ое переключение за 5 минут, обычно требуется более одной недели, чтобы приблизиться к 100%. Таким образом, DNS не обеспечивает отработки отказа. Простым примером «балансировки нагрузки без избыточности» является RAID0. Вилли, вы подходите для того, чтобы записи DNS обновлялись годами. Но RR-DNS с браузерами обрабатывается на уровне браузера, проверяя все IP один за другим, если первый, отправленный DNS, не работает. В этом случае вы никогда не меняете свои записи DNS, поэтому обновлений ждать не приходится.

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

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

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

Если один из двух серверов с циклическим перебором выйдет из строя, то 50% ваших клиентов получат отказ Это лучше, чем 100% сбой только с одним сервером, но почти любое другое решение, обеспечивающее реальное аварийное переключение, будет лучше, чем это.

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

Если вы планируете вывести из строя мертвый сервер вручную, вы ограничены скоростью, с которой вы можете это сделать, и DNS TTL. Что если сервер умрет в 4 часа утра? Лучшая часть настоящего аварийного переключения - это спать всю ночь. Вы уже используете HAProxy , поэтому вы должны быть знакомы с ним. Я настоятельно рекомендую использовать его, так как HAProxy разработан именно для этой ситуации.

совершенно не по теме, но у нас также есть проблема необходимости нескольких экземпляров HAProxy для перехода на другой ресурс - что делать, если отказывает машина HAProxy? Тем не менее, тема будущих вопросов ДЕЙСТВИТЕЛЬНО не по теме. +1 - "С автоматизированным способом . это становится отказоустойчивым гетто. Вручную это даже не это." должно быть большими жирными буквами. Круговая перестановка DNS становится проблемой, если вы не отслеживаете машины и не удаляете их из DNS, если они выходят из строя, и единственный разумный способ сделать это - использовать автоматизированное решение. Есть намного лучшие решения, чем циклический DNS. полностью согласен, но 20% ваших клиентов, звонящих вам с жалобами , лучше, чем 100% звонящих с жалобами .. Ключевой момент (для меня), который делает Шоф, отвечая на вопрос Джеффа, заключается в том, что без быстрого аварийного переключения Round Robin означает, что с течением времени на вас влияет больше клиентов, чем без него, но каждый (более частый) инцидент влияет только на часть клиентов, а не на всех. Является ли это «лучше» или нет, зависит от сценария, но в большинстве случаев я бы сказал, что это не так. The best part of true failover is getting to sleep through the night. Это одно четкое определение!

Круглый DNS - это не то, что думают люди. Как автор программного обеспечения DNS-сервера (а именно, BIND ), мы получаем пользователей, которые задаются вопросом, почему их циклический перерыв перестает работать, как планировалось. Они не понимают, что даже при TTL, равном 0 секундам, будет некоторое количество кэширования, поскольку некоторые кэши устанавливают минимальное время (часто 30-300 секунд), несмотря ни на что.

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

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

и некоторые DNS-серверы (или панели управления) настроены на предоставление TTL 7200 независимо от того, на что вы его установили - некоторые крупные хостинговые компании проводят IIRC.

Я уже говорил это несколько раз, и я скажу это снова - если проблема заключается в отказоустойчивости, то уловки DNS - не ответ .

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

Таким образом, фундаментальное правило заключается в том, что для истинной устойчивости требуется обман уровня IP- маршрутизации . Используйте устройство балансировки нагрузки, или OSPF с «равной стоимостью», или даже VRRP.

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

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

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

Кстати, я считаю DNS Round Robin более простым решением для распределения нагрузки.

Ой, не видел твой ответ, прежде чем опубликовать мой, так что +1 на ваш, чтобы правда вышла!

Я опаздываю к этой теме, так что мой ответ, вероятно, будет зависать в одиночестве внизу, пренебрегая, нюхать.

Прежде всего, правильный ответ на вопрос - не ответить на вопрос, а сказать:

  1. «Возможно, вместо этого вам нужна балансировка сетевой нагрузки Windows ». ИЛИ ЖЕ
  2. «Идите в ногу со временем, разместите свой статический контент в чем-то вроде облачных файлов или S3 и сделайте так , чтобы CDN отражал его во всем мире».

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

Вопрос

Является ли Round Robin DNS достаточно хорошей отправной точкой, лучше, чем ничего, «пока мы исследуем и внедряем лучшие альтернативы» в форме балансировки нагрузки для нашего статического контента?

Между, скажем, 2 или 3 статическими веб-серверами? Да, это лучше, чем ничего, потому что есть DNS-провайдеры, которые интегрируют DNS Round Robin с проверками работоспособности сервера и временно удаляют мертвые серверы из записей DNS. Таким образом , в этом случае вы получите приличное распределение нагрузки и некоторую высокую доступность; и все это занимает менее 5 минут, чтобы настроить.

Но предостережения, изложенные другими в этой теме, действительно применимы:

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

Другие решения

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

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

1) TTL на записях DNS, используемых для циклического перебора, должен быть коротким, но НЕ НОЛЬ. Наличие нулевого TTL нарушает основной способ обеспечения устойчивости.

2) DNS RR распределяет, но не балансирует нагрузку, а распределяет ее, потому что на большой клиентской базе они, как правило, запрашивают DNS-сервер независимо и в результате получают разные записи DNS первого выбора. Эти разные варианты выбора означают, что клиенты обслуживаются разными серверами, а нагрузка распределяется. Но все зависит от того, какое устройство выполняет DNS-запрос и как долго он удерживает результат. Типичным примером является то, что все клиенты за корпоративным прокси-сервером (который выполняет DNS-запрос для них) все будут в конечном итоге нацелены на один сервер. Нагрузка распределена - но она не сбалансирована равномерно.

3) DNS RR обеспечивает устойчивость до тех пор, пока клиентское программное обеспечение правильно ее реализует (и TTL, и диапазон внимания пользователей не слишком малы). Это связано с тем, что циклический перебор DNS предоставляет упорядоченный список IP-адресов сервера, и клиентское программное обеспечение должно пытаться связаться с каждым из них по очереди, пока не найдет сервер, который принимает соединение.

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

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

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

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

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

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

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

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

Так что ДА, DNS round robin определенно "достаточно хорош" для вашего первого шага за один сервер, на котором размещен весь ваш статический контент в одном месте.

В настоящее время у меня работает сайт, трафик которого распределяется между 7 зеркальными серверами прямо сейчас (с использованием циклического перебора DNS). Но скоро потребуется больше зеркал, учитывая высокий объем трафика, который постоянно растет.

Существуют ли какие-либо практические или рекомендуемые ограничения на количество IP-адресов, связанных с данным доменным именем, при использовании циклического DNS?

Кроме того, какое решение вы бы порекомендовали, если количество зеркал велико (например, более 10 или 20 зеркал)?

Следует иметь в виду, что по умолчанию при поиске DNS используется UDP. Если ответ больше, чем может поместиться в одной дейтаграмме, возвращается столько, сколько подходит, и в заголовке устанавливается бит TC (усеченный).

Запрашивающая сторона может выбрать работу с тем, что было возвращено, или повторить запрос, используя TCP.

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

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

Если вы используете записи CNAME, это также увеличит размер ответа, так как вы получите CNAME и запись A того объекта, на который указывает.

Лучше всего поиграть с различными номерами записей A, используя dig или "host -v", чтобы увидеть, когда запрос пересекает максимальный размер ответа UDP.

фактически кеширующим серверам разрешается кешировать ответы, если весь раздел получен. Если с разделом «ответ» все в порядке, но «дополнительный» раздел был усечен, было бы неплохо кэшировать этот ответ.

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

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

Я опоздал на этот вопрос, но я подумал, что было бы неплохо упомянуть фактические пределы того, что вы можете сделать. Я не знаю теоретического предела, но некоторые интернет-провайдеры не будут принимать что-либо после 36. На самом деле, если вы включите больше, это не только не будет включать дополнительные серверы, они будут полностью игнорировать вас. У меня были проблемы с Verizon и Comcast, но я уверен, что другие пострадали.

Тем не менее, если у вас достаточно трафика для гарантии 36 зеркал, пожалуйста, не используйте циклический DNS.

Если у вас много серверов, возможно, лучший ответ - это сделать Akamai и использовать anycast DNS-серверы и циклический перебор. Другими словами, DNS-серверы для зоны распределены по сети, все с одинаковыми IP-адресами, и точки маршрутизации клиентов находятся на ближайших серверах по сети. Каждый сервер отвечает в циклическом порядке за подмножество полного списка возможных серверов.

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

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