강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스마스터1급 : 네트워크 명령어 nslookup

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 네트워크 명령어 nslookup

 

 

 

nslookup은 인터넷 도메인 네임 서버에 사용자가 직접 도메인 이름을 질의할 수 있도록 해주는 프로그램이다.

 

 

 

이 프로그램을 통해 누구나 네임서버에 직접 질의하여 도메인 네임 서버가 가지고 있는 정보를 검색할 수 있는 것이다.

 

 

 

이를 통해 사용자는 도메인 네임 서버가 올바르게 설정되고 동작하고 있는지를 확인할 수 있다.

 

 

 

 

1) nslookup 모드

 

nslookup 프로그램은 사용자에게 두 가지 모드를 제공하는데, 하나는 도메인 네임 서버에 특정 도메인 이름에 대한 질의를 하고 이에 대한 결과를 받는 비대화형(non-interactive) 모드이고 다른 하나는 프로그램과 대화를 지속하면서 다양한 호스트나 도메인 네임들에 대해 질의를 하고 이에 대한 결과를 받는 대화형(interactive) 모드이다.

 

 

 

 

 

비대화형(non-interactive) 모드sulinux.co.krIP 주소가 궁금하여 nslookup을 사용하는 경우에, 다음과 같이 입력한다면 nslookup'비대화형(non-interactive) 모드'로 구동한 것이다.

 

 

 

nslookup이 시스템의 기본 도메인 네임 서버로 설정되어 있는 166.126.63.1이라는 IP 주소를 출력하고 사용자가 질의한 sulinux.co.kr 이라는 호스트의 IP 주소를 출력한 것을 볼 수 있다.

 

 

 

 

 

 

 

 

 

$ nslookup nslookup sulinux.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

Name: sulinux.co.kr

Address: 222.97.189.2

 

 

 

 

 

 

대화형(interactive) 모드

대화형(interactive) 모드는 위의 비대화형(non-interactive) 모드보다 더 자주 사용된다.

 

 

 

이유는 대화형(interactive) 모드가 도메인 네임 서버가 가지는 여러 가지 복잡한 정보들을 쉽게 찾아 볼 수 있는 강력한 기능을 제공하기 때문이다.

 

 

 

대화형(interactive) 모드에 들어가기 위해서는 쉘에서 ‘nslookup’ 만 입력하고, 이 모드에서 빠져 나오기 위해서는 ‘exit’ 혹은 CTRL+D(^D)를 입력하면 된다.

 

 

 

 

 

 

 

 

 

[root@scitech ~]# nslookup

> sulinux.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

Name: sulinux.co.kr

Address: 222.97.189.2

>

 

 

 

 

 

 

 

2) Non-authoritative answerAuthoritative answer

 

 

nslookup에 도메인 네임을 질의하면 보통 돌아오는 답에 아래와 같이 ‘Non-authoritative answer’ 라고 붙어 있을 것이다.

 

 

 

이것은 현재 사용하고 있는 네임서버에는 해당 도메인에 대한 캐시(Cache)가 저장되어 있고 현재 이 대답은 잘못된 답(Non-authoritative answer) 일 수도 있다는 말이다.

 

 

 

도메인 정보를 갱신(refresh) 하기 전에 주 서버(Primary Name Server) 가 정보를 수정할 수도 있는 일이기 때문이다.

 

 

 

 

 

 

 

 

 

$ nslookup

> sulinux.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

Name: sulinux.co.kr

Address: 222.97.189.2

>

 

 

 

 

 

이에 대해, 믿을 만한(Authoritative) 대답을 얻고 싶다면 도메인을 직접 관리하는 서버에 질의를 해야 한다.

 

 

 

서버를 변경해서 질의를 하고 싶다면 'server' 라는 명령을 사용한다.

 

 

 

 

 

 

 

 

 

$ nslookup

> server ns.suidc.com

Default server: ns.suidc.com

Address: 222.97.189.1#53

> sulinux.co.kr

Server: ns.suidc.com

Address: 222.97.189.1#53

 

Name: sulinux.co.kr

Address: 222.97.189.2

>

 

 

 

 

 

 

