Nslookup DNS 확인 - Nslookup DNS hwag-in

가끔 필요로 인해 내가 개발하고 있는 사이트의 도메인 IP주소를 알아야 할 경우가 있습니다. 이럴때는 윈도우 cmd창에서 nslookup 명령어를 활용하여 도메인의 정보를 조회하시면 됩니다. nslookup명령어는 DNS 서버에 도메인이나 ip주소를 질의해서 DNS 서버에 있는 정보를 응답받는 명령어 입니다. 

nslookup 명령어를 활용하여 도메인 IP 주소 확인하기

Nslookup DNS 확인 - Nslookup DNS hwag-in

명령 프롬프트(CMD)창을 켠 후 nslookup [도메인 명]으로 입력하면 설정된 DNS 서버에 질의하여 해당 도메인의 IP주소를 조회합니다. 서버의 숫자에 따라 응답되는 ip주소는 여러개일 수 있습니다.

nslookup 명령어 옵션 및 사용법

Nslookup DNS 확인 - Nslookup DNS hwag-in

cmd창에  nslookup ?  이렇게 명령어 + 물음표를 입력하면 nslookup 도움말을 확인하실 수 있습니다. nslookup의 다양한 옵션들을 활용하여 여러가지 정보들을 조회하실 수 있습니다.

도메인 정보 모든 값 조회

Nslookup DNS 확인 - Nslookup DNS hwag-in

nslookup의 type 설정을 any로 설정하면 도메인에서 조회할 수 있는 모든 값을 조회할 수 있습니다.

메일 서버 조회

Nslookup DNS 확인 - Nslookup DNS hwag-in

nslookup의 type 설정을 mx로 설정하면 도메인 메일 서버의 정보를 조회할 수 있습니다.

네임 서버 조회

Nslookup DNS 확인 - Nslookup DNS hwag-in

nslookup의 type 설정을 ns로 설정하면 도메인 네임 서버의 정보를 조회할 수 있습니다.

nslookup 명령은 DNS 서버에 질의해서 도메인의 정보를 조회하는 명령어다. (최신 리눅스에서는 host 명령을 사용하길 권장하고 있다)

nslookup
nslookup [도메인]
nslookup [IP주소]
nslookup [도메인] [DNS주소]

1. nslookup 명령어 설치

nslookup 명령어가 없다면 설치해야한다.

$ sudo yum install bind-utils

CentOS는 bind-utils

$ sudo apt-get install dnsutils

Ubuntu는 dnsutils를 설치하면 된다.

2. nslookup 명령어 사용법

2-1. 도메인의 IP주소 알아오기

가장 간단한 사용방법은 nslookup 명령어의 인자로 도메인 이름이나 IP 주소를 입력하는 것이다.

[root@myhost ~]# nslookup google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.220.142
Name:   google.com
Address: 2404:6800:4004:813::200e

google.com이라는 도메인이 매핑되어 있는 ip 주소를 조회해본 결과다. 8.8.8.8 주소에 있는 DNS (google dns) 서버에서 정보를 가져 왔고, google.com이라는 도메인 주소는 216.58.220.142라는 IP 주소에 매핑되어 있음을 알 수 있다.

웹 브라우저를 열고 여기서 얻어진 IP 주소를 입력하면 google.com으로 접속되는 것을 확인할 수 있다.

2-2. 특정 DNS에서 조회

도메인 이름과 IP주소를 매핑하는 DNS는 여러군데 존재할 수 있다. 따라서 특정 DNS 서버에서 도메인 주소를 얻어오고 싶은 경우가 있다.

앞서 조회한 정보는 8.8.8.8이라는 주소에 있는 DNS 서버에서 정보를 조회했었다. 다른 DNS 서버에서 google.com 도메인에 대한 정보를 조회해보자.

[root@myhost ~]# nslookup google.com 168.126.63.1
Server:         168.126.63.1
Address:        168.126.63.1#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.220.142
Name:   google.com
Address: 2404:6800:4004:826::200e

거의 비슷하다.

2-3. Reverse DNS lookup

반대로 특정 IP주소가 어떤 도메인에 매핑되어 있는지 확인할 수도 있다. 이를 Reverse DNS lookup이라고 한다.

[root@myhost ~]# nslookup  216.58.220.142
142.220.58.216.in-addr.arpa     name = nrt20s17-in-f14.1e100.net.
142.220.58.216.in-addr.arpa     name = syd09s01-in-f142.1e100.net.

