네 가지 결과, 네 가지 다른 대응
NXDOMAIN 설명: 도메인이 확인되지 않는 이유
NXDOMAIN("non-existent domain", 존재하지 않는 도메인)은 DNS가 줄 수 있는 가장 명확한 응답 중 하나입니다. 서버가 시간 초과되었다거나 상위 어딘가가 잘못 설정되었다는 뜻이 아닙니다. 권한 네임서버에 어떤 이름을 물었더니 그런 이름은 자신의 존에 없다고 분명하게 답했다는 뜻입니다. 일반적인 의미의 오류가 아니라 확정적인 부정 응답입니다.
가장 흔한 실제 원인
- 도메인 오타입니다. DNS 입장에서 exmaple.com은 example.com과 다른 이름이며, 등록되지 않은 도메인일 가능성이 높습니다.
- 도메인 등록이 만료되었는데 갱신되지 않았습니다.
- 조회한 서브도메인이 만들어진 적이 없습니다. 루트 도메인은 잘 확인되지만 api.example.com에는 자체 레코드가 설정된 적이 없는 경우입니다.
- 마이그레이션 중에 레코드가 삭제되거나 이름이 바뀌었는데 대체 레코드가 만들어지지 않았습니다.
재시도가 도움이 되지 않는 이유
DNS 시간 초과나 SERVFAIL은 일시적일 수 있습니다. 서버가 잠깐 과부하였거나 네트워크 경로에 순간적인 문제가 있었던 경우이며, 잠시 후 재시도하는 것이 오히려 올바른 대응인 경우가 많습니다. NXDOMAIN은 다릅니다. 해당 이름이 등록되어 있지 않다는 직접적이고 권한 있는 선언입니다. 등록 상태에는 아무런 변화가 없으므로 같은 질의를 다시 보내도 같은 응답이 돌아옵니다. 잘 만든 조회 도구가 NXDOMAIN을 영구적인 실패로 취급하고 성공할 수 없는 질의에 재시도와 시간을 낭비하지 않고 빠르게 실패 처리하는 이유가 바로 이것입니다.
알아 둘 만한 미묘한 점이 있습니다. NXDOMAIN은 특정 레코드 유형이 아니라 이름 전체에 적용됩니다. 도메인에 A 레코드는 있고 AAAA 레코드는 없다면, AAAA 질의는 NXDOMAIN이 아니라 빈 응답 집합을 담은 성공 응답을 반환합니다(NODATA로 표시되기도 합니다). NXDOMAIN은 그 이름 자체에 어떤 종류의 레코드도 없다는 뜻입니다.
NXDOMAIN이 진짜 NXDOMAIN이 아닐 때
일부 ISP와 공용 Wi-Fi 네트워크는 진짜 NXDOMAIN 응답을 몰래 가로채 자체 응답으로 바꿔치기합니다. "이 도메인은 존재하지 않습니다"라고 솔직하게 알려 주는 대신, 오타가 났거나 등록되지 않은 도메인을 광고로 가득한 검색 페이지로 리디렉션하는 것입니다. 이는 근거 없는 이야기가 아니라 실제로 이루어지는 관행이며, DNS 응답에 대한 신뢰를 떨어뜨리는 전형적인 사례입니다. 이렇게 하는 리졸버가 실제로 존재하는 도메인에 대해 거짓말을 하는 것은 아니지만, 진짜 NXDOMAIN을 인위적으로 만들어 낸 수익화 결과 뒤에 감추고 있는 것은 사실입니다. 막다른 길을 리디렉션할 상업적 이유가 없는 잘 알려진 중립적인 공개 리졸버에 직접 질의하면 이 문제를 완전히 피하고 권한 서버의 실제 응답을 얻을 수 있습니다.
| 결과 | 의미 | 재시도할 가치가 있나요? |
|---|---|---|
| NXDOMAIN | 어떤 레코드 유형에도 해당하지 않고 이름 자체가 존재하지 않음 | 아니요. 영구적임 |
| NODATA | 이름은 존재하지만 질의한 레코드 유형은 없음 | 아니요. 해당 레코드 유형에 대해서는 이 역시 영구적임 |
| 변조된 NXDOMAIN | 리졸버가 실제 부정 응답을 자체 페이지로 대체함 | 대신 다른 중립적인 리졸버에 질의하세요 |
등록되어 있다고 확신하는 도메인에서 NXDOMAIN이 나올 때
가장 당황스러운 경우는 분명히 등록되어 있고 최근까지 잘 동작하던 도메인에서 NXDOMAIN을 보는 것입니다. 앞서 설명한 단순한 원인 외에도, 도메인이 레지스트라 간에 이전되면서 네임서버 위임이 일시적으로 불완전한 상태에 들어갈 때, DNSSEC 서명 오류 때문에 검증 리졸버가 유효한 존을 존재하지 않는 것처럼 취급할 때, 또는 드물지만 알아 둘 만하게 이용 약관 위반이나 악용 문제로 레지스트라가 도메인을 정지시켰을 때 발생할 수 있습니다. 정지된 경우 외부에서는 만료된 등록과 똑같이 보일 수 있습니다. 이 중 어느 것도 재시도로 해결되지 않으며, 모두 DNS 자체로는 알 수 없고 보통 레지스트라의 대시보드나 WHOIS 조회를 통해 등록 및 위임 상태를 직접 확인해야 합니다.
도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.
관련 글
같은 도메인이 다르게 응답하는 세 가지 이유
지리적 라우팅
지역마다 다른 엣지 서버
캐싱
독립된 TTL, 독립된 캐시
스플릿 호라이즌
의도된 다른 응답
DNS 응답이 위치마다 달라지는 이유
지리 기반 DNS, CDN 라우팅, 리졸버 캐시, 스플릿 호라이즌 구성을 살펴보며 같은 도메인이 서로 다른 응답을 반환하는 이유를 알아봅니다.
순서대로 점검하는 네 계층
DNS
이름 확인
전송
TCP 연결
TLS
인증서 검증
애플리케이션
HTTP 응답
“사이트에 연결할 수 없음” 오류 진단하는 방법
이 모호한 브라우저 오류는 서로 무관한 여러 원인을 포함합니다. 그중 DNS는 가장 먼저 원인 여부를 판단하기 좋은 항목입니다.
“전파”란 사실 캐시 만료일 뿐
0분
변경 사항 저장
0-5분
DNS 호스트가 업데이트
TTL까지
이전 응답이 아직 캐시됨
TTL 이후
모두 새 응답을 확인
어디로도 푸시되지 않으며, 각 캐시가 사본 재사용을 멈출 뿐입니다
DNS 변경이 적용되지 않을 때 해야 할 일
레코드를 수정하고 기다렸는데도 여전히 이전 값으로 보입니다. 무언가 고장 났다고 단정하기 전에 다음 순서대로 확인해 보세요.