Предпочитать DNS-запросы A (IPv4) перед AAAA(IPv6)
Обратите внимание, что моя недавно установленная Ubuntu 10.10 всегда выполняет поиск DNS AAAA перед поиском записи A. Можно ли как-то настроить систему для поиска в первую очередь?
(Хотя различные браузеры и другие приложения могут содержать свои собственные средства распознавания, я говорю о тех, что в glibc)
3 ответа
Это стандарт расстановки приоритетов IPv6 над IPv4, чтобы позволить IP следующего поколения вступить во владение:)
Вы можете изменить это, отредактировав блоки приоритетов в /etc/gai.conf
(Гай означает getaddrinfo
стандартный системный вызов для разрешения имен хостов). Просто закомментируйте строку, как описано в файле:
# Для сайтов, которые предпочитают соединения IPv4, измените последнюю строку на
#precedence::ffff:0:0/96 100
Подробное объяснение gai.conf
можно найти в справочной странице.
Моя проблема была такой же, у меня были запросы IPV6, сделанные до IPV4, и они тратили ресурсы впустую, поэтому я изменил свой файл /etc/gai.conf, как выложил freddyb, но мой сценарий немного отличается, мой сервер Natted, поэтому IPv4 не будет иметь приоритет над IPv6 только с этой строкой. Решение также закомментирует другие строки на gai.conf, так что это будет выглядеть так
#For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
# For sites which use site-local IPv4 addresses behind NAT there is
# the problem that even if IPv4 addresses are preferred they do not
# have the same scope and are therefore not sorted first. To change
# this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112 2
scopev4 ::ffff:127.0.0.0/104 2
scopev4 ::ffff:0.0.0.0/96 14
Таким образом, ваш сервер попробует сначала ipv4, даже если вы Natted!
Если вы вообще не хотите, чтобы IPv6 был включен, вы можете отключить IPv6 для этого. http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html
если нет, вы можете попробовать добавить
options single-request
В ваш файл /etc/resolv.conf. (см. http://udrepper.livejournal.com/20948.html для подробностей)