3) 검색하고자 하는 레코드 고르기

 

nslookup은 기본적으로 질의된 도메인 네임에 관하여 A 레코드를 검색하고, IP 주소(in-addr.arpa)에 대해서는 PTR 레코드를 검색하지만 “set type” 명령을 사용하여 A, ANY, CNAME, HINFO, MX, NS, PTR, SOA, TXT 등 검색하고 싶은 레코드를 사용자의 마음에 맞게 고를 수 있다.

 

 

 

이곳에서는 nslookup에서 레코드를 사용하는 기본적인 방법들에 대해서 다루도록 한다.

 

 

 

 

 

우선 다음과 같이 nslookup을 실행하도록 한다.

 

 

 

 

 

 

 

 

 

$ nslookup

 

 

 

 

 

yahoo.co.kr에 대한 기본 정보다음과 같이 원하는 도메인 네임이나 IP 주소를 적고 <Enter>키를 누르면 해당 도메인에 대한 기본 정보가 나온다.

 

 

 

앞서의 Server는 질의를 한 DNS 서버이고, 뒤에 answer로 나온 것이 해당 도메인에 대한 정보이다.

 

 

 

마지막에는 믿을 만한 정보를 얻기 위해 server 명령을 사용하여 질의할 네임서버를 변경하였다.

 

 

 

 

 

 

 

 

 

> yahoo.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

Name: yahoo.co.kr

Address: 106.10.165.51

Name: yahoo.co.kr

Address: 68.180.206.184

> 68.180.206.184

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

184.206.180.68.in-addr.arpa name = w2.rc.vip.sp1.yahoo.com.

 

Authoritative answers can be found from:

206.180.68.in-addr.arpa nameserver = ns3.yahoo.com.

206.180.68.in-addr.arpa nameserver = ns4.yahoo.com.

206.180.68.in-addr.arpa nameserver = ns1.yahoo.com.

206.180.68.in-addr.arpa nameserver = ns2.yahoo.com.

206.180.68.in-addr.arpa nameserver = ns5.yahoo.com.

ns1.yahoo.com internet address = 68.180.131.16

ns2.yahoo.com internet address = 68.142.255.16

ns3.yahoo.com internet address = 203.84.221.53

ns4.yahoo.com internet address = 98.138.11.157

ns5.yahoo.com internet address = 119.160.247.124

> server ns1.yahoo.com

Default server: ns1.yahoo.com

Address: 68.180.131.16#53

>

 

 

 

 

 

 

 

 

 

MX 검색 설정

 

특정 도메인의 메일서버가 어느 곳으로 지정되어 있는지 알기 위해서 MX 값을 검색한다.

 

 

 

이 값은 메일을 제대로 주고받기 위해 DNS 서버에 반드시 설정이 되어 있어야 하므로, 특정 도메인에 대한 메일서버를 알 수 있게 된다.

 

 

 

값을 설정하기 위해 set 명령을 통해 type을 설정해 주면 된다.

 

 

 

 

 

 

 

 

 

> set type=MX

> yahoo.co.kr

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

yahoo.co.kr mail exchanger = 1 mx-apac.mail.gm0.yahoodns.net.

>

 

 

 

 

 

 

 

 

NS 검색 설정

 

NS 값은 네임 서버를 검색하기 위한 값이다.

 

 

 

어떤 도메인이나 특정한 도메인 네임 서버에 등록되어 그 네임 서버를 통해 서비스되어야 하는데, 관리자는 이 값으로 도메인 정보를 검색하는 것을 통해 특정 도메인이 어느 곳에 등록되어 있는지 알 수 있게 된다.

 

 

 

 

 

 

 

 

 

> set type=NS

> yahoo.co.kr

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

yahoo.co.kr nameserver = ns4.yahoo.com.

yahoo.co.kr nameserver = ns6.yahoo.com.

yahoo.co.kr nameserver = ns3.yahoo.com.

yahoo.co.kr nameserver = ns5.yahoo.com.

yahoo.co.kr nameserver = ns2.yahoo.com.

yahoo.co.kr nameserver = ns1.yahoo.com.

