본문 바로가기

코딩공부/WEB2 - Domain Name System

[7] nslookup

도메인명의 ip 주소를 알아오는 도구

- nslookup, dig(디그, 윈도우 운영체제는 지원 x)

 

도메인 네임 조회

nslookup [-type=a] 도메인명

nslookup 도메인 조회

 

상위 출력된 ip 주소는 컴퓨터에 연결되어있는 DNS 서버의 IP 주소이다.

우리가 도메인을 조회할 때 직접 조회하지 않고, DNS 서버에게 의뢰하게 된다.

 

도메인에 대한 권한을 갖고 있는 (관활하는) DNS 서버는 'authoritative name server'이다.

클라이언트가 example.com. 에 대한 ip주소를 매번 물을 때마다 DNS 서버가 각 서버들에게 요청하지 않고, 한 번 요청한 결과에 대한 정보를 cache(캐시, '저장한다')라는 데이터로 남겨둔다. 그다음에 요청이 오면 DNS 서버는 자신이 기억하고 있었던 ip주소를 응답해주는 걸 통해서 성능도 높이고 네트워크 부하도 획기적으로 줄일 수 있다.

 

이렇게 example.com에 대한 ip 주소를 cache를 통해서 응답해주게 되면, 권한이 있는 서버가 응답한 것이 아니기 때문에 'Non-authoritative answer' 이라고 나온다.

 

 

직접 example.com 이라고 하는 주소의 네임 서버가 누구인지 알아내고 싶다면?

도메인을 관할하는 네임 서버 조회

-type=ns 옵션을 사용하면 된다.

nsloookup -type=ns 도메인네임

 

 

example.com의 네임서버는 'a.iana-servers.net'이다. 네임 서버는 다운되면 안 되기 때문에 이 도메인은 네임 서버 2대를 운영해서 하나가 죽더라도 나머지가 살아남도록 'b.iana-servers.net' 도 운영 중이다.

 

 

클라이언트 컴퓨터가 연결된 DNS 서버의 캐싱 정보가 아닌, 해당 도메인 관할 네임서버에 직접 요청하려면?

도메인관할 서버에게 직접 도메인네임 조회

nslookup 시 관할네임서버를 지정하면 된다.

nslookup 도메인네임 관할네임서버

 

직접 권한이 있는 관할 네임서버에게 응답을 받았으므로 'Non-authoritative answer' 문구가 출력되지 않는다.

 

type 옵션에 여러 가지 레코드 타입 옵션을 넣어서 조회할 수 있다.

a, ipv6, mx(이메일), cname, txt...