예를 들어 내 문제를 설명하겠습니다. 두 대의 서버가 있고 둘 다 Debian 7.8을 실행하고 A
있으며 B
둘 다 인터넷에 듀얼 스택으로 연결되어 있고(이게 중요한지는 모르겠지만 IPv6 주소 수가 동일합니다) 둘 다 동일한 버전을 가지고 있습니다. whois가 설치되었습니다(구성 파일 없음).
이제 서버에서 whois google.fr에 액세스하면(연결 중인 IP가 표시되기 때문에 whois.nic.fr을 선택했습니다) A
다음 응답 헤더를 얻습니다.
%%
%% This is the AFNIC Whois server.
%%
%% complete date format : DD/MM/YYYY
%% short date format : DD/MM
%% version : FRNIC-2.5
%%
%% Rights restricted by copyright.
%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
%%
%% Use '-h' option to obtain more information about this service.
%%
%% [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx REQUEST] >> -V Md5.1 google.fr
%%
%% RL Net [##########] - RL IP [#########.]
%%
보시다시피 whois는 IPv6 주소를 사용하여 whois.nic.fr에 연결합니다.
그러나 서버에서 동일한 작업을 수행하면 B
다음과 같은 응답 헤더가 표시됩니다.
%%
%% This is the AFNIC Whois server.
%%
%% complete date format : DD/MM/YYYY
%% short date format : DD/MM
%% version : FRNIC-2.5
%%
%% Rights restricted by copyright.
%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
%%
%% Use '-h' option to obtain more information about this service.
%%
%% [xx.x.xxx.xxx REQUEST] >> -V Md5.1 google.fr
%%
%% RL Net [##########] - RL IP [#########.]
%%
지금 볼 수 있듯이 whois는 서버에서 IPv4를 사용합니다 B
.
B
whois 서버에 연결할 때 서버가 IPv6를 사용하지 않는 이유는 무엇입니까 ? 둘 다 확실히 IPv6에 연결되어 있지만 그 중 하나는 IPv6를 사용하기로 선택하고 다른 하나는 그렇지 않습니다. 운영 체제가 연결 유형에 우선순위를 두는 이유가 있나요?
답변1
에 있는 getaddrinfo의 구성에 관한 것으로 밝혀졌습니다 /etc/gai.conf
.
이 문제를 해결하는 방법에 대한 추가 정보:https://askubuntu.com/questions/32298/prefer-a-ipv4-dns-lookups-before-aaaaipv6-lookups
답변2
연결을 설정하는 것은 운영 체제가 아니라 응용 프로그램입니다. n개의 IPv6 주소에 연결하려는 경우 whois
운영 체제는 애플리케이션이 소스 주소를 명시적으로 바인딩하지 않는 한 연결에 사용할 (IPv6) 소스 주소를 결정합니다. IPv4 주소에 연결할 때 IPv4 주소가 소스로 사용됩니다. IPv6 소스 주소를 사용하여 IPv4 대상 주소에 연결할 수 없으며 그 반대의 경우도 마찬가지입니다.
이제 문제는 whois
한 서버에서는 IPv6 주소에 연결 whois.nic.fr
하고 다른 서버에서는 IPv4 주소에 연결하도록 선택하는 이유입니다. 차이점을 확인하려면 두 서버를 모두 실행 해야 합니다 strace
. 아마도 후속 A 조회가 성공하는 동안 한 서버에서 AAAA 주소 시간 초과를 해결해야 할 수도 있습니다.