FQDN이 IPv6 또는 IPv4로 해석되는지 여부는 어떻게 결정됩니까?


9

URL 표시 줄에 FQDN (정규화 된 도메인 이름)을 입력하면 브라우저가 요청 된 파일이 호스팅되는 위치를 결정하는 일부 매핑 테이블 (이 테이블이 어디에 있습니까? 서비스 공급자와 함께?)에 연결합니다.

따라서 IPv6 주소의 지원 여부는 서비스 공급자 (변환 테이블이 있다고 가정하는 사람)에 따라 다릅니다. 그게 사실입니까?

답변:


7

이것은 iptables 태그가 붙어 있기 때문에 이것이 Linux 질문이라고 가정합니다.

Linux에서는 주어진 호스트 이름에 대해 프로그램이 IPv6 주소 (AAAA) 또는 IPv4 주소 (A)를 먼저 검색하는지 여부를 결정하는 것은 glibc의 책임입니다. glibc를 사용하는 프로그램은 getaddrinfo () 함수를 사용합니다. getaddrinfo ()의 동작은 /etc/gai.conf에 구성되어 있습니다.

시스템에서 /etc/gai.conf의 모든 내용이 주석 처리됩니다. 항목 주석 해제 :

라벨 :: / 0 1

나를 위해 AAAA 우선 조회가 활성화되었으므로 IPv6 주소가 우선적으로 조회됩니다. 그래서 이것은 당신이 원하는 것일 수 있습니다.

추가 업데이트 : gai.conf의 "label"블록 전체를 0에서 7까지의 주석 처리를 제거하는 올바른 방법으로 보입니다.

label ::1/128       0
label ::/0          1
label 2002::/16     2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
label 2001:0::/32   7

4

IPv4 주소는 DNS (Domain Name System)의 A (주소) 레코드로 도메인 이름에 매핑됩니다. IPv6 주소는 AAAA 레코드를 사용하여 매핑됩니다. 이상해? IPv4 주소는 32 비트, IPv6은 128 비트입니다. 128/32 = 4이므로 AAAA / A = 4입니다. DNS에서 IPv6의 항목을 디자인 한 사람에 의한 영리한 속임수.

DNS는 인터넷 전체에서 계층적이고 분산 된 시스템입니다. 브라우저가 시스템 라이브러리를 호출하여 검색 체인을 시작합니다. 일반적으로 메모리에 저장된 로컬 캐시를 먼저 확인합니다. 그런 다음 디스크를 찾아 HOSTS 파일 (대부분의 UNIX / Linux에서는 / etc / hosts, Windows에서는 C : \ Windows \ System32 \ drivers \ etc \ HOSTS)을 찾습니다. 그런 다음 여전히 응답을 찾을 수 없으면 네트워킹 구성에 따라 할당 된 DNS 서버를 호출합니다.

DNS 서버가 캐시를 확인합니다. 훨씬 더 큽니다. 일치하는 경우 답변을 반환합니다. 응답을 찾지 못하면 ISP의 ISP가 실행하는 더 높은 수준의 DNS 서버를 요청합니다. 이 프로세스는를 통해 루트 이름 서버에 도달 할 때까지 계속 a.root-servers.net됩니다 m.root-servers.net. 대부분의 DNS 쿼리는 멀리 가기 전에 LONG으로 해결되지만 때로는 한두 가지가 만들어집니다. 그러나 답변을 찾으면 해당 체인으로 다시 브라우저로 전달됩니다.

그러나 브라우저는 어떤 레코드 유형을 요청 할지 어떻게 알 있습니까? 시스템 설정에 따라 다릅니다. IPv4 스택으로 설정하면 우선 순위가 설정되고 브라우저는 DNS 쿼리에서 A 레코드 만 요청합니다. IPv6 인 경우 먼저 AAAA 레코드를 요청한 다음 A 레코드로 다시 넘어갑니다.

다른 레코드 유형도 있습니다. MX 레코드는 도메인의 메일 서버 위치를 정의합니다. NS 레코드는 도메인의 이름 서버를 정의합니다. SRV 레코드는 특정 서비스 (예 : SSH 또는 웹)가있는 위치를 알려줍니다.

DNS는 실제로 인터넷의 문자 그대로 전화 번호부입니다.


2

조회는 DNS (및 로컬 호스트 파일)에 의해 처리됩니다. 특정 이름이 IPv6 또는 IPv4 주소로 확인되는지 여부는 브라우저 설정에 따라 다릅니다 (IPv6를 지원하고 IPv6 AAAA 요청, 운영 체제 (IPv6 스택 포함 여부 등) 및 사용자의 브라우저 설정에 따라 다름) DNS 공급자 (AAAA (IPv6) 요청 지원 여부)

브라우저 문제는 일부 (이전) 브라우저는 AAAA 조회 요청을 발행하지 않으며 일부는 요청을 보내지 않도록 구성 할 수 있지만 (firefox에는 이에 대한 설정이 있음) 대부분의 최신 브라우저는 AAAA 요청을 먼저 보내고 후속 조치를 취하므로 브라우저 문제는 더욱 복잡합니다. A 요청.


Windows Vista에서 로컬 호스트 파일을 어디에서 찾을 수 있습니까?
Lazer

좋아요, 여기에서 찾았습니다 : C:\Windows\System32\drivers\etc. 그러나 비어 있습니다.
Lazer

% SYSTEMROOT % \ system32 \ drivers \ etc를 - 일반적이 될 것 C : \ WINDOWS \ system32 \ drivers \ etc 여기서,
Helvick

2
일반적으로 비어 있습니다. 꼭 필요한 경우 항목을 추가하십시오. 실제로 IPv6 이름 확인을 DNS에 맡기려고합니다.
Helvick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.