AAAA (IPv6) 조회 전에 A (IPv4) DNS 조회를 선호


44

새로 설치된 Ubuntu 10.10은 항상 레코드를 조회하기 전에 AAAA DNS 조회를 수행합니다. 검색을 먼저 수행하도록 시스템을 구성 할 수있는 방법이 있습니까?

(다양한 브라우저 및 기타 응용 프로그램에 자체 리졸버가 포함될 수 있지만 glibc의 브라우저에 대해 이야기하고 있습니다)


명확히하기 위해 IPv4와 IPv6을 모두 갖고 싶습니까?
belacqua

바람직합니다. 그러나 로컬 IPv6 만 연결했기 때문에 매번 google.com의 AAAA 레코드를 요구 한 다음 A 레코드를 요청하는 것은 낭비입니다.
nos

답변:


53

차세대 IP 인계를 허용하기 위해 IPv4보다 IPv6의 우선 순위를 정하는 것이 표준입니다. :)

우선 순위 블록을 편집하여이를 변경할 수 있습니다 /etc/gai.conf(gai는 getaddrinfo호스트 이름 확인을위한 표준 시스템 호출을 나타냄). 파일에 설명 된대로 행을 주석 처리하십시오.

# IPv4 연결을 선호하는 사이트의 경우 마지막 줄을

#precedence :: ffff : 0 : 0/96 100

자세한 설명 gai.conf은 매뉴얼 페이지에서 찾을 수 있습니다.


고마워, 내 하루를 구했어! 내 서버 중 하나가 dns 서버에서 ipv6 결과를 계속 얻지 만 ipv6을 사용하여 서버가 제대로 작동하지 않음
Boon

안녕하세요,이 설정에 sysctl 또는 서비스를 다시로드하거나 재부팅해야합니까? 귀하의 답변이 유용하다는 것을 알았지 만 그러한 의심을 해결하기 위해 편집 할 수 있습니다.
Marco

매뉴얼 페이지에 gai.conf따르면 IPv4 라인뿐만 아니라 모든 라인의 주석 처리 를 제거해야 올바른 수정 동작을 얻을 수 있습니다. From gai.conf(5): "다시 한 번, 구성 파일에 단일 우선 순위 행이 있으면 기본 테이블이 사용되지 않습니다." 다른 기본 테이블 라인이 계속 작동하게하려면 주석을 해제해야합니다.
Ian D. Allen

10

내 문제는 동일했습니다 .IPV4 이전에 IPV6 쿼리가 있었고 리소스를 낭비하는 곳이 있었으므로 freddyb가 게시 된대로 /etc/gai.conf 파일을 변경했지만 시나리오가 약간 다르고 서버가 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

당신이 Natted 경우에도 따라서 서버는 첫 번째 ipv4를 시도합니다!


2
/etc/gai.confUbuntu 15.04 "vivid" 의 파일은 scopev4위에서 제안한 세 줄이 이미 기본값 이라고 말합니다 . 한 줄만 precedence ::ffff:0:0/96 100변경했는데 NAT 뒤에서도 작동했습니다.
Ian D. Allen

1

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 참조)


1
resolv.conf에 대한 매뉴얼 페이지는 제안한 옵션이 "o 옵션을 정확하게 수행함을 나타냅니다.이 옵션 [...]은 glibc가 IPv6 및 IPv4 요청을 순차적으로 수행하도록합니다 (해결 과정이 약간 느려짐)". - man7.org/linux/man-pages/man5/resolver.5.html
ndemou

순차 = 첫 번째 하나, 다른 하나-병렬과 반대. 여기서 잘 작동합니다.
cweiske 2012
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.