1. 들어가기

1.1. DNS가 어떻게 작동하는가?

어떻게 내 컴퓨터가 예를 들어 network-surveys.cr.yp.to의 IP 주소를 찾아내는가?

이 IP를 찾기위해 당신의 컴퓨터는 인터넷상의 일련의 DNS 서버들과 통신하게 되는데, 예를 들어 중앙 root 서버중 하나인 192.5.5.241는 다음과 같은 정보를 가지고 있다.

.:192.5.5.241
&to:198.6.1.82

두번째 줄이 의미하는 것은 delegation (위임)이다. 즉, ``.to 에 관한 것은 198.6.1.82에 물어보세요''라는 뜻이다. 198.6.1.82 주소를 가지는 DNS 서버는 다음과 같은 정보를 가지고 있다.

.to:198.6.1.82
&yp.to:131.193.178.181

역시 두번째 줄에서 .yp.to 에 관한것은 131.193.178.181 주소가 가지고 있다는 것을 알수 있다. 131.193.178.181 주소의 DNS 서버는 다음과 같은 정보를 가진다.

.yp.to:131.193.178.181
=network-surveys.cr.yp.to:131.193.178.100

두번째 줄에서 network-surveys.cr.yp.to의 IP 주소를 얻었다.

당신의 컴퓨터는 파일로 저장되어 있는 루트 서버의 주소를 시작으로 위의 예와 같이 차례대로 서버들에 접속한 끝에 ip 주소를 가져오게 된다. 당신은 이런 과정이 반복되는 것을 피하기 위해 DNS cache를 운영할수 있다.

하드웨어적 문제나 네트워크의 문제가 야기될 경우를 대비해서 여러개의 root서버와 .to 서버가 존재한다. 각 루트 서버는 다음과 같은 정보를 가지고 있다.

.:198.41.0.4:a
.:128.9.0.107:b
.:192.33.4.12:c
.:128.8.10.90:d
.:192.203.230.10:e
.:192.5.5.241:f
.:192.112.36.4:g
.:128.63.2.53:h
.:192.36.148.17:i
.:198.41.0.10:j
.:193.0.14.129:k
.:198.32.64.12:l
.:202.12.27.33:m
&to:128.250.1.21:a
&to:193.0.0.193:b
&to:196.7.0.139:c
&to:206.184.59.10:d
&to:198.6.1.82:e
&to:206.86.247.253:f
&to:148.59.19.11:g

.to 서버는 다음과 같은 정보를 가진다.

.to:128.250.1.21:a
.to:193.0.0.193:b
.to:196.7.0.139:c
.to:206.184.59.10:d
.to:198.6.1.82:e
.to:206.86.247.253:f
.to:148.59.19.11:g
&yp.to:131.193.178.181:a
# or, in BIND master zone-file format:
# yp.to IN NS a.ns.yp.to
# a.ns.yp.to IN A 131.193.178.181

루트 서버는 무작위로 선택되며 이 서버로 부터 다시 무작위로 .to 서버로 이동하게 된다.

1.2. 리버스(reverse) DNS는 어떻게 작동하는가?

어떻게 IP 주소 208.33.217.122로 부터 호스트 이름을 찾을까?

당신의 컴퓨터는 일련의 DNS 서버에게 122.217.33.208.in-addr.arpa에 대해 질의를 하게 된다. 루트 서버는 다음과 같은 정보를 가지고 있다.

&33.208.in-addr.arpa:206.228.179.10:c
&33.208.in-addr.arpa:144.228.254.10:b
&33.208.in-addr.arpa:144.228.255.10:a

144.228.254.10 DNS 서버는 다음 정보를 가지고 있다.

.33.208.in-addr.arpa:144.228.255.10:a
.33.208.in-addr.arpa:206.228.179.10:c
.33.208.in-addr.arpa:144.228.254.10:b
&217.33.208.in-addr.arpa:209.191.164.20:a
&217.33.208.in-addr.arpa:206.253.194.65:b

209.191.164.20 DNS 서버는 다음 정보를 가지고 있다.

.217.33.208.in-addr.arpa:209.191.164.20:a
.217.33.208.in-addr.arpa:206.253.194.65:b
=mm-outgoing.amazon.com:208.33.217.122