재귀 이름 서버를 로컬에서 호스팅하므로 이름 확인을 위해 서비스 공급자나 다른 공용 DNS 서버가 필요하지 않습니다. 루트 이름 서버 IP 주소가 구성 파일(바인드 파일)에 하드코딩되어 있지만 의 루트 이름 서버에 대해 /etc/bind/db.root
여러 개의 연속 명령을 실행하면 TTL 필드가 여전히 감소합니다.nslookup
.
구성 파일에 하드코딩되면 TTL이 감소하는 이유는 무엇입니까?
그리고 하드코딩할 때 루트 수준의 TTL이 애초에 필요한 이유는 무엇입니까?
답변1
일반적으로 아래 코드 조각과 유사하게 DNS 루트 서버를 명시적으로 구성합니다.
zone "." {
type hint;
file "/etc/bind/db.root";
};
구역 유형이 일반적이지도 master
않고 slave
단지특수 구역 유형~라고 불리는hint
.
이름 서버가 시작되면 루트 힌트만 사용하여 응답하는 루트 이름 서버를 찾은 다음 거기에서 현재 루트 이름 서버 목록을 가져옵니다. 이는 운영 중에 실제로 사용되는 루트 서버입니다.
캐시되기 때문에 TTL이 필요하며 관찰한 대로 TTL은 캐시된 다른 DNS 레코드와 마찬가지로 감소합니다.
클래스 IN에 대해 힌트 영역이 지정되지 않은 경우 서버는 컴파일된 기본 루트 서버 힌트 세트를 사용합니다. 출처: 바인드관리자 참조 매뉴얼.
Brian이 답변에서 설명했듯이 루트 영역은 변경되며, 하나 이상의 이름 서버가 유효한 상태로 유지되는 한 힌트 영역은 기존의 모든 이름 서버가 정적 구성 파일을 업데이트하지 않고도 루트 이름 서버에서 이러한 변경을 허용합니다.
답변2
영구적으로 하드 코딩되지 않습니다. 루트 영역 파일은 시간이 지남에 따라 변경되므로 확인자에게 전달된 항목이 영원히 지속되도록 설정할 수 없습니다.
예를 들어 파일 시작 부분에 표시된 것처럼 현재 파일은 2014년에 마지막으로 업데이트되었습니다.여기:
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: November 05, 2014
; related version of root zone: 2014110501
;
; formerly NS.INTERNIC.NET
;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
답변3
db.root는 실제 현재 루트 서버를 찾기 위한 DNS 서버 시작 프로세스의 일부로만 사용됩니다. 그런 다음 TTL에 따라 업데이트됩니다.