>

 

 

 

 

 

 

 

 

SOA(Start Of Authority) 레코드

 

SOA(Start Of Authority) 레코드는 영역의 시작을 나타내고, 보통 영역 파일 내의 첫 번째 레코드이다.

 

 

 

SOA(Start Of Authority) 레코드는 보관하고 있는 해당 도메인에 대해 네임 서버가 인증된 자료를 갖고 있음을 의미한다.

 

 

 

 

 

 

 

 

> set type=SOA

> yahoo.co.kr

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

yahoo.co.kr

origin = hidden-master.yahoo.com

mail addr = kr-op.kr.yahoo-inc.com

serial = 2013100200

refresh = 1800

retry = 900

expire = 604800

minimum = 600

>

 

 

 

 

 

다음은 예제의 각 값들에 대한 설명이다.

 

 

 

 

 

origin : 해당 도메인을 위한 주 마스터 네임서버(Primary Name Server) 의 호스트 네임이다.

 

 

 

보통 완전한 도메인 네임으로 쓰여진다.

 

 

 

 

mail addr : 해당 도메인을 관리하는 관리자의 Email 주소이다.

 

 

 

Email 주소의 @. 으로 대체 되어 있다.

 

 

 

 

serial : 영역 파일의 버전 번호로써 간단한 숫자로 구성된 필드이다.

 

 

 

숫자의 구성은 관리자 임의로 매길 수 있으나, 영역 파일 내의 번호가 수정될 때마다 숫자는 증가해야 한다.

 

 

 

그래야 새 데이터가 다른 서버들로 전달 될 수 있다.

 

 

 

 

refresh : 주 서버(Primary Name Server) 의 영역이 업데이트 되었는지 확인하기 전에 부 서버(Secondary Name Server) 가 대기하는 시간이다.

 

 

 

초단위로 기재된 refresh 필드의 값 동안 부 서버(Secondary Name Server)는 자신이 가진 데이터가 옳다고 가정하고 질의에 대답한다.

 

 

 

refresh 필드의 값만큼 지난 후 부 서버는 영역 파일을 다시 읽어야 하는지 확인하기 위해 SOA 레코드의 시리얼 번호를 살펴본다.

 

 

 

retry : 주 서버(Primary Name Server) 가 요청에 응답하지 않을 경우 부 서버(Secondary Name Server) 가 다시 시도하기까지 기다리는 시간이다.

 

 

 

역시 초단위로 설정한다.

 

 

 

위에는 1시간 간격으로 설정되어 있다.

 

 

 

 

expire : 부 서버(Secondary Name Server) 가 영역 데이터를 보존하는 기간이다.

 

 

 

역시 초단위로 설정하고 이 시간이 지나도록 영역을 갱신(refresh) 하지 않으면 데이터를 버리도록 설정되어 있다.

 

 

 

현재 1주일로 기재되어 있으므로 retry 필드에 기록된 시간마다 행하는 갱신(refresh) 요청에 1주일 동안 응답하지 않는다면 그 데이터를 버린다는 의미이다.

 

 

 

 

minimum : 초단위로 기록된 이 필드의 값은 영역 데이터가 캐시(Cache)에 얼마나 오래 남아 있어야 할 지 명시한다.

 

 

 

 

NS(Name Server) 레코드

 

기본적으로 해당 도메인에 대한 네임 서버를 가리킨다.

 

 

 

부가적인 기능으로는 하나의 큰 도메인에 대하여 도메인 위임을 가능하게 한다.

 

 

 

chem.hanyang.ac.kr이라는 네임 서버에 하위 도메인의 관리를 맡겨서 chem.hanyang.ac.kr 아래의 www.chem.hanyang.ac.kr, hlug.chem. hanyang.ac.kr 등의 도메인의 관리하게 하면 관리상이나 네트워크 부하의 면에서 이익이 있을 것이다(물론, 지금 그렇게 하고 있다는 것은 아니다).

 

 

 

 

 

$ nslookup

> set type=NS

> sulinux.co.kr

Server: 168.126.63.1

Address: 168.126.63.1#53

 

Non-authoritative answer:

