DNS 레코드를 변경해도 모든 사용자가 동시에 같은 결과를 보지는 않을 수 있습니다. TTL과 여러 캐시 계층을 고려하여 이전 작업을 계획해야 합니다.
기본 원리
TTL은 DNS 응답을 캐시에 보관할 수 있는 시간을 지정합니다. 권한 있는 서버의 레코드를 수정하더라도 이미 받아 둔 레코드의 남은 유효 기간이 소급하여 줄어들지는 않습니다. 클라이언트, 브라우저와 재귀 리졸버에 각각 캐시가 있을 수 있습니다.
확인 순서
- 변경 전 TTL 값과 예정된 전환 시각을 기록합니다.
- 권한 있는 서버의 응답과 클라이언트가 사용하는 리졸버의 응답을 비교합니다.
- 전환 중에는 이전 대상과 새 대상이 모두 서비스를 제공할 수 있도록 계획합니다. 로컬 캐시 삭제에만 의존하지 마세요.
실제 예시
TTL이 한 시간일 때 14:00에 IP를 바꾸더라도 13:59에 이전 응답을 받은 리졸버는 남은 시간 동안 그 응답을 사용할 수 있습니다. 전환 직전에 TTL을 낮춰도 기존 캐시가 즉시 갱신되지는 않습니다.
결과 해석 시 주의할 점
모든 지연이 DNS 전파 문제는 아닙니다. 잘못된 위임, 누락된 레코드나 응용 프로그램 캐시도 비슷한 현상을 일으킬 수 있습니다. 시각, 조회한 서버와 반환된 값을 함께 기록하면 어느 계층이 이전 정보를 유지하는지 파악할 수 있습니다.
출처 및 추가 자료
프로토콜 및 명령어 세부 사항: RFC 1034. 절차와 예시 상황은 IPScans 편집팀이 작성했습니다.