Я установил классический dns-сервер bind9 внутри локальной сети, работающий как DNS-сервер пересылки, есть мой файл конфигурации (я только что добавил свои DNS-серверы ISP в качестве пересылки):
параметры {
каталог "/ var / cache / bind";
экспедиторы {212.27.40.240; 212.27.40.241; };
только вперед;
dnssec-validation auto;
auth-nxdomain no; # соответствует RFC1035
слушать-на-v6 {любой; }; };
Меня интересует "Время запроса", полученное при использовании dig
я использовал dig @my_dns_ipadress www.google.com
я также добавил время, когда был отправлен запрос
06:04:47 -> ;; Время запроса: 157 мс (первый запрос после запуска привязки)
06:09:24 -> ;; Время запроса: 1 мсек.
06:29:28 -> ;; Время запроса: 106 мсек.
06:39:39 -> ;; Время запроса: 1 мсек.
07:04:21 -> ;; Время запроса: 98 мсек.
у меня вопрос, почему время третьего и пятого запроса не составляет около 1 мс? кеш, похоже, не использовался
Я также выполнил эти тесты, сбрасывая исходящие пакеты udp 53 на мой DNS-сервер isp, и обнаружил, что, когда время запроса превышает 1 или 2 мс, связывает отправленные запросы DNS на мой DNS-сервер isp.
Итак, как я могу заставить привязку использовать его кеш?
bind не может кэшировать запись дольше, чем TTL записи (время жизни). www.google.com имеет TTL 5 минут, поэтому срок действия кэшированной записи истекает через это время.
Мне удалось это сделать, используя несвязанный DNS-сервер, установив для параметра «cache-min-ttl» значение 604800 секунд (1 неделя). Кэш всегда используется в течение одной недели, время запроса составляет от 1 до 3 мс.