답변:
이것은 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
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는 실제로 인터넷의 문자 그대로 전화 번호부입니다.
조회는 DNS (및 로컬 호스트 파일)에 의해 처리됩니다. 특정 이름이 IPv6 또는 IPv4 주소로 확인되는지 여부는 브라우저 설정에 따라 다릅니다 (IPv6를 지원하고 IPv6 AAAA 요청, 운영 체제 (IPv6 스택 포함 여부 등) 및 사용자의 브라우저 설정에 따라 다름) DNS 공급자 (AAAA (IPv6) 요청 지원 여부)
브라우저 문제는 일부 (이전) 브라우저는 AAAA 조회 요청을 발행하지 않으며 일부는 요청을 보내지 않도록 구성 할 수 있지만 (firefox에는 이에 대한 설정이 있음) 대부분의 최신 브라우저는 AAAA 요청을 먼저 보내고 후속 조치를 취하므로 브라우저 문제는 더욱 복잡합니다. A 요청.
C:\Windows\System32\drivers\etc
. 그러나 비어 있습니다.