Authoritative answers can be found from:
220.58.216.in-addr.arpa nameserver = ns3.google.com.
220.58.216.in-addr.arpa nameserver = ns1.google.com.
220.58.216.in-addr.arpa nameserver = ns2.google.com.
220.58.216.in-addr.arpa nameserver = ns4.google.com.
ns1.google.com  internet address = 216.239.32.10
ns2.google.com  internet address = 216.239.34.10
ns3.google.com  internet address = 216.239.36.10
ns4.google.com  internet address = 216.239.38.10
ns1.google.com  has AAAA address 2001:4860:4802:32::a
ns2.google.com  has AAAA address 2001:4860:4802:34::a
ns3.google.com  has AAAA address 2001:4860:4802:36::a
ns4.google.com  has AAAA address 2001:4860:4802:38::a

nslookup 명령어에 ip주소를 인자로 주면 인자로 넘긴 ip 주소와 매핑되어 있는 도메인 정보를 확인할 수 있다. 마찬가지로 DNS 서버 주소를 추가 인자로 넘기면 특정 DNS 서버에서 정보를 조회할 수 있다.

2-4. 레코드 타입 지정

레코드 타입을 지정해서 정보를 조회하는 것도 가능하다. '-type=[TYPE]' 옵션을 사용하면 된다. 예를 들어 google.com 도메인의 MX 타입 레코드를 조회하려면 다음 명령을 실행하면 된다.

[root@myhost ~]# nslookup -type=mx google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com      mail exchanger = 40 alt3.aspmx.l.google.com.
google.com      mail exchanger = 20 alt1.aspmx.l.google.com.
google.com      mail exchanger = 50 alt4.aspmx.l.google.com.
google.com      mail exchanger = 30 alt2.aspmx.l.google.com.
google.com      mail exchanger = 10 aspmx.l.google.com.

사용 가능한 DNS 타입 정보는 위키를 참고하자. (https://en.wikipedia.org/wiki/List_of_DNS_record_types)

대충 다음과 같은 타입을 쓸 수 있다.

  • NS : Name Server
  • MX : Mail Exchanger(메일 서버)
  • A : Address, 각 호스트에 대하 IP 주소
  • CNAME : Canonical Name, 기존 호스트의 별칭
  • MINFO : 메일박스와 메일 리스트 정보
  • PTR : IP 주소에 대한 호스트명
  • TXT : 임의의 텍스트를 포함할 수 있는 레코드
  • UINFO : 사용자 정보
  • ANY : 호스트에 관련된 모든 레코드 정보

2-5. 인터렉티브 모드(Interactive Mode)

nslookup 명령어에 인자를 주지 않으면 인터렉티브 모드로 실행된다. 한번의 실행으로 끝나는게 아니라 사용자가 입력한 내용을 바탕으로 대화형으로 주고 받으면서 정보를 출력한다.

[root@myhost ~]# nslookup
> 
> google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.220.142
Name:   google.com
Address: 2404:6800:4004:813::200e

입력창에 도메인을 입력하면 그 도메인에 대한 정보가 출력된다.

조회하려는 DNS 서버 주소를 변경하려면 server 뒤에 주소를 입력하면 된다.

> server  168.126.63.1
Default server: 168.126.63.1
Address: 168.126.63.1#53
> naver.com
Server:         168.126.63.1
Address:        168.126.63.1#53

Non-authoritative answer:
Name:   naver.com
Address: 223.130.195.200
Name:   naver.com
Address: 223.130.200.104
Name:   naver.com
Address: 223.130.195.95
Name:   naver.com
Address: 223.130.200.107

조회하려는 레코드 타입을 입력하려면 set type=[TYPE] 을 입력하면 된다.

> google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com      mail exchanger = 20 alt1.aspmx.l.google.com.
google.com      mail exchanger = 30 alt2.aspmx.l.google.com.
google.com      mail exchanger = 10 aspmx.l.google.com.
google.com      mail exchanger = 40 alt3.aspmx.l.google.com.
google.com      mail exchanger = 50 alt4.aspmx.l.google.com.

이런 식으로 사용하면 된다.


관련글

리눅스 명령어 사용법들

리눅스 명령어 사용법 ifconfig 네트워크 인터페이스 설정관련 ls 디렉토리 엔트리 정보 출력

hbase.tistory.com

Nslookup DNS 확인 - Nslookup DNS hwag-in