같은 도메인이 다르게 응답하는 세 가지 이유
지리적 라우팅
지역마다 다른 엣지 서버
캐싱
독립된 TTL, 독립된 캐시
스플릿 호라이즌
의도된 다른 응답
DNS 응답이 위치마다 달라지는 이유
도메인이 지역에 따라 서로 다른 DNS 응답을 반환하더라도 어느 쪽도 잘못된 것이 아닐 수 있습니다. DNS 제공업체와 CDN은 지리 기반 또는 지연 시간 기반 라우팅을 사용해 사용자를 지역별 인프라로 안내할 수 있습니다. 재귀 리졸버마다 캐시된 값이 다를 수도 있고, 기업 네트워크는 스플릿 호라이즌 DNS를 사용해 직원에게는 내부 응답을, 공용 인터넷에는 다른 응답을 줄 수 있습니다. 따라서 보이는 주소는 호스트 이름, 레코드 유형, 리졸버, 위치, 시간이 함께 만들어 낸 결과입니다. 한 번의 조회로 가능한 모든 관점을 대표할 수는 없으므로, 비교할 때는 이러한 맥락을 함께 남겨야 합니다.
지리 기반 및 지연 시간 기반 DNS
지리 인식 제공업체는 각 질의를 평가해 설정된 지역, 네트워크 측정값 또는 정책에 따라 응답을 선택합니다. 가까운 CDN 엣지나 지역별 애플리케이션 엔드포인트를 반환할 수 있습니다. 제공업체는 일반적으로 질의를 보낸 재귀 리졸버를 보게 되는데, 이 리졸버는 최종 사용자와 멀리 떨어져 있거나 많은 사용자를 처리할 수 있습니다. 일부 시스템은 EDNS Client Subnet으로 네트워크 정보를 일부 포함하지만, 지원 여부와 개인정보 처리 방식은 제각각입니다. 따라서 한 위치에서 수행한 조회가 그 위치의 특정 사용자가 선택한 ISP나 기업 리졸버를 통해 받는 응답을 항상 설명하는 것은 아닙니다.
| 원인 | 응답이 달라질 수 있는 이유 |
|---|---|
| 지리 기반 DNS | 제공업체가 리졸버 또는 네트워크 지역에 따라 레코드를 선택함 |
| CDN | 질의 위치에 따라 서로 다른 엣지가 안내될 수 있음 |
| 캐시 | 리졸버가 TTL에 따라 서로 다른 시점에 갱신함 |
| 스플릿 호라이즌 | 내부 클라이언트와 공용 클라이언트가 서로 다른 존 뷰를 받음 |
| 장애 조치 | 상태 점검 또는 정책 이벤트 이후 제공업체가 응답을 변경함 |
캐싱은 또 다른 변동 요인입니다. 어떤 리졸버는 이전 응답을 아직 보관하고 있는데 다른 리졸버는 이미 새 응답을 가져왔을 수 있습니다. TTL을 낮춰도 이전 TTL로 이미 캐시된 값이 소급해서 짧아지지는 않습니다. 로컬 운영 체제와 애플리케이션도 자체 캐시 동작을 더할 수 있습니다. 레코드를 최근에 변경했다면 이전 TTL과 변경을 게시한 시점을 기록해 두세요. 캐시가 만료될 시간을 주고, 업데이트가 실패했다고 결론 내리기 전에 권한 네임서버에 질의해 존 자체를 확인하세요.
불일치를 조사하는 방법
동일한 호스트 이름과 레코드 유형을 이름이 알려진 여러 리졸버로 비교하고, 각 질의를 어디서 언제 실행했는지 기록하세요. 권한 네임서버를 확인해 존이 현재 무엇을 게시하는지 살펴봅니다. 재귀 응답만 다르다면 캐시 경과 시간, 리졸버 정책 또는 지리적 요인을 의심해 볼 수 있습니다. 권한 서버끼리 응답이 다르다면 제공업체의 동기화와 위임을 점검하세요. 내부 사용자와 외부 사용자가 서로 다른 값을 본다면 스플릿 호라이즌 DNS가 의도된 것인지 확인하세요. 마지막으로 서비스 엔드포인트 자체를 테스트합니다. 서로 다른 DNS 주소가 모두 정상적인 애플리케이션 사본으로 이어질 수도 있고, 동일한 응답이 DNS와 무관한 이유로 모두 실패할 수도 있습니다.
- 리졸버, 질의 위치, 호스트 이름, 레코드 유형, 응답, 타임스탬프를 기록하세요.
- 레코드를 다시 변경하기 전에 권한 데이터를 먼저 비교하세요.
- DNS 수정 후에는 TTL 캐싱과 네거티브 캐싱을 감안하세요.
- 응답을 의도적으로 다르게 만드는 CDN 및 지리 라우팅 규칙이 있는지 확인하세요.
- 이름 확인과는 별개로 실제 서비스 상태를 테스트하세요.
응답이 다르다고 해서 증명되지 않는 것
공개 응답이 서로 다르다고 해서 그 자체로 DNS가 하이재킹되었거나, 도메인이 침해되었거나, 원본 서버가 이동했다는 의미는 아닙니다. 정상적인 설계 동작일 수 있습니다. 마찬가지로 응답이 일치한다고 해서 모든 방문자가 같은 경로를 사용한다는 것이 증명되지도 않습니다. 캐시와 애플리케이션 계층이 다를 수 있기 때문입니다. 제공업체 설정, 게시된 점검 공지, 알려진 CDN 대역, 애플리케이션 텔레메트리 같은 뒷받침하는 증거를 찾으세요. 특히 해당 주소가 여러 고객을 처리하는 공유 인프라일 때는 조사 결과를 좁게 서술해야 합니다.
분산된 응답의 원리를 이해하려면 CDN이 DNS를 사용하는 방식과 DNS 로드 밸런싱을 참고하세요. 도메인 조회 도구는 유용한 공개 DNS 스냅샷을 제공합니다. 관점을 비교한다면 두 번째 리졸버로 같은 질의를 반복해 보세요. 질의 맥락을 결과와 함께 남겨 두면 겉보기 모순이 라우팅 정책, 캐싱 또는 구성에 대한 증거로 바뀝니다.
맥락을 지우지 않고 응답 비교하기
유용한 비교 표에는 질의 시간, 리졸버 주소, 위치 또는 네트워크, 호스트 이름, 레코드 유형, 응답 코드, TTL, 응답 값이 포함되어야 합니다. 결과가 다르면 리졸버가 공용인지, 기업용인지, 제공업체가 관리하는지와 도메인이 CDN을 사용하는지도 추가하세요. 나중에 질의를 다시 실행해 차이가 안정적인 정책인지 일시적인 캐시 분리인지 판단하세요. 같은 리졸버가 시점마다 다른 응답을 반환한다면 로드 밸런싱과 상태 기반 장애 조치를 확인하세요. 두 리졸버의 응답이 일관되게 다르다면 지리 위치 확인이나 스플릿 호라이즌 설정을 조사하세요. 이러한 맥락이 있으면 “DNS가 일관되지 않다”는 막연한 말이 DNS 제공업체가 재현하고 설명할 수 있는 구체적인 관찰로 바뀝니다. 비교 결과를 보고할 때는 도메인의 라우팅 정책을 확인하지 않았다면 어느 한 응답이 전 세계적으로 옳다고 말하지 마세요. 각 응답이 권한 서버에서 왔는지 재귀 캐시에서 왔는지 설명하고, 함께 표시된 TTL도 남겨 두세요. CDN이 의도적으로 지역별 엔드포인트를 반환한다면 올바른 질문은 모든 리졸버가 동일한 주소를 반환하느냐가 아니라, 각 엔드포인트가 해당 지역에서 정상인가입니다. 이 구분이 있어야 예상된 라우팅 설계를 DNS 장애로 잘못 에스컬레이션하는 일을 막을 수 있습니다.
도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.
관련 글
순서대로 점검하는 네 계층
DNS
이름 확인
전송
TCP 연결
TLS
인증서 검증
애플리케이션
HTTP 응답
“사이트에 연결할 수 없음” 오류 진단하는 방법
이 모호한 브라우저 오류는 서로 무관한 여러 원인을 포함합니다. 그중 DNS는 가장 먼저 원인 여부를 판단하기 좋은 항목입니다.
“전파”란 사실 캐시 만료일 뿐
0분
변경 사항 저장
0-5분
DNS 호스트가 업데이트
TTL까지
이전 응답이 아직 캐시됨
TTL 이후
모두 새 응답을 확인
어디로도 푸시되지 않으며, 각 캐시가 사본 재사용을 멈출 뿐입니다
DNS 변경이 적용되지 않을 때 해야 할 일
레코드를 수정하고 기다렸는데도 여전히 이전 값으로 보입니다. 무언가 고장 났다고 단정하기 전에 다음 순서대로 확인해 보세요.
조회에 걸리는 일반적인 시간
느린 DNS 확인 문제 해결하기
사이트가 느리게 로드되는 것이 사실은 느린 DNS 조회 때문일 수 있습니다. 구분하는 방법과 일반적인 원인을 살펴봅니다.