← 아티클 목록

DNS 전파 확인과 진단 — dig·캐시·resolv.conf로 원인 좁히기

2026-08-10#networking#dns#트러블슈팅

브라우저는 DNS_PROBE_FINISHED_NXDOMAIN, 서버는 Could not resolve host. 레코드를 방금 바꿨는데 안 풀립니다. "기다리면 되겠지"로 끝내지 말고 어디까지 풀리고 어디서 막혔는지dig 로 읽어내야 합니다. 십중팔구는 전파 지연이 아니라 캐시입니다.

1단계 — dig로 응답을 본다

로컬 터미널
dig example.com +short        # 결과 IP만
dig example.com               # 전체 (ANSWER·AUTHORITY 섹션)
OUTPUT
;; ANSWER SECTION:
example.com.   300   IN   A   203.0.113.10

ANSWER 가 비어 있으면 레코드가 없거나 못 받은 것, status: NXDOMAIN 이면 도메인 자체가 없는 것, SERVFAIL 이면 네임서버 응답 실패입니다.

2단계 — 전파인가, 캐시인가

내가 받는 값과 실제 권한 네임서버의 값이 다른지 비교합니다. 권한 서버는 캐시를 거치지 않으므로 진짜 최신값입니다.

로컬 터미널
dig NS example.com +short            # 이 도메인의 권한 네임서버
dig @ns1.provider.com example.com +short   # 권한 서버에 직접 질의

권한 서버는 새 값인데 내 결과만 옛값이면 → 캐시 문제(전파 아님). 권한 서버도 옛값이면 → 레코드를 아직 안 바꿨거나 진짜 전파 대기입니다.

원인별 해결

상황원인해결
권한 서버는 신값, 나만 구값리졸버/로컬 캐시TTL 만료 대기 또는 캐시 flush
권한 서버도 구값레코드 미반영·TTL 잔여DNS 설정 재확인, TTL만큼 대기
SERVFAIL네임서버 장애·DNSSEC 불일치NS 상태·DNSSEC 점검
내부 호스트만 안 풀림resolv.conf·내부 DNS/etc/resolv.conf 확인

캐시 비우기 체크리스트

로컬 터미널
dig @8.8.8.8 example.com +short      # 외부 리졸버로 교차 확인
sudo systemd-resolve --flush-caches  # systemd-resolved 캐시
sudo resolvectl flush-caches         # 신버전
cat /etc/resolv.conf                 # 내가 쓰는 리졸버 확인

TTL이 300이면 변경 후 최대 5분, 권한 서버가 신값이면 그 TTL만 지나면 풀립니다. 전파는 보통 캐시 TTL 문제이지 "전 세계 동기화" 문제가 아닙니다.


dig 읽는 법·재귀와 권한 네임서버·TTL과 캐시를 직접 질의해보며 익히는 실습은 네트워크 트랙에서 회원가입 없이 무료로 할 수 있습니다.