У меня проблемы с одним из моих серверов, которым требуется много времени для поиска имен хостов. Это коробка Ubuntu 12.04, поэтому я пробовал следовать новой resolvconf
директивы.
В моем /etc/network/interfaces
файла, я определил свои серверы имен следующим образом:
auto eth0
iface eth0 inet static
address someaddress
netmask 255.255.255.0
gateway 198.58.103.1
dns-nameservers 74.14.179.5 72.14.188.5
В моем /etc/resolv.conf
, Я вижу эти серверы имен, например:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 74.14.179.5
nameserver 72.14.188.5
В другом ящике я редактировал resolv.conf
непосредственно в соответствии с указаниями файлов помощи по установке моих хостов. Выглядит это так:
domain members.linode.com
search members.linode.com
nameserver 72.14.179.5
nameserver 72.14.188.5
options rotate
Это второе окно не имеет проблем с поиском имени хоста и отвечает довольно быстро.
Не мог domain
и search
директивы замедляют мой поиск? Под медленным я подразумеваю, что определение IP-адреса хоста занимает от 5 до 15 секунд.
Если я сделаю time dig @72.14.179.5 www.google.com
Я получаю ответ быстро с "реальным" временем 0,170 секунды.
Если я сделаю ping google.com
Я получаю реальное время 10.078 секунд, даже если я выхожу из пинга после одного ответа. Как это:
time ping google.com
PING google.com (74.125.228.37) 56(84) bytes of data.
^C64 bytes from iad23s06-in-f5.1e100.net (74.125.228.37): icmp_req=1 ttl=54 time=34.2 ms
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.291/34.291/34.291/0.000 ms
real 0m10.078s
user 0m0.001s
sys 0m0.005s
Добавить dns-search
и dns-domain
директивы к вашему /etc/network/interfaces
файл.
У вас загружен модуль ядра ipv6?
Если у вас есть, ваша система сначала будет искать запись AAAA, и если она вернет запись, она предпочтет использовать ее, а не запись A, и проблема в том, что служба, запросившая поиск, попытается подключиться с помощью AAAA ответ, который может не поддерживаться для используемого стека IP.
Отключите модуль ядра ipv6, и эта проблема исчезнет.
Хотя, возможно, и не так. Вы всегда можете установить dnsmasq локально, чтобы ваши серверы имен в /etc/resolv.conf были настроены на поиск по локальному хосту, а dnsmasq будет искать серверы имен восходящего потока и кэшировать результат, поэтому первый будет медленным, но все последующие одни будут молниеносными.
Мне не удалось заставить работать директиву dns-domain. Я также хотел добавить в конце «поворот опций». Я за то, чтобы этот файл генерировался динамически, но должна быть поддержка всего из файла интерфейсов. Я снова сделал resolv.conf файлом вместо символической ссылки.
У меня была такая же проблема 12.04, я решил ее, сделав это
Отредактируйте соединения в апплете сетевого менеджера -> Авто Ethernet (или беспроводной) -> вкладка IPV4 -> выберите метод "Только автоматические (DHCP) адреса"
Введите DNS-сервер - 8.8.8.8
Введите поисковые домены - google-public-dns-a.google.com (вы получите это хостом при поиске в 8.8.8.8) и сохраните
Вот и все, больше никаких "разрешений хоста"
Если у вас нет ipv6, возможно, вы также можете игнорировать его на вкладке Ipv6, но я не заметил каких-либо значительных изменений при этом.