Как включить dns cache

Обновлено: 07.07.2024

DNS (Domain Name System) – важный и довольно сложный в настройке компонент, необходимый для работы веб-сайтов и серверов. Многие пользователи обращаются к DNS-серверам, которые предоставляет их хостинг-провайдер, однако собственные DNS-серверы имеют некоторые преимущества.

В данном мануале вы узнаете, как установить Bind9 и настроить его как кэширующий или перенаправляющий DNS-сервер на сервере Ubuntu 14.04.

Требования

  • Понимание базовых типов DNS-серверов. Ознакомиться с подробностями можно в этой статье.
  • Две машины, из которых хотя бы одна работает на Ubuntu 14.04. Первая машина будет настроена как клиент (IP-адрес 192.0.2.100), а вторая – как DNS-сервер (192.0.2.1).

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

Кэширующий DNS-сервер

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

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

Перенаправляющий DNS-сервер

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

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

1: Установка Bind на DNS-сервер

Пакет Bind можно найти в официальном репозитории Ubuntu. Обновите индекс пакетов и установите Bind с помощью менеджера apt. Также нужно установить пару зависимостей.

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

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

2: Настройка кэширующего DNS-сервера

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

Конфигурационные файлы Bind хранятся в каталоге /etc/bind.

Большую часть файлов редактировать не нужно. Главный конфигурационный файл называется named.conf (named и bind – два названия одного приложения). Этот файл ссылается на файлы named.conf.options, named.conf.local и named.conf.default-zones.

Для настройки кэширующего DNS-сервера нужно отредактировать только named.conf.options.

sudo nano named.conf.options

Этот файл выглядит так (комментарии опущены для простоты):

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

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

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

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

Перед блоком options добавьте блок acl. Создайте метку для группы ACL (в данном мануале группа называется goodclients).

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

acl goodclients 192.0.2.0/24;
localhost;
localnets;
>;
options . . .

Теперь у вас есть ACL безопасных клиентов. Можно приступать к настройке разрешения запросов в блоке options. Добавьте в него такие строки:

options directory "/var/cache/bind";
recursion yes;

allow-query < goodclients; >;
. . .

Блок options явно включает рекурсию, а затем настраивает параметр allow-query для использования списка ACL. Для ссылки на группу ACL можно также использовать другой параметр, например allow-recursion. При включенной рекурсии allow-recursion определит список клиентов, которые могут использовать рекурсивные сервисы.

Однако если параметр allow-recursion не установлен, Bind возвращается к списку allow-query-cache, затем к списку allow-query и, наконец, к спискам по умолчанию localnets и localhost. Поскольку мы настраиваем только кэширующий сервер (он не имеет собственных зон и не пересылает запросы), список allow-query всегда будет применяться только к рекурсии. Это самый общий способ определения ACL.

Сохраните и закройте файл.

Это все настройки, которые нужно добавить в конфигурационный файл кэширующего DNS-сервера.

Примечание: Если вы хотите использовать только этот тип DNS, переходите к проверке конфигураций, перезапустите сервис и настройте свой клиент.

3: Настройка перенаправляющего DNS-сервера

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

На данный момент файл named.conf.options выглядит так:

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

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

Это делается в блоке options <>. Сначала нужно создать в нем новый блок forwarders, где будут храниться IP-адреса рекурсивных серверов имен, на которые нужно перенаправлять запросы. В данном случае это будут DNS-серверы Google (8.8.8.8 и 8.8.4.4):

Далее нужно в директиве forward установить значение only, поскольку сервер должен только перенаправлять все запросы и не пытаться разрешить их самостоятельно.

В результате конфигурация выглядит так:

Чтобы избежать их, нужно изменить значение параметра dnssec-validation на yes и явно разрешить dnssec.

Сохраните и закройте файл. Настройка перенаправляющего DNS-сервера завершена.

4: Проверка настроек и перезапуск Bind

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

Чтобы проверить синтаксис конфигурационных файлов, введите:

Если в файлах нет ошибок, командная строка не отобразит никакого вывода.

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

sudo service bind9 restart

После нужно проверить логи сервера. Запустите на сервер команду:

sudo tail -f /var/log/syslog

Теперь откройте новый терминал и приступайте к настройке клиентской машины.

5: Настройка клиента

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

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

Откройте файл с помощью sudo в текстовом редакторе:

sudo nano /etc/resolv.conf

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

Сохраните и закройте файл.

Для этого можно использовать ping:

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

Как видите, обработка запроса заняла 36 миллисекунд. Повторите запрос. Сервер должен извлечь данные из кэша, что укорит обработку запроса:

Теперь запрос обрабатывается гораздо быстрее.

Также можно протестировать обратное преобразование. Для этого используйте найденный IP (в данном случае 140.211.169.4) и dig с флагом –x:

Как видите, обратное преобразование выполнено успешно.

Вернитесь на DNS-сервер. Если во время настройки клиента возникли какие-либо ошибки, вы увидите их. К примеру, часто случается такая ошибка:

Это значит, что сервер пытается разрешить данные IPv6, но он не настроен для поддержки IPv6. Чтобы устранить ошибку, нужно настроить Bind для обслуживания только IPv4.

sudo nano /etc/default/bind9

Найдите параметр OPTIONS и добавьте в него флаг -4, чтобы настроить поддержку только IPv4.

Сохраните и закройте файл.

sudo service bind9 restart

После этого в логах не должно быть ошибок.

Сохранение настроек клиента DNS

Параметры файла /etc/resolv.conf сбрасываются после перезапуска. Чтобы эти настройки использовались на постоянной основе, нужно отредактировать файлы, которые обращаются к этому файлу.

Откройте этот файл:

sudo nano /etc/network/interfaces

Найдите параметр dns-nameservers. Удалите текущую запись и замените ее данными о вашем DNS-сервере или просто добавьте новый DNS-сервер в качестве одного из значений.

. . .
iface eth0 inet static
address 111.111.111.111
netmask 255.255.255.0
gateway 111.111.0.1
dns-nameservers 192.0.2.1
. . .

Сохраните и закройте файл.

В системах CentOS и Fedora для этого нужно открыть файл /etc/sysconfig/network/network-scripts/ifcfg-eth0:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

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

Сохраните и закройте файл.

Заключение

Теперь вы умеете настраивать кэширующий и перенаправляющий DNS-сервер. Это поможет вам ускорить обработку DNS-запросов.

Для корректной установки и настройки dnsmasq, перейдите в сеанс cуперпользователя:

На запрос пароля, введите пароль привилегированного пользователя или локального администратора.

Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:

Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:

С помощью текстового редактора vi или nano откройте файл, расположенный по адресу /etc/dnsmasq.conf

Отредактируйте следующие параметры:

А так же допишите следующий параметр:

Также можно указать следующие параметры:

  • no-negcache — не кэшировать негативные ответы от серверов.
  • bind-interfaces — позволяет запускать копии процесса.
  • dns-forward-max — максимальное количество dns-запросов. По умолчанию — 150. Параметр нужно записать вручную.

Теперь создайте файл resolv.dnsmasq с помощью текстового редактора vi или nano и запишите туда адреса dns-серверов.

Изменение сетевого адаптера

Изменение свойств сетевого адаптера

Редактирование файла resolv.conf с помощью текстовых редакторов не рекомендуется. Файл перезапишется со следующим перезапуском системы.

Чтобы убедиться, что изменения вступили в силу, посмотрите содержимое файла resolv.conf:

Содержимое должно быть таким:

Описанные выше операции позволят перенаправлять все dns-запросы на локальную машину.

Добавьте службу dnsmasq в автозапуск и перезайдите в сеанс:

Для того, чтобы сбросить кэш, просто перезапустите службу:

Проверка работоспособности

Проверьте, включена ли служба:

Проверьте порт 53:

Если кэширование dns-запросов работает, то практически во всех следующих запросах выделенная строчка query time будет равна нулю.

В противном случае она будет варьироваться от 0 и выше с каждым новым запросом.

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

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.


Цель кэша DNS

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

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

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

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

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

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

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

Как работает кеш DNS

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

Содержимое локального кеша DNS можно просмотреть в Windows с помощью команды ipconfig /displaydns , с результатами, подобными этому:

Что такое отравление кэша DNS?

Кэш DNS становится отравленным или загрязненным, когда в него вставлены неавторизованные доменные имена или IP-адреса.

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

Отравление заставляет запросы клиентов перенаправляться в неправильные адресаты, как правило, вредоносные веб-сайты или страницы с рекламными объявлениями.

Очистка DNS: как её выполнить и что она делает

При устранении неполадок кеша или других проблем с подключением к Интернету администратор компьютера может захотеть сбросить (то есть очистить, сбросить или стереть) кеш DNS.

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

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


DNS

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

Как правило, в Windows есть три типа кэшей, которые вы можете легко очистить:

  1. Кэш памяти
  2. DNS-кэш
  3. Кэш миниатюр

Очистить кэш DNS Windows


Вам необходимо открыть окно командной строки администратора. В Windows 8 для этого нажмите комбинацию клавиш Win + C, чтобы вызвать «панель чудо-кнопок». В поле поиска введите cmd . Затем щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора». Кроме того, вы также можете открыть командную строку с повышенными привилегиями из меню WinX.

Далее введите следующее и нажмите ввод:

Вы должны увидеть диалоговое окно подтверждения:

Конфигурация Windows IP. Успешно сброшен кэш DNS Resolver.

Наша бесплатная программа FixWin для Windows, позволяющая одним щелчком очистить кэш DNS и т. Д.


Показать DNS-кэш

Если вы хотите подтвердить, был ли очищен кэш DNS, вы можете ввести следующую команду и нажать Enter:

Это покажет записи кэша DNS, если таковые имеются.

Выключить или включить кэш DNS

Чтобы отключить кэширование DNS для определенного сеанса, введите net stop dnscache и нажмите Enter.

Чтобы включить DNS-кэширование, введите net start dnscache и нажмите Enter.

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

Отключить кэш DNS

Если по какой-либо причине вы хотите отключить кэширование DNS, введите службы в начале поиска и нажмите Enter, чтобы открыть диспетчер служб. Здесь найдите службу DNS-клиента.

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

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