Чтобы ускорить поиск DNS, я хочу установить кэш DNS или прокси.
Я вижу, по крайней мере, три программы, которые, я думаю, будут работать: bind9, pdnsd или dnsmasq.
Я хотел бы убедиться, что, если я установлю один из них, я не оставлю его плохо настроенным с точки зрения производительности или безопасности. Итак, что бы люди порекомендовали, и есть ли какие-либо изменения конфигурации, которые я должен немедленно внести после установки?
Для этого выполните следующие действия:
Чтобы установить Bind9
Обновить /etc/resolv.conf
Готово!
Для проверки
Откройте 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 означает, что вы разрешаете локально. Посмотрите на время запроса (обведено **), второй кэшируется.
«Чтобы ускорить поиск 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 на самом деле отвечают быстрее (для имен, которые находятся в их кешах, а это все самые популярные домены). Нет никакой дополнительной конфигурации, которая могла бы сделать программное обеспечение более безопасным, чем оно уже есть.
Пакет dnscache-run меньше всего конфликтовал с другими пакетами, такими как libvirt, которые используют мостовую сеть и dnsmasq.
sudo apt-get install dnscache-run
Этот пакет удаляет resolvconf (/etc/resolv.conf), и вам нужно будет использовать / etc / network / interfaces или диспетчер сети для просмотра вашей конфигурации.
Я бы порекомендовал dnsmasq,
См. Хороший учебник здесь; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/
Вы можете прочитать сравнение здесь:
http: // ru. wikipedia.org/wiki/Comparison_of_DNS_server_software
Какой бы инструмент вы ни использовали, убедитесь, что порт 53 не включен для входящих сообщений на вашем брандмауэре. Вы можете разрешить только хосту с исходящим доступом к кешу.
DNSMasq прост в настройке и хорошо документирован. Если вы устанавливаете его на брандмауэре, укажите интерфейсы для привязки, исключая Интернет-интерфейс.
Привязку сложнее настроить, и ее использование в качестве кэша для небольшой сети может быть излишним.Я считаю, что конфигурация по умолчанию - только кеширование. Вы можете добавить ACL, чтобы ограничить адреса, которые могут использовать ваш сервер.
Я использую " dnscache " ( пакет "dnscache-run" ) и это очень просто. Не нужно ничего настраивать.
Он перехватывает петиции DNS ( порт 53 ) и кэширует ответы, при следующем запросе Linux для этого домена dnscache немедленно возвращает IP.
Хотя есть два параметра, которые можно изменить для улучшения этой программы:
echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT