
들어가며
인터넷을 사용하면서 웹사이트 주소를 입력하면 해당 웹사이트가 화면에 나타나는 것은 당연하게 느껴진다. 하지만 이 과정 뒤에는 도메인 이름 시스템(DNS)이라는 중요한 기술이 숨어 있다. DNS는 사람이 기억하기 쉬운 웹사이트 주소(예: http://www.example.com)를 컴퓨터가 이해하는 숫자 주소(IP 주소)로 바꿔주는 역할을 한다. 이 보고서는 DNS의 기본 원리와 함께, DNS 작동 방식을 직접 확인하고 문제를 해결하는 데 사용되는 nslookup 명령어와 Wireshark 도구의 활용법을 설명한다. 이 주제는 인터넷이 어떻게 작동하는지 이해하고, 네트워크 문제를 진단하는 데 필수적인 지식을 제공하기 때문에 중요하다.
DNS의 기본 원리
DNS는 인터넷에서 웹사이트 주소를 컴퓨터가 인식하는 IP주소로 변환하는 핵심 시스템이다.
DNS의 역할과 클라이언트의 관점
1. 호스트 이름과 IP 주소 변환
DNS는 "http://www.example.com"과 같은 호스트 이름을 "192.168.1.1"과 같은 IP 주소로 바꿔주는 역할을 한다.
이는 인터넷 인프라에서 매우 중요한 기능이다.
2. 클라이언트의 단순한 역할
DNS 클라이언트는 로컬 DNS 서버에 질의를 보내고 응답을 받는 비교적 간단한 역할을 수행한다.
로컬 DNS 서버가 다른 계층적 DNS 서버들과 통신하여 질의를 해결하는 복잡한 과정은 클라이언트에게는 보이지 않는다.
DNS 관련 주요 개념
1. 로컬 DNS 서버 ) 클라이언트의 DNS 질의를 가장 먼저 처리하는 서버이다.
2. DNS 캐싱 ) 이전에 질의했던 DNS 기록을 저장하여 다음 요청 시 빠르게 응답할 수 있도록 하는 기술이다.
3. DNS 레코드 및 메시지 ) DNS는 특정 정보를 담고 있는 레코드와 이 레코드를 주고받는 메시지 형식을 사용
4. TYPE 필드 ) DNS 레코드에서 질의하는 정보의 종류를 나타내는 필드이다.
nslookup 명령어를 활용한 DNS 정보 확인
nslookup은 DNS 서비스를 사용하여 호스트 이름에 대한 IP 주소나 도메인에 대한 권한 있는 네임 서버 정보를 조회하는 데 사용되는 명령어이다.
nslookup의 기본 사용법
1. 명령어 실행 및 기능
- nslookup은 대부분의 Microsoft, Apple iOS, Linux 운영 체제에서 사용할 수 있다.
- 명령 프롬프트나 터미널에서 nslookup을 입력하여 실행한다.
2. 호스트 이름에 대한 IP 주소 조회 (Type=A 레코드)
- nslookup은 특정 DNS 서버에 호스트 이름(예: http://www.nyu.edu)에 해당하는 IP 주소(Type=A 레코드)를 질의할 수 있다.
- 질의 결과는 응답을 제공한 DNS 서버의 정보와 요청한 호스트의 IP 주소를 포함한다.
- 예시: nslookup http://www.nyu.edu명령을 실행하면, 로컬 DNS 서버가 http://www.nyu.edu의 IPv4 및 IPv6 주소를 반환한다.
- 로컬 DNS 서버가 응답을 제공하기 위해 다른 DNS 서버들과 통신했을 수도 있다.

권한 있는 네임 서버 정보 조회 ( Type=NS 레코드 )
1. Type=NS 레코드 질의
a. nslookup -type=NS [도메인] 명령어를 사용하여 특정 도메인(예: nyu.edu)에 대한 권한 있는 DNS 서버의 호스트 이름과 IP 주소를 조회할 수 있다.
b. 이 질의는 "nyu.edu에 대한 권한 있는 DNS 서버의 호스트 이름을 알려주세요"라는 의미이다.
2. 결과 해석
a. 응답은 질의를 처리한 로컬 DNS 서버 정보와 함께, 해당 도메인에 대한 여러 권한 있는 DNS 서버의 이름을 제공한다.
b. 응답이 "non-authoritative"라고 표시되면, 해당 정보가 권한 있는 서버가 아닌 캐시에서 가져온 것임을 의미한다.
c. nslookup은 Type=NS 질의 시 명시적으로 요청하지 않아도 권한 있는 DNS 서버의 IP 주소를 함께 반환한다.

역방향 DNS 조회
1. IP 주소로 호스트 이름 찾기
nslookup은 주어진 IP 주소에 해당하는 호스트 이름을 찾는 "역방향 DNS 조회"도 수행할 수 있다.
이는 일반적인 호스트 이름-IP 주소 조회와 반대되는 작업이다.
DNS 캐시의 작동 방식과 관리
대부분의 컴퓨터는 최근에 조회한 DNS 기록을 캐시에 저장하여 DNS 질의 처리 속도를 높인다.
1. DNS 캐시의 필요성 및 작동 원리
1. 캐싱의 목적
a. 애플리케이션이 호스트 이름을 IP 주소로 변환해야 할 때마다 로컬 DNS 서버에 연락하는 것이 비효율적일 수 있다.
b. DNS 캐시는 이 과정을 최적화하여 네트워크 트래픽을 줄이고 응답 속도를 향상시킨다.
2. 캐시 작동 방식
a. 컴퓨터는 최근에 검색된 DNS 기록을 "DNS 리졸버 캐시"에 저장한다.
b. DNS 서비스가 호출될 때, 호스트는 먼저 자신의 캐시에서 필요한 DNS 기록을 확인한다.
c. 기록이 캐시에 있으면 로컬 DNS 서버에 연락하지 않고 캐시된 기록을 사용한다.
d. 캐시된 DNS 기록은 일정 시간이 지나면 만료되어 캐시에서 제거된다.

2. DNS 캐시 지우기
1. 캐시 지우기의 의미
DNS 캐시를 명시적으로 지우는 것은 컴퓨터가 다음에 DNS 이름 확인 서비스를 사용할 때 분산 DNS 서비스를 다시 호출해야 함을 의미한다. 이는 캐시에 기록이 없기 때문이다.
2. 운영 체제별 캐시 지우기 명령어
Mac: sudo killall -HUP mDNSResponder
Windows: ipconfig /flushdns
Linux: sudo systemd-resolve --flush-caches
(Ubuntu 22.04 이상: sudo resolvectl flush-caches)

[실습 1] nslookup 기초 활용
- Q1. www.iitb.ac.in의 IP 주소는 무엇인가요?
- Q2. 위 질문의 답변을 제공한 DNS 서버의 IP 주소는?
- Q3. 답변이 'Authoritative'인가요, 'Non-authoritative'인가요?
- "Authoritative" (답변에 "Non-authoritative answer"라는 문구가 포함되지 않았습니다, 따라서 권한 있는 DNS 서버에서 직접 제공한 응답입니다.)
- Q4. iit.ac.in 도메인의 권한 있는(Authoritative) 네임서버 이름은?
- kns.kornet.net DNS 서버는 iit.ac.in을 찾을 수 없다고 알려주고 있습니다. 이는 도메인 자체가 존재하지 않음을 의미하는 "Non-existent domain" 오류 메시지입니다.
- 이 경우, iit.ac.in에 대한 권한 있는 네임서버를 확인할 수 없습니다.


[실습 2] Wireshark를 이용한 DNS 트래킹
- Q5~6. DNS 쿼리와 응답 메시지는 UDP인가요, TCP인가요?
- 정답: 일반적으로 DNS는 UDP를 사용합니다. Wireshark의 'Protocol' 컬럼에서 확인할 수 있습니다.
- [ 이미지 자리, ws ]
- Q7. DNS 쿼리의 목적지 포트와 응답의 소스 포트는?
- 정답: DNS 표준 포트인 53번입니다.
- Q8. DNS 쿼리는 어떤 IP 주소로 전송되나요?
- 정답 가이드: 여러분의 컴퓨터에 설정된 '기본 DNS 서버' 주소로 전송됩니다.
- Q9~10. 메시지 내 'Questions'와 'Answers'의 개수는?
- 정답 가이드: 쿼리 메시지는 보통 1개의 Question을 가지며, 응답 메시지는 1개 이상의 Answer를 포함합니다.
- [ 이미지 자리, ws ]
- Q11. 웹페이지 내 이미지를 불러올 때 DNS 쿼리가 다시 발생하나요?
- 정답 가이드: 동일한 호스트(gaia.cs.umass.edu)라면 DNS 캐싱 덕분에 두 번째 요청 시에는 별도의 DNS 쿼리가 발생하지 않습니다.
[실습 3] nslookup 상세 분석 (Type A & NS)
- Q12~15. Type A 쿼리 분석
- Q16~18. Type NS 쿼리 분석
'기타' 카테고리의 다른 글
| [ PS ] 백준 1823, 수확 (0) | 2026.04.08 |
|---|---|
| [ PS ] 백준 25759, 들판 건너가기 (0) | 2026.04.08 |
| [ 기타 ] 클래스풀 IP 주소 체계란? (0) | 2025.12.23 |
| [ 방법론 ] TDD vs BDD vs ATDD (0) | 2025.12.22 |
| 250913 리눅스 마스터 2급 25년 3회차 복원 ( 73 / 80 ) (0) | 2025.09.14 |