Menu Close

DNS 동작 방식 2

DNS 동작 방식 2

 

기존에 기본적인 DNS의 통신 방식에 대해서 확인했습니다.

Web page 에 접속하기 위한 동작 과정 ( DNS )

 

Windows DNS 설정
<그림 1>

 

이번에 확인 할 것은 <그림1>와 같이 Windows PC에 설정되는 1차 DNS와 2차 DNS 서버에 통신을 할 때 어떻게 동작하는지 확인합니다.

여기서 설정되는 1차 DNS와 2차 DNS를 Local DNS, DNS Resolver, DNS cache 등 여러가지 용어로 표현합니다.

또한 기존에 설명한 Local DNS에서 다른 네임서버로의 통신은 어떻게 하는지 확인합니다.

 

테스트 환경은 다음과 같습니다.

PC : windows 10
Local DNS : Bind 9.9.2
PC 1차 DNS : 8.8.8.8
PC 2차 DNS : 8.8.4.4

 

처음으로 확인할 것은 PC에서의 동작 방식입니다.

사람들이 알고 있는 방식은 다음과 같습니다.

  1. 무조건 1차 DNS에 요청을 하고 1차 실패 시 2차에 요청한다.
  2. 동시에 1차, 2차에 요청을 하고 RTT를 확인 후 그 다음 부터는 RTT 가 가장 작은 DNS에 요청 한다.
  3. 동시에 1차, 2차에 요청을 하고 RTT를 기록 후, RTT가 작은 값에 요청을 하며 요청할 때마다 RTT의 값을 증가시킨다.

 

dns_95_2
<그림 2>

 

dns_95_1
<그림 3>

 

확인 결과 <그림 2,3>과 같이 1차 DNS에 요청을 하고 약 92~95ms 이내에 응답이 없을 경우 2차 DNS에 요청을 합니다.

 

<그림 3>의 응답에 대한 RTT를 확인한 결과 <그림 4,5>와 같습니다.

dns_95_1_1 dns_95_1_2
<그림 4> <그림 5>

DNS 요청시 RTT를 확인해서 최소의 네임서버로 요청을 하게 된다면, <그림 5>의 RTT값이 <그림 4>의 RTT보다 작으므로 다음 요청은 8.8.4.4로 요청이 가야 합니다.

 

dns_95
<그림 6>

그러나 <그림 6>과 같이 확인결과 처음에는 1차 DNS에 요청을 합니다.

지금까지의 확인 결과 RTT에 대한 값은 안 보는 것으로 보이며, 1차에 요청 후 92~95ms이내에 응답이 없으면 2차에 질의를 합니다.

그럼 1차에 요청 후 무조건 92~95ms이내에 응답이 없으면 2차에 질의를 한다라고 말하면 맞을까요? 틀릴까요?

다음 <그림7>을 보면 92~95ms 이 아니어도 2차에 질의하는 경우를 볼 수가 있습니다.

dns_25_30
<그림 7>

<그림 7>의 설정은 다음과 같습니다.

1차 DNS : 8.8.8.8
2차 DNS : 210.220.163.82

<그림 7>을 마크한 패킷들을 보면 1차 요청 후 약 25~30ms 이내에 응답이 없을 시에 2차에 요청하는 것을 볼 수가 있습니다.

위의 상황은 210.220.163.82을 1차 DNS로 사용 중에 1차 DNS를 8.8.8.8로 변경하고 2차 DNS로 변경 후에 패킷 정보를 확인 한 결과 입니다.

Windows에 DNS 질의에 대한 정확한 문서를 파악하지 못했지만 테스트 결과 유추할 수 있는 동작 방식은 다음과 같습니다.

기본적으로는 1차 DNS로 요청 후 약  92~95ms이내에 응답이 없을 시에 2차에 요청을 한다. 다만 상황에 따라 1차DNS 요청 후 약 25~30ms 이내에 2차 요청을 보낼 때도 있습니다.

Windows의 경우 OS별로 동작 방식이 다르다고 합니다. 이 테스트 결과는 Windows 10에 국한된 것으로 생각해야 합니다.

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.