본문 바로가기
작업/운영 팁

DNS의 원리 yahoo.com. 의 IP를 알아내는 방법을 예로 들어 설명.

by 베리베리 2008. 8. 9.

DNS의 원리 yahoo.com. 의 IP를 알아내는 방법을 예로 들어 설명.
(c)2008 가치있는 삶

COM,NET 의 최상위 관리기관인 베리사인은 매우 많은 DDOS 공격을 받고 있다고 한다.
하지만 베리사인은 돈이 많기때문에 아무리 공격을 해도 막아낼수 있다. 만약 막지못한다면? 인터넷 전체가 마비된다.
이 베리사인의 네임서버를 gtld-servers 라고 하는데
nslookup 을 사용하면 gtld-servers 목록을 알 수 있다.

> set type=ns
> com.
Server:  kns.kornet.net
Address:  168.126.63.1

Non-authoritative answer:
com     nameserver = g.gtld-servers.net
com     nameserver = i.gtld-servers.net
com     nameserver = k.gtld-servers.net
com     nameserver = j.gtld-servers.net
com     nameserver = b.gtld-servers.net
com     nameserver = l.gtld-servers.net
com     nameserver = e.gtld-servers.net
com     nameserver = a.gtld-servers.net
com     nameserver = f.gtld-servers.net
com     nameserver = h.gtld-servers.net
com     nameserver = d.gtld-servers.net
com     nameserver = c.gtld-servers.net
com     nameserver = m.gtld-servers.net

e.gtld-servers.net      internet address = 192.12.94.30
g.gtld-servers.net      internet address = 192.42.93.30
f.gtld-servers.net      internet address = 192.35.51.30
d.gtld-servers.net      internet address = 192.31.80.30
c.gtld-servers.net      internet address = 192.26.92.30
a.gtld-servers.net      internet address = 192.5.6.30
a.gtld-servers.net      AAAA IPv6 address = 2001:503:a83e::2:30
l.gtld-servers.net      internet address = 192.41.162.30
h.gtld-servers.net      internet address = 192.54.112.30
m.gtld-servers.net      internet address = 192.55.83.30
i.gtld-servers.net      internet address = 192.43.172.30
k.gtld-servers.net      internet address = 192.52.178.30
j.gtld-servers.net      internet address = 192.48.79.30
b.gtld-servers.net      internet address = 192.33.14.30
b.gtld-servers.net      AAAA IPv6 address = 2001:503:231d::2:30
>

네임서버들의 이름과 IP를 알수 있다.
만약 우리가 yahoo.com 에 접속을 하면 gtld-servers 중에서  아무곳이나 접속해서
A 레코드를 조회하게 된다.

실제로 어떻게 응답을 하는지 테스트를 해보자.
테스트로 g.gtld-servers.net 192.42.93.30 에 접속을 해서 yahoo.com. 의 A 레코드를 조회해보자..

> server 192.42.93.30
Default Server:  g.gtld-servers.net
Address:  192.42.93.30

> set type=a
> yahoo.com.
Server:  g.gtld-servers.net
Address:  192.42.93.30

Name:    yahoo.com
Served by:
- ns1.yahoo.com
          66.218.71.63
          yahoo.com
- ns2.yahoo.com
          68.142.255.16
          yahoo.com
- ns3.yahoo.com
          217.12.4.104
          yahoo.com
- ns4.yahoo.com
          68.142.196.63
          yahoo.com
- ns5.yahoo.com
          119.160.247.124
          yahoo.com


>

이렇게 하면 위와같이 도메인에 지정된 NS 목록이 응답된다.
베리사인의 네임서버는 도메인의 A 레코드 정보를 갖고 있지 않고 NS 정보(NS주소와 IP)만을 갖고 있어서
어떤 도메인을 정보를 요구하면 자기가 가진정보를 알려준다. 즉, 위에 응답받은 NS서버들이 A레코드를 갖고있으니 물어보라는 뜻이다.

이제 A 레코드를 요청하려면 위 NS 서버들을 아무데나 접속해서 물어보면 된다.
실제로 갖고있을지 없을지는 알지못한다. 어떤곳은 접속조차 안될수도 있다.
그래서 여러개가 있는 것이다.

도메인등록기관을 보면 최소2개는 넣으라고 되어있는 이유가 바로 이때문이다.

위에 ns1.yahoo.com / ns2.yahoo.com  / ns3.yahoo.com  / ns4.yahoo.com  / ns5.yahoo.com
이 네임서버들은 REGISTRY 에 등록된 네임서버이므로 REGISTRY에 등록된 모든 도메인은 이 네임서버를 가리키도록 지정될 수 있다. 물론 해당 도메인의 정보변경권한을 갖고 있는 사람만 가능하다.

이제 남은 일은 ns1.yahoo.com 에 접속해서 A레코드를 물어보면 된다.


> server ns1.yahoo.com.
Default Server:  ns1.yahoo.com
Address:  66.218.71.63

> set type=a
> yahoo.com.
Server:  ns1.yahoo.com
Address:  66.218.71.63

Name:    yahoo.com
Addresses:  206.190.60.37, 68.180.206.184

>

두개의 A 레코드가 응답되었다.
206.190.60.37, 68.180.206.184

웹브라우저는 둘 중에 아무곳이나 접속하게 된다.

댓글