재귀적 변환
-RECURSIVE (리쿼시브)
-일반적인 네임서버
-클라이언트에 최종 결과값을 반환
-클라이언트(Sub Resolver)로부터 도메인 네임 질의 요청이 들어올 경우 네임서버가 직접 Name space를 탐색하여 결과값을 반환
-Bind9의 경우 options 항목에 ‘recursion yes;'로 설정함(기본 값)
>예제 : kr.yahoo.com
이렇게 재귀적 변환은 컴퓨터가 리졸버에게 kr.yahoo.com을 물어보면 리졸버는 DNS서버에 물어본다.
그 DNS서버가 재귀적변환이면(Root의 네임서버는 무조건 반복적 변환이다.) 리졸버는 더 이상 찾지않고 재귀적방식인 DNS서버(이 그림에선 Root네임서버)가 찾아서 리졸버에게 전달해준다, 그럼 리졸버는 다시 컴퓨터에게 이값을 알려준다.
반복적 변환
ITERATIVE(이터레이티브)
Root 네임서버는 무조건 이터레이티브이고 TLD네임서버는 일부만 이터레이티브이다.
반복적 변환 - 자신이 직접 관리하지 않는 질의 요청이 있을 경우 질의에 응답 가능한 NS목록을 응답.
(질의에 응답가능한 NS란? 만약 컴퓨터가 질의한 것이 kr.yahoo.com.이고 자신은 com.도메인이고 자신의 하위도메인에 yahoo.com.이있을때, 컴퓨터에게 yahoo.com.을 알려준다.)
예제 > kr.yahoo.com
이렇게 반복적 변환은 컴퓨터가 리졸버에게 kr.yahoo.com을 물어본다면 리졸버는 DNS에게 kr.yahoo.com.을 IP로 바꿔달라고 요청한다(kr.yahoo.com.에 대해 질의한다).이때 리졸버가 물어본 DNS서버가 반복적 변환방식인 이터레이티브라면 재귀적 변환처럼 찾아주지않고 질의에 응답이 가능한 NS목록을 응답한다.
이 그림에선 리졸버가 처음에 .(root)DNS에 물어봤기 때문에 DNS는 자신하위에있는 TLDs중 yahoo.com.을 관리하고있는 com.DNS를 알려주게 된다. 이렇게 반복하다 보면 kr.yahoo.com.까지 도달한다.
네임서버 캐싱
질의에 대한 응답값을 임시 저장.
반복 요청 및 불필요한 요청을 제거하여 DNS메시지 트레픽을 감소시킨다.
유효기간
TTL(Time To Live)
IP헤더의 TTL필드와 무관함
DNS서버에서 질의에 대한 응답 시 $TTL 값을 동시에 전송
캐싱된 데이터는 유효한 $TTL 을 가진 값에 대해서만 응답
$TTL 기간이 지나면 자동으로 삭제됨
RTT(RoundTrip Time)네임서버 왕복 시간
원격네임서버가 응답에 걸리는 시간
동일 한 영역의 관리서버가 여러 개 일 경우 RTT값이 가장 작은 서버로 질의
네임 변환 과정