Я использую AWC EC2, так как мой сервер будет делать много запросов для сторонних доменов, я думаю о следующих вариантах
Я не решаюсь устанавливать централизованный рекурсор, так что это единственная точка отказа и подвержена атакам, например: http://support.godaddy.com/help/article/1184/what-risks-are-associated-with-recursive-dns-queries
Распространено ли сейчас использовать рекурсивный DNS-запрос для поддержки DNS-сервера, как это предлагается в статье выше?
Что касается безопасности и производительности, я думаю установить 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 (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 по умолчанию, что подтвердило мою точку зрения.