본문 바로가기
Infra2026년 7월 2일4분 읽기

DNS가 안 될 때 — dig·nslookup으로 원인 찾기

YS
김영삼
조회 372
DNS가 안 될 때 — dig·nslookup으로 원인 찾기

핵심 요약

도메인 접속이 안 될 때 ping 8.8.8.8(IP)은 되는데 ping google.com이 안 되면 DNS 해석 문제다. dig로 "어떤 응답이 오는지", "어느 네임서버가 답하는지"를 단계별로 확인하면 원인이 좁혀진다.

1. 먼저 문제를 분리한다

ping 8.8.8.8        # IP로 되면 네트워크는 정상
ping google.com     # 여기서 실패하면 DNS 문제
cat /etc/resolv.conf  # 어떤 DNS 서버를 쓰는지

2. dig로 해석 확인

dig youngsam.net              # A 레코드 조회
dig youngsam.net +short       # IP만 간단히
dig youngsam.net MX           # 메일 서버
dig @8.8.8.8 youngsam.net     # 구글 DNS로 직접 물어보기

@8.8.8.8로는 되는데 기본 리졸버로는 안 되면, 내 DNS 서버(ISP·사내) 문제다.

3. 응답 해석 포인트

상태의미
NOERROR + ANSWER 있음정상 해석
NXDOMAIN도메인이 존재하지 않음(오타·미등록)
SERVFAIL네임서버 오류·DNSSEC 실패
ANSWER 0 + timeoutDNS 서버에 도달 못 함

4. 전파·캐시 문제

dig youngsam.net +trace       # 루트부터 계층적으로 추적
dig youngsam.net @1.1.1.1     # 다른 리졸버로 비교
# 방금 DNS를 바꿨다면 TTL만큼 캐시가 남아있을 수 있음

레코드를 막 변경했는데 옛 IP가 나오면 TTL 만료를 기다리거나 로컬 캐시를 비운다.

5. 로컬 캐시 비우기

  • Linux(systemd): sudo systemd-resolve --flush-caches 또는 resolvectl flush-caches
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Windows: ipconfig /flushdns

자주 묻는 질문

nslookup과 dig 중 뭘 쓰나요?

기능은 겹치지만 dig가 응답의 세부(권한 섹션·TTL·플래그)를 더 자세히 보여줘 진단에 유리합니다. nslookup은 대화형이라 간단 조회에 편합니다. Windows 기본 제공은 nslookup입니다.

DNS를 바꿨는데 여전히 옛 IP가 나와요.

레코드의 TTL만큼 전 세계 리졸버가 옛 값을 캐싱합니다. 변경 전에 TTL을 짧게(예: 300초) 낮춰두면 전파가 빠릅니다. 로컬은 캐시 flush로, 확인은 dig @1.1.1.1처럼 여러 리졸버로 비교하세요.

SERVFAIL은 어떻게 대응하나요?

네임서버가 응답을 못 만든 것으로, 권한 네임서버 장애나 DNSSEC 검증 실패가 흔한 원인입니다. dig +trace로 어느 단계에서 끊기는지 보고, DNSSEC 문제면 +cd(검증 무시)로 구분해볼 수 있습니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록