Я запускаю экземпляры Ubuntu 14.04 на AWS EC2 в VPC. Они используют сервер имен, предоставленный нашим VPC. Каждый поиск DNS процессом отправляется на сервер имен VPC. Наши процессы выполняют много поисков, и некоторые из них заканчиваются неудачей, что приводит к блокированию процессов.
Я хочу исправить это, установив локальный кеширующий DNS-преобразователь на каждой машине.
Этот распознаватель будет прослушивать 127.0.0.1:53 , обслуживая локальные процессы.
Преобразователь будет указан в /etc/resolv.conf , т.е. у меня будет nameserver 127.0.0.1 вместо сервера имен VPC, предоставляемого динамически через DHCP.
Для этого есть множество альтернативных программ: bind9 , nscd , dnsmasq , dnscache и т.д. Но, похоже, есть много способов вручную управлять /etc/resolv.conf , например, пометить файл как доступный только для чтения или отредактировать /etc/network/interfaces или редактирование /etc/dhcp/dhclient.conf .
Что рекомендуется?
У меня есть еще одно требование: локальный распознаватель будет пересылать запросы на сервер имен VPC, наш доверенный орган для получения информации DNS. Однако программы, которые я перечислил, похоже, не ведут себя так. Вместо этого они направляют свои поиски предварительно настроенным корневым серверам имен.
Теоретически я мог бы сделать это, настроив dhclient-script , resolvconf или что-то в этом роде.
Я бы добавил перехватчик, который принимает IP-адрес сервера имен, предоставленный DHCP, вставляет его в конфигурацию моего локального DNS-преобразователя, а затем перезапускает демон локального DNS-преобразователя.
Но это довольно волосато, и я хочу избежать этого.
(Сценарии по умолчанию в Ubuntu 14.04, кажется, имеют некоторые встроенные знания nscd и dnscache и, возможно, делают то, что я хочу, но это очень неясно.)
Какой "благословенный" способ запустить распознаватель DNS с локальным кэшированием в Ubuntu 14.04? В частности, как мне перевести локальный распознаватель на сервер имен DHCP по умолчанию?
