Назад | Перейти на главную страницу

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

Я использую AWC EC2, так как мой сервер будет делать много запросов для сторонних доменов, я думаю о следующих вариантах

Я не решаюсь устанавливать централизованный рекурсор, так что это единственная точка отказа и подвержена атакам, например: http://support.godaddy.com/help/article/1184/what-risks-are-associated-with-recursive-dns-queries

  1. Распространено ли сейчас использовать рекурсивный DNS-запрос для поддержки DNS-сервера, как это предлагается в статье выше?

  2. Что касается безопасности и производительности, я думаю установить nscdесть ли недостаток?

nscd делает больше, чем просто кеширует DNS-запросы; он также кэширует поиск по именам пользователей и групп, а также некоторые другие менее распространенные варианты использования. Он стандартен для систем Linux (входит в состав glibc) и, вероятно, уже установлен, и использует очень мало памяти, поэтому нет причин не запускать его. Это обеспечит хорошее поведение при кэшировании без необходимости дальнейшей настройки.

Поскольку EC2 взимает плату за внешний трафик, а трафик до 8.8.8.8 (распознаватель Google) будет намного медленнее, чем трафик, внутренний для центра обработки данных, вам следует предпочесть EC2 DNS, если у вас нет очень конкретной причины не делать этого. Вы можете настроить Google DNS (8.8.8.8 и 8.8.4.4) в качестве резервных копий для Amazon DNS, если хотите, но очень маловероятно, что они не будут работать, когда остальная часть зоны будет работать.

Мои рекомендации для ваших виртуальных машин EC2:

  • Используйте nscd, который должен быть настроен по умолчанию (/ usr / sbin / nscd; вам следует проверить конфигурацию запуска вашего дистрибутива, чтобы убедиться, что служба запускается при загрузке).
  • Используйте DNS-серверы Amazon по умолчанию.
  • Если хотите, добавьте серверы Google в качестве резервных копий. Как вы это сделаете, зависит от вашего дистрибутива. Если вы не уверены, проверьте /etc/resolv.conf, это файл, который просматривает glibc (nscd), и обычно там будет комментарий, рассказывающий, как он был настроен. Серверы проверяются в том порядке, в котором они перечислены в resolv.conf, поэтому добавление сначала IP-адресов Amazon, а затем IP-адресов Google позволит nscd вернуться к Google, если по какой-то причине Amazon не работает.

Источники: страницы руководства для nscd (8) и resolv.conf (5)

Установить dnsmasq или dnscache на трех или более машинах в вашей сети. Я бы рекомендовал использовать AWS VPC для всей инфраструктуры, но это отдельная проблема.

Направьте все свои хосты на эти три сервера имен.

Настройте файл resolv.conf следующим образом:

nameserver IP_ADDRESS_1
nameserver IP_ADDRESS_2
nameserver IP_ADDRESS_3
options rotate 
options timeout:1

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

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

Ваше мышление превосходно, и все варианты, которые вы рассматриваете, великолепны. Если вы доверяете рекурсору EC2 или Google, ни в коем случае не продолжайте.

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

Для повышения производительности я бы установил пару рекурсоров в каждой зоне доступности и настроил их так, чтобы они были первыми двумя серверами имен в /etc/resolv.conf, затем добавьте рекурсор EC2. Таким образом, вы можете быть уверены, что

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

Для современного, ухоженного, легкого и высокопроизводительного рекурсора я очень рекомендую Несвязанный (см. независимую рекомендацию здесь: http://info.menandmice.com/blog/bid/37244/10-Reasons-to-use-Unbound-DNS)

Установка Ubuntu dnsmasq по умолчанию и должен обеспечивать достаточно безопасный и быстрый способ настройки кеша DNS без каких-либо недостатков.

Подробнее о https://unix.stackexchange.com/a/59424

ИМХО все дело в ваших задачах. Если вы делаете много запросов к небольшому количеству адресов (например, от 1000 об / с до 10 доменов), вам подойдет демон локального кеша. Если ваши запросы распространяются на большое количество адресов (один запрос на 1000 доменов в секунду), я рекомендую использовать локальный DNS-рекурсор, чтобы ускорить процесс запроса и уменьшить трафик DNS. Не забудьте настроить кеш, если вы планируете использовать местный рекурсор.

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

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