sulinux.co.kr nameserver = ns2.suidc.com.

sulinux.co.kr nameserver = ns.suidc.com.

 

Authoritative answers can be found from:

ns.suidc.com internet address = 222.97.189.1

ns2.suidc.com internet address = 210.127.209.11

>

 

 

 

 

 

 

 

A(Address) 레코드

 

리소스 레코드(RR, Resource Record) 의 대부분을 차지하고 있는 도메인 네임을 IP 주소로 변환하는데 사용된다.

 

 

 

nslookup 을 실행시켜 type 을 정하지 않은 채 질의를 하면 기본적으로 A 레코드에 대한 검색을 한다.

 

 

 

 

 

 

 

 

 

> set type=A

> yahoo.co.kr

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

Name: yahoo.co.kr

Address: 106.10.165.51

Name: yahoo.co.kr

Address: 68.180.206.184

>

 

 

 

 

 

 

 

 

PTR(Domain Name Pointer) 레코드

 

위에서 설명한 A 레코드와는 반대로 IP 주소에 대하여 해당 도메인 네임을 돌려준다.

 

 

 

역 영역(Reverse Zone) 파일에서 사용되는 레코드이다.

 

 

 

역 도메인이 없어도 제대로 실행되는 것 같지만, 여러 프로그램들에서 IP 주소를 가지고 도메인 네임을 표시한다.

 

 

 

역 도메인이 재대로 설정되어 있지 않으면 이런 프로그램들에서는 오류가 날 것이다.

 

 

 

 

 

 

 

 

 

> set type=PTR

> 106.10.165.51

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

51.165.10.106.in-addr.arpa name = w2.rc.vip.sg3.yahoo.com.

>

 

 

 

 

 

 

 

 

ANY 검색 설정

 

any는 특정 도메인 네임에 대한 모든 사용 가능한 리소스 레코드들을 검색하기 위해 사용되는 값이다.

 

 

 

이것은 앞서 보았던 MX 값과 NS에 대한 값도 함께 볼 수 있다.

 

 

 

도메인과 관련하여 어떤 것이 문제가 있는 지 쉽게 인식이 되지 않을 때 이렇게 전체값을 보는 것도 하나의 문제 해결의 방법이 될 수 있다.

 

 

 

 

 

 

 

 

 

> set type=ANY

> yahoo.co.kr

Server: ns1.yahoo.com

Address: 68.180.131.16#53

 

Name: yahoo.co.kr

Address: 106.10.165.51

Name: yahoo.co.kr

Address: 68.180.206.184

yahoo.co.kr mail exchanger = 1 mx-apac.mail.gm0.yahoodns.net.

yahoo.co.kr text = "Yahoo! Inc."

yahoo.co.kr nameserver = ns4.yahoo.com.

yahoo.co.kr nameserver = ns6.yahoo.com.

yahoo.co.kr nameserver = ns3.yahoo.com.

yahoo.co.kr nameserver = ns1.yahoo.com.

yahoo.co.kr nameserver = ns5.yahoo.com.

yahoo.co.kr nameserver = ns2.yahoo.com.

yahoo.co.kr

origin = hidden-master.yahoo.com

mail addr = kr-op.kr.yahoo-inc.com

serial = 2013100200

refresh = 1800

retry = 900

expire = 604800

minimum = 600

>

 

 

 

 

 

 

 

 

이외의 레코드

 

nslookup에서 사용할 수 있는 레코드 값에는 이외에도 CNAME, HINFO, WKS, TXT 등이 있다.

 

 

 

다음에 간단히 살펴보자.

 

CNAME(Canonical Name) 레코드도메인의 별칭에 대해 원래의 명칭을 보여준다.

 

 

 

 

HINFO(Host Information) 레코드특정 호스트에 의해 사용되는 하드웨어와 운영체제의 간단한 설명을 제공한다.

 

 

 

 

WKS(Well-Known Services) 레코드특정 호스트에 의해 제공되는 네트워크 서비스들의 정보이다.

 

 

 

 

TXT(Text) 레코드특정 호스트에 의해 제공되는 텍스트에 의한 자유 형식의 정보를 제공한다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  124 명