nslookup 명령어 사용법: DNS 레코드 조회 방법 총정리
네트워크 문제를 진단하거나 특정 도메인의 정보를 확인할 때, DNS(Domain Name System) 레코드 조회는 필수적인 과정입니다. 이때 가장 유용하게 사용될 수 있는 도구가 바로 nslookup
입니다. nslookup
은 대부분의 운영체제에 기본적으로 포함되어 있는 커맨드 라인 유틸리티로, DNS 서버에 질의하여 원하는 정보를 손쉽게 얻을 수 있도록 도와줍니다. 이번 글에서는 nslookup
명령어의 기본적인 사용법부터 다양한 레코드 타입 조회까지 자세히 알아보겠습니다.
nslookup 명령어 기본 형식
nslookup
은 대화형(interactive) 모드와 비대화형(non-interactive) 모드로 실행할 수 있습니다.
1. 대화형 모드:
터미널에서 nslookup
만 입력하면 프롬프트(>
)가 나타나며, 여기서 다양한 명령을 입력하여 DNS 정보를 조회할 수 있습니다.
$ nslookup
> server [DNS_서버_IP] # 특정 DNS 서버를 지정 (미지정 시 시스템 기본 DNS 사용)
> set type=[레코드_타입] # 조회할 DNS 레코드 타입을 지정 (예: A, MX, NS 등)
> [조회할_도메인_이름] # 정보를 알고 싶은 도메인 입력
예를 들어, google.com
의 A 레코드를 KT DNS 서버(168.126.63.1)를 통해 조회하고 싶다면 다음과 같이 입력합니다.
nslookup
server 168.126.63.1
set type=A
google.com
2. 비대화형 모드:
간단한 조회를 위해 한 줄로 명령을 실행할 수도 있습니다.
$ nslookup [옵션] [조회할_도메인_이름] [DNS_서버_IP]
예: nslookup -type=A google.com 168.126.63.1
주요 DNS 레코드(RR) 타입과 nslookup 활용
DNS에는 다양한 종류의 리소스 레코드(Resource Record, RR)가 있으며, 각 레코드는 도메인에 대한 특정 정보를 담고 있습니다. nslookup
으로 조회할 수 있는 주요 레코드 타입은 다음과 같습니다.
- A (Address): 도메인 이름에 해당하는 IPv4 주소를 알고 싶을 때 사용합니다.
- PTR (Pointer): 특정 IP 주소에 연결된 도메인 이름을 알고 싶을 때 사용합니다 (역방향 조회).
- CNAME (Canonical Name): 도메인의 별칭(alias)을 알고 싶을 때 사용합니다. 특정 도메인이 다른 정식 도메인 이름을 가리키고 있는지 확인합니다.
- MX (Mail Exchange): 해당 도메인의 이메일을 처리하는 메일 서버(SMTP 서버)와 그 우선순위를 알고 싶을 때 사용합니다.
- NS (Name Server): 해당 도메인을 관리하는 네임서버가 무엇인지 알고 싶을 때 사용합니다.
- SOA (Start of Authority): 해당 도메인 영역(zone)에 대한 권한 있는 주요 정보(마스터 네임서버, 관리자 이메일, 업데이트 주기 등)를 알고 싶을 때 사용합니다.
- TXT (Text): 도메인에 대한 추가적인 텍스트 정보를 담고 있으며, 주로 SPF(Sender Policy Framework), DKIM(DomainKeys Identified Mail) 등 이메일 인증이나 사이트 소유권 확인 등에 사용됩니다.
이제 각 레코드 타입을 nslookup
으로 어떻게 조회하는지 살펴보겠습니다.
1. A 레코드: 도메인의 IP 주소 확인 (정방향 쿼리)
도메인 이름(www.google.com
, www.naver.com
)의 IP 주소를 확인합니다.
nslookup
set type=A
www.google.com
위 명령을 실행하면 www.google.com
에 할당된 하나 이상의 IP 주소 목록이 나타납니다.
2. PTR 레코드: IP 주소로 도메인 이름 확인 (역방향 쿼리)
IP 주소(8.8.8.8
)에 어떤 도메인 이름이 매핑되어 있는지 확인합니다.
흥미로운 점은, PTR 레코드를 조회할 때 IP 주소는 역순으로 배열되고 .in-addr.arpa
라는 특수 도메인이 뒤에 붙여져 질의된다는 것입니다. 예를 들어 8.8.8.8
은 8.8.8.8.in-addr.arpa
로 질의됩니다.
nslookup
set type=PTR
8.8.8.8
주의: 모든 IP 주소에 PTR 레코드가 설정되어 있는 것은 아닙니다. PTR 레코드 설정은 해당 IP 주소를 소유한 기관의 권한이며, 설정되어 있지 않거나 외부 조회를 허용하지 않으면 정보를 얻지 못할 수도 있습니다.
3. CNAME 레코드: 도메인 별칭(Alias) 확인
mail.example.com
이 실제로는 ghs.googlehosted.com
과 같은 다른 정식 이름을 가리키고 있는지 확인할 수 있습니다. CNAME은 하나의 도메인 이름을 다른 도메인 이름으로 연결해주는 역할을 합니다.
nslookup
set type=CNAME
www.tistory.com
4. MX 레코드: 메일 서버 정보 확인
example.com
으로 이메일을 보낼 때, 어떤 메일 서버가 실제로 메일을 수신하는지 확인합니다. 결과에는 우선순위(preference) 값과 메일 서버의 호스트 이름이 표시됩니다. 숫자가 낮을수록 우선순위가 높습니다.
nslookup
set type=MX
naver.com
메일은 우선순위가 가장 높은 서버로 먼저 전달되며, 해당 서버에 문제가 있을 경우 다음 우선순위의 서버로 전달됩니다.
5. NS 레코드: 네임서버 정보 확인
example.com
도메인의 DNS 정보를 관리하는 네임서버 목록을 확인합니다.
nslookup
set type=NS
daum.net
6. SOA 레코드: 도메인 권한 정보 확인
도메인 영역(zone) 파일의 시작을 알리는 레코드로, 해당 도메인의 핵심 관리 정보를 담고 있습니다. 주요 필드는 다음과 같습니다.
- origin (Primary name server): 주 네임서버의 이름.
- mail addr (Responsible person mail addr): 도메인 관리자의 이메일 주소 (첫 번째 '.'이 '@'로 대체됨).
- serial: 존 파일의 버전 번호. 변경 시 이 숫자가 증가합니다.
- refresh: 보조 네임서버가 주 네임서버로부터 존 파일 변경 여부를 확인하는 주기.
- retry: 보조 네임서버가 주 네임서버에 접속 실패 시 재시도하는 간격.
- expire: 보조 네임서버가 주 네임서버로부터 정보를 갱신하지 못했을 때, 기존 정보를 유효하게 유지하는 최대 시간.
- minimum (Default TTL): 다른 DNS 서버가 이 존의 레코드를 캐싱하는 최소 시간 (TTL).
nslookup
set type=SOA
kakao.com
7. TXT 레코드: 추가 텍스트 정보 확인
도메인에 대한 임의의 텍스트 정보를 저장하는 데 사용됩니다. 주로 이메일 발신 서버를 인증하는 SPF(Sender Policy Framework) 레코드, 도메인 소유권 확인, DKIM(DomainKeys Identified Mail) 공개키 등을 설정하는 데 활용됩니다.
nslookup
set type=TXT
google.com
nslookup 활용 팁
- 특정 DNS 서버에 직접 질의:
nslookup [도메인] [DNS서버IP]
형식으로 특정 DNS 서버의 응답을 확인할 수 있어, DNS 전파 문제 등을 진단할 때 유용합니다.$ nslookup google.com 8.8.8.8
- 디버그 모드: 대화형 모드에서
set debug
또는set d2
(더 상세한 정보)를 입력하면 DNS 질의와 응답 과정을 더 자세히 볼 수 있습니다.
마무리
nslookup
은 간단하지만 강력한 DNS 정보 조회 도구입니다. 네트워크 관리자뿐만 아니라 개발자, 일반 사용자에게도 도메인 관련 문제를 해결하거나 정보를 얻는 데 큰 도움을 줄 수 있습니다. 오늘 소개된 다양한 레코드 타입과 조회 방법을 통해 nslookup
을 더욱 효과적으로 활용해 보시기 바랍니다!