업데이트됨 1개월 전
DNS 문제 해결은 탐정 일입니다. 누군가 질문을 던졌는데 답을 받지 못한 것입니다. 여러분이 할 일은 쿼리가 이동한 경로를 따라가며 어디서 끊겼는지 찾아내는 것입니다.
경로에는 여러 연결 고리가 있습니다: 내 컴퓨터 → 설정된 리졸버 → 재귀 리졸버 → 권위 있는 네임서버. 어느 고리 하나가 끊기면 전체 체인이 무너집니다. 각 고리를 순서에 따라 테스트하세요.
1단계: 네트워크 자체가 작동하고 있나요?
DNS는 네트워크를 통해 작동합니다. 네트워크가 없으면 DNS도 없습니다. 먼저 이것부터 확인하세요.
이것이 실패하면 멈추세요. DNS 문제가 아니라 네트워크 문제입니다. 케이블, Wi-Fi, IP 설정을 확인하세요.
핑이 된다면 계속 진행하세요.
2단계: 설정된 리졸버가 응답하고 있나요?
시스템에는 기본 DNS 리졸버가 있습니다. 이것을 찾아서 테스트하세요.
정상적인 리졸버는 밀리초 안에 답변을 돌려줍니다. 고장난 리졸버는 시간 초과되거나 SERVFAIL을 반환합니다.
리졸버가 실패하면: 공개 리졸버를 시도하세요 (3단계). 리졸버는 되는데 특정 도메인이 실패하면: 5단계로 건너뛰세요.
3단계: 공개 리졸버가 작동하나요?
문제가 내 리졸버만의 문제인지, 아니면 현재 위치에서의 DNS 전체 문제인지 확인하세요.
공개 리졸버는 되는데 내 것은 안 됨: 내 리졸버가 고장난 것입니다. 공개 DNS를 사용하거나 네트워크 관리자에게 연락하세요.
아무것도 안 됨: 무언가 DNS 트래픽을 차단하고 있습니다. 4단계로 계속하세요.
특정 도메인 하나에서만 모든 것이 실패함: 해당 도메인 자체에 문제가 있습니다. 5단계로 건너뛰세요.
4단계: DNS가 차단되어 있나요?
일부 네트워크는 DNS 쿼리를 가로채거나 차단합니다. 기업 네트워크, 호텔, 일부 ISP가 이런 식으로 동작합니다.
whoami.akamai.net 쿼리는 영리한 방법입니다. Akamai 서버에 도달한 IP 주소를 돌려줍니다. Google에 쿼리했는데 Akamai 쪽에서 ISP 리졸버의 IP가 보인다면, DNS 트래픽이 가로채어져 다른 서버로 돌려지고 있는 것입니다.
DNS가 차단되거나 돌려지고 있다면: 네트워크 정책에 걸린 것입니다. 선택지: DNS over HTTPS (DoH), DNS over TLS (DoT), 또는 네트워크 관리자에게 문의하세요.
5단계: 해당 도메인의 네임서버가 작동하고 있나요?
일반 DNS는 되는데 특정 도메인만 실패할 때, 문제는 대부분 그 도메인의 권위 있는 네임서버에 있습니다.
응답의 의미:
- NXDOMAIN: 도메인이 존재하지 않습니다. 오타? 등록 만료? 단순히 없는 것입니다.
- SERVFAIL: 네임서버가 답변을 시도하다 실패했습니다. 잘못 설정된 DNSSEC나 순환 의존성이 원인인 경우가 많습니다.
- Timeout: 네임서버에 연결할 수 없거나 다운되어 있습니다. 도메인 운영자에게 문제가 있는 것입니다.
- NOERROR (빈 응답): 도메인은 존재하지만 요청한 레코드 유형이 없습니다. (예: IPv6용 AAAA 레코드가 없는 경우)
6단계: 오래된 캐시 데이터 때문인가요?
DNS는 캐시를 적극적으로 활용합니다. 레코드가 최근에 변경되었다면 오래된 데이터가 아직 돌아다니고 있을 수 있습니다.
권위 있는 서버는 새 데이터를 반환하는데 리졸버는 오래된 데이터를 반환한다면, 기다리면 됩니다. 캐시는 결국 만료됩니다. TTL 값을 확인하세요 — 캐시가 갱신될 때까지 남은 시간을 초 단위로 알려줍니다.
자주 나타나는 패턴
간헐적 실패: 부하 분산 구성의 일부 네임서버가 고장났습니다. 각각 개별적으로 쿼리해서 문제 있는 서버를 찾으세요.
외부에서는 되는데 내부에서는 안 됨: /etc/hosts에 강제 설정된 항목이 있는지 확인하세요. 기업 DNS 정책도 확인하세요. 로컬에서 무언가 방해하고 있는 것입니다.
DNSSEC 실패: 검증 리졸버는 서명이 맞지 않을 때 SERVFAIL을 반환합니다. 검증을 끄고 테스트해 보세요:
이것은 되는데 일반 쿼리는 안 된다면, 해당 도메인의 DNSSEC 설정이 깨진 것입니다.
수정 후에도 실패가 지속됨: 부정 응답도 캐시됩니다. 근본 원인을 수정한 후에도 리졸버는 "이건 존재하지 않았어"를 한동안 기억합니다. 캐시를 비우거나 기다리세요.
진단 결정 트리
- 네트워크 작동 중? → 아니오 → 먼저 네트워크를 수정하세요
- 설정된 리졸버가 응답 중? → 아니오 → 공개 리졸버를 시도하세요
- 공개 리졸버 작동 중? → 아니오 → DNS 차단 여부를 확인하세요
- 특정 도메인에서 실패 중? → 예 → 권위 있는 서버에 직접 쿼리하세요
- 최근 DNS 변경이 있었나요? → 예 → 캐싱과 전파를 확인하세요
대부분의 DNS 실패는 네 가지 중 하나에 해당합니다: 네트워크 문제, 리졸버 문제, 권위 있는 서버 문제, 또는 DNS 차단. 경로를 따라가며 각 고리를 테스트하고 쿼리가 어디서 끊겼는지 찾아내세요.
DNS 문제 해결에 관한 자주 묻는 질문
일부 웹사이트에서만 DNS가 실패하는 이유는?
각 도메인에는 고유한 권위 있는 네임서버가 있습니다. 한 사이트는 실패하는데 다른 사이트들은 잘 된다면, 그 도메인의 네임서버가 잘못 설정되었거나 과부하가 걸렸거나 연결할 수 없는 상태일 가능성이 높습니다. 직접 권위 있는 서버에 쿼리해서 확인하세요.
DNS 변경이 전파되기까지 얼마나 기다려야 하나요?
이전 레코드의 TTL(유효 기간) 값을 확인하세요. 그것이 초 단위 최대 대기 시간입니다. 이전 TTL이 3600이었다면, 전 세계 리졸버는 이전 데이터를 최대 한 시간 동안 캐시합니다. TTL은 변경하기 전에 설정하는 것입니다 — TTL이 낮을수록 전파는 빠르지만 네임서버에 더 많은 부하가 걸립니다.
8.8.8.8과 1.1.1.1 중 어떤 것을 써야 하나요?
둘 다 신뢰할 수 있습니다. Google의 8.8.8.8은 더 오래되었고 광범위한 애니캐스트 인프라를 갖추고 있습니다. Cloudflare의 1.1.1.1은 응답 시간이 약간 더 빠른 경우가 많고 개인 정보 보호를 강조합니다. 문제 해결 시에는 둘 다 시도해보세요 — 하나가 실패하고 다른 하나가 된다면 중요한 단서를 잡은 것입니다.
SERVFAIL이 실제로 의미하는 것은?
리졸버가 쿼리에 답변하려 했지만 뭔가 잘못된 것입니다. 흔한 원인: 권위 있는 네임서버가 다운되어 있거나, DNSSEC 검증이 실패했거나, 리졸버가 루프나 시간 초과를 만난 경우입니다. "도메인이 존재하지 않는다"는 뜻이 아닙니다 (그것은 NXDOMAIN) — "조회를 완료할 수 없었다"는 뜻입니다.
이 페이지가 도움이 되었나요?