Лучший способ настроить DNS-кэширование?

Чтобы ускорить поиск DNS, я хочу установить кэш DNS или прокси.

Я вижу, по крайней мере, три программы, которые, я думаю, будут работать: bind9, pdnsd или dnsmasq.

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

29
задан 22 January 2011 в 16:34

6 ответов

  1. Установите bind9
  2. Укажите resolv.conf на 127.0.0.1

Для этого выполните следующие действия:

Чтобы установить Bind9

  1. Откройте «Центр программного обеспечения Ubuntu» (Приложения-> Центр программного обеспечения Ubuntu)
  2. Найдите bind9
  3. Отметьте, чтобы отобразить «Технические элементы»
  4. Отметьте bind9 и установите его

Обновить /etc/resolv.conf

  1. Откройте диспетчер сети (Система-> Настройки-> Диспетчер сети)
  2. Найдите свое соединение и отредактируйте его (проводное или беспроводное)
  3. Переключите вкладку «Конфигурация IPV4»
  4. В поле «DNS-серверы» напишите 127.0 .0.1

Готово!

Для проверки

Откройте gnome-terminal (Приложения> Стандартные> Терминал) и введите

dig ubuntu.com 

(если у вас его нет, установите пакет dnsutils, как описано в bind9)

Проверьте последние ответы, например:

Мой первый запрос на ubuntu.com

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

Мой второй d query:

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

Сервер 127.0.0.1 означает, что вы разрешаете локально. Посмотрите на время запроса (обведено **), второй кэшируется.

16
ответ дан 22 January 2011 в 16:34

«Чтобы ускорить поиск DNS, я хочу установить кэш DNS или прокси»

Хорошо. Но есть и более простой способ. Использование серверов имен OpenDNS и / или Google будет быстрее, чем ваш собственный локальный кеш для имен, которые уже существуют в кешах OpenDNS / Google. Использование 208.67.222.222, 208.67.220.220 и / или 8.8.8.8 в качестве имени будет быстрее почти всегда. Вы можете проверить это с помощью time nslookup www.google.com 208.67.222.222 для проверки скорости на одном из серверов имен OpenDNS, time nslookup www.google.com 8.8.8.8 для Google или время nslookup www.google.com 127.0.0.1 в локальном кеше. Когда я говорю «быстрее», я имею в виду технически быстрее и не настолько, чтобы человек мог легко заметить разницу.

«Я вижу по крайней мере три программы, которые, как мне кажется, справятся с этой задачей: bind9, pdnsd или dnsmasq.»

Вы открыты для dnscache-части djbdns? Инструкции ниже. Хотя он не сохраняет кеш без патча ...

sudo apt-get remove bind9 dnsmasq-base
sudo apt-get install djbdns dnscache-run
sudo killall -9 dnsmasq
sudo update-rc.d -f bind9 remove

Затем нам нужно указать системе использовать наш кеш.

sudo gedit /etc/resolv.conf

Отредактируйте файл, чтобы он выглядел как в этом примере. Этот файл определяет, какие серверы имен использовать, домен по умолчанию и суффикс поиска. Суффикс поиска позволяет выполнять запросы, используя только часть имени хоста полного доменного имени. Например, 'nslookup www' автоматически превращается в 'nslookup www.example.com', когда example.com является значением параметра «search».

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

Это немного необычно, но нам нужно получить самые последние корневые серверы имен .

sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | sudo tee /etc/dnscache/root/servers/@

Я думаю, что файл resolv.conf перезаписывается, когда мы используем DHCP. Я выбираю себе статический IP-адрес и удаляю программное обеспечение, которое его подавляет, редактируя файл интерфейсов, чтобы настроить статический IP-адрес. Но вы можете попробовать работать с Network Manager, если хотите.

sudo apt-get purge network-manager network-manager-gnome
sudo gedit /etc/network/interfaces

Мой файл интерфейсов выглядит следующим образом, но измените ваш в соответствии с вашей конфигурацией.

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Теперь давайте просто перезапустим.

sudo reboot

Теперь вы используете локальный преобразователь. и последние корневые серверы. Но вы заметите, если попробуете, что OpenDNS и Google на самом деле отвечают быстрее (для имен, которые находятся в их кешах, а это все самые популярные домены). Нет никакой дополнительной конфигурации, которая могла бы сделать программное обеспечение более безопасным, чем оно уже есть.

6
ответ дан 22 January 2011 в 16:34

Пакет dnscache-run меньше всего конфликтовал с другими пакетами, такими как libvirt, которые используют мостовую сеть и dnsmasq.

sudo apt-get install dnscache-run

Этот пакет удаляет resolvconf (/etc/resolv.conf), и вам нужно будет использовать / etc / network / interfaces или диспетчер сети для просмотра вашей конфигурации.

0
ответ дан 22 January 2011 в 16:34

Я бы порекомендовал dnsmasq,

См. Хороший учебник здесь; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

Вы можете прочитать сравнение здесь:

http: // ru. wikipedia.org/wiki/Comparison_of_DNS_server_software

9
ответ дан 22 January 2011 в 16:34

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

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

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

0
ответ дан 22 January 2011 в 16:34

Я использую " dnscache " ( пакет "dnscache-run" ) и это очень просто. Не нужно ничего настраивать.
Он перехватывает петиции DNS ( порт 53 ) и кэширует ответы, при следующем запросе Linux для этого домена dnscache немедленно возвращает IP.
Хотя есть два параметра, которые можно изменить для улучшения этой программы:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT
3
ответ дан 22 January 2011 в 16:34

Другие вопросы по тегам:

Похожие вопросы: