본문 바로가기
Old Posts/Linux

[Linux] NSLOOKUP 명령어 사용법

by A6K 2022. 2. 23.

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

 

댓글