리눅스 - DNS

코린이·2024년 11월 26일

Linux

목록 보기
21/27

리눅스에서 DNS 문제를 진단하고 네트워크 트러블 슈팅을 진행할 때 유용하게 사용되는 명령어가 2개 있다.

📌 nslookup

nslookup 명령어는 DNS 서버에 특정 값을 전송하여 도메인, IP 주소, 기타 정보 등을 확인하는 데 사용된다.

# 명령어 기본 문법
nslookup <옵션> <도메인 or IP 주소>
# 도메인으로 IP 주소 조회
nslookup example.com

example.com 도메인이 1개의 IP 주소를 가지고 있음을 확인할 수 있다.
(도메인에 따라 1개 이상의 IP 주소를 가지는 경우도 있다.)

# 도메인으로 IP 주소 조회 (특정 DNS 서버를 사용)
# 구글에서 공개한 DNS 서버를 8.8.8.8으로 명시
nslookup example.com 8.8.8.8
# IP 주소로 도메인 이름 조회 (역방향 조회)
nslookup 93.184.215.14

📌 dig

dig명령어는 최근에 만들어진 명령어로 nslookup 명령어보다 다양한 기능과 결과를 확인할 수 있다.

이러한 이유료 nslookup 명령어 보다 dig명령어를 선호하는 경우가 있다.

# 명령어 기본 문법
dig <옵션> <도메인 or IP 주소>
# dig 명령어 옵션
+short : 필수 정보만을 표시(축약 표현)
+trace : DNS 쿼리의 전체 경로를 추적하여 각 단계와 관련된 서버를 표시 (DNS 트러블 슈팅에 유용하게 사용)
-t <레코드 타입> : DNS 레코드 타입을 지정 (MX, NS 등...)
-x <IP 주소> : 역방향 조회 수행
# 도메인으로 IP 주소 조회
dig example.com

✅ 출력 결과에 대한 각 행의 설명

# dig 명령어의 버전과 실행한 쿼리의 도메인 이름
; <<>> DiG 9.20.0-2ubuntu3-Ubuntu <<>> example.com


# dig 명령어에 설정된 옵션 표시 (+cmd 옵션은 기본으로 설정된 옵션)
;; global options: +cmd


# DNS 서버로부터의 응답
;; Got answer:
# DNS 응답 헤더에 대한 정보 (쿼리 종류, 응답 상태, 쿼리 고유 ID)
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43743
# DNS 응답에 대한 플래그 및 섹션 정보
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1


# EDNS 관련 정보 표시
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.			IN	A


# 쿼리에 대한 응답이 포함된 섹션으로 도메인 이름, TTL, 인터넷 클래스, 레코드 타입, IP 주소를 확인할 수 있다.
# A : IPv4
# AAAA : IPv6
# MX : 메일 서버 등...
;; ANSWER SECTION:
example.com.		0	IN	A	93.184.215.14


# 쿼리를 처리한 시간 및 DNS 서버 정보 및 응답 메시지 크기
;; Query time: 10 msec
;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
;; WHEN: Sat Nov 30 17:13:09 KST 2024
;; MSG SIZE  rcvd: 56

이 외에도 nslookup 명령어가 사용하는 기능 대부분을 사용할 수 있다.

# 도메인으로 IP 주소 조회 (특정 DNS 서버를 사용)
# 구글에서 공개한 DNS 서버를 8.8.8.8으로 명시
dig @8.8.8.8 example.com
# IP 주소로 도메인 이름 조회 (역방향 조회)
# -x 옵션을 사용
dig -x 93.184.215.14

0개의 댓글