DNS 동작 방식 2편

DNS 동작 방식 2편

DNS 동작 방식 1편 | Umount Blog 에서 기본적인 DNS 의 통신 방식에 대해서 확인했습니다. 이번에는 <그림1>와 같이 Windows PC 에 설정되는 1차 DNS 와 2차 DNS 서버에 통신을 할 때 어떻게 동작하는지 확인해 보겠습니다.

여기서 설정되는 1차와 2차 DNS 를 Local DNS 또는 DNS Resolver 또는 DNS Cache 등 여러가지 용어로 표현합니다. 또한 기존에 설명한 Local DNS 에서 다른 네임서버로의 통신은 어떻게 하는지 확인합니다.

Windows-DNS-설정
그림 1

테스트 환경

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 의 값을 증가 시킨다.

테스트

어떻게 동작하는지 직접 확인해 보았습니다. <그림 2>, <그림 3>과 같이 1차 DNS 에 요청을 하고 약 92~95ms 이내에 응답이 없을 경우 2차 DNS 에 요청을 합니다.

dns_95_2
그림 2
dns_95_1
그림 3

<그림 3>의 응답에 대한 RTT 를 확인해 보았습니다.

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

dns_95_1_1
그림 4
dns_95_1_2
그림 5

그러나 <그림 6>과 같이 확인 결과, 처음에는 1차 DNS 에 요청을 합니다. 지금까지의 확인 결과를 보면 RTT 에 대한 값은 안 보는 것으로 보이며, 1차에 요청 후 92~95ms 이내에 응답이 없으면 2차에 질의를 합니다.

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

dns_95
그림 6

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

그림 7

<그림 7>의 1차, 2차 DNS 설정은 다음과 같습니다.

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 에 국한된 것으로 생각해야 합니다.

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x