01
위임과 응답을 구분해 기억합니다.
리졸버가 기억하는 것은 두 종류입니다. 도메인의 최종 주소와, 그 도메인을 담당하는 서버가 어디인지에 대한 정보입니다. 최종 주소를 기억하고 있으면 한 번에 끝나지만, 그것이 만료되고 담당 서버 위치만 남아 있으면 그 서버에만 다시 물어보면 됩니다. 화면이 세 가지 조회 유형을 구분해 표시하는 것이 이 차이입니다.
웹 도구 · DNS 조회·캐시·TTL
브라우저가 어떤 주소로 연결을 시작하면, 도메인 이름의 IP를 DNS로 찾는 조회가 먼저 일어납니다. 한 번 찾으면 TTL 동안 캐시에서 바로 답하고(빠름), 시간이 지나면 다시 물어봅니다. 아래에서 직접 조회해 보세요.
주소를 고르고 조회하세요
주소를 골라 조회해 보세요.
다음 → ‘조회’해서 IP를 찾아보세요(캐시가 비어 4단계 콜드).
단순화한 시뮬레이션이며 실제 조회나 지연이 아닙니다. 예시 도메인은 문서용 예약 도메인(example.com/.net, RFC 2606), IP는 문서용 대역(192.0.2.0/24, RFC 5737)만 씁니다. 재귀 리졸버의 캐시 한 곳만 모델링하며 DNSSEC·부정 캐싱·복수 IP 등은 생략했습니다.
참고: RFC 1034·1035·9499(DNS), Google Public DNS
이 데모에 대하여
같은 도메인을 두 번 조회하면 두 번째는 훨씬 빨리 끝납니다. 이 화면은 그 이유를 캐시 상태로 설명합니다. 재귀 리졸버가 무엇을 기억하고 있느냐에 따라 조회가 네 단계를 다 도는지, 두 단계로 줄어드는지, 아예 한 단계로 끝나는지가 갈립니다. TTL 을 짧게 바꿔 두고 기다리면 기억이 만료되면서 다시 길어지는 것도 확인할 수 있습니다.
01
위임과 응답을 구분해 기억합니다.
리졸버가 기억하는 것은 두 종류입니다. 도메인의 최종 주소와, 그 도메인을 담당하는 서버가 어디인지에 대한 정보입니다. 최종 주소를 기억하고 있으면 한 번에 끝나지만, 그것이 만료되고 담당 서버 위치만 남아 있으면 그 서버에만 다시 물어보면 됩니다. 화면이 세 가지 조회 유형을 구분해 표시하는 것이 이 차이입니다.
02
두 정보의 유효 기간이 다릅니다.
최종 주소는 짧게, 담당 서버 위치는 길게 기억하는 것이 보통입니다. 주소는 자주 바뀔 수 있지만 어느 서버가 담당하는지는 잘 바뀌지 않기 때문입니다. 화면에서 짧은 쪽만 만료되고 긴 쪽은 남아 있는 상태를 만들 수 있고, 그때 조회가 네 단계가 아니라 두 단계로 끝나는 것을 볼 수 있습니다.
03
돌려받는 답이 두 종류입니다.
위쪽 서버들은 최종 답을 주지 않고 다음에 물어볼 곳을 알려줍니다. 답을 가진 서버를 만나야 비로소 주소를 받습니다. 화면이 각 단계를 안내와 응답으로 나눠 표시하는 것은 이 둘이 다른 종류의 결과이기 때문이고, 이 구조 덕분에 최상위 서버들이 세상의 모든 도메인을 알고 있지 않아도 됩니다.
04
만료 판정은 경계를 포함합니다.
기억해 둔 시각과 현재 시각이 정확히 같아지는 순간부터 만료로 봅니다. 이런 경계 조건은 눈으로 확인하기 어려워서 자동 테스트로 확인하는 편이 확실하고, 계산 부분을 화면과 분리해 둔 이유도 여기 있습니다. TTL 을 짧게 두고 기다릴 때 정확히 언제 다시 길어지는지가 이 판정으로 정해집니다.
05
시간은 실제 지연이 아닙니다.
각 조회에 붙는 소요 시간은 실제로 측정한 값이 아니라 단계 수에 따라 정해 둔 예시입니다. 캐시에 있으면 아주 짧고 여러 단계를 돌면 길다는 관계만 보여주기 위한 것이며, 실제 지연은 서버까지의 거리와 회선 상태에 따라 크게 달라집니다. 숫자 자체보다 단계 수와 함께 움직인다는 점을 봐야 합니다.
06
주소는 문서용 대역에서 만듭니다.
조회 결과로 나오는 주소는 도메인 이름에서 계산해 만든 값이고, 문서와 예제 용도로 비워 둔 대역 안에서 정해집니다. 같은 도메인은 항상 같은 주소가 나오므로 캐시 동작을 확인하기 좋고, 실제로 존재하는 주소를 쓰지 않으므로 화면의 값으로 접속을 시도하는 일도 생기지 않습니다.
07
캐시는 한 곳만 모델링합니다.
실제로는 브라우저와 운영체제에도 각각 기억하는 계층이 있어서 조회가 더 일찍 끝나기도 합니다. 이 화면은 재귀 리졸버의 캐시 한 곳만 다루는데, 계층을 다 그리면 어느 단계에서 걸렸는지 알아보기 어려워지기 때문입니다. 실제 환경에서 화면보다 빠르게 응답이 오는 경우가 있는 것은 이 생략 때문입니다.
08
TTL 을 정하는 쪽은 도메인 주인입니다.
얼마나 오래 기억할지는 조회하는 쪽이 아니라 답을 주는 쪽이 정합니다. 그래서 서버를 옮길 계획이 있으면 미리 이 값을 짧게 줄여 두고, 옮기고 나서 다시 늘립니다. 짧게 두면 변경이 빨리 퍼지지만 조회가 잦아지고, 길게 두면 반대가 됩니다. 화면에서 이 값을 바꿔 보게 한 것은 그 맞바꿈을 직접 느껴 보라는 뜻입니다.
09
기억이 남아 있으면 변경이 늦게 퍼집니다.
주소를 바꿔도 이미 기억해 둔 곳들은 유효 기간이 끝날 때까지 예전 값을 씁니다. 그래서 서버를 옮긴 직후에 어떤 사람은 새 서버로, 어떤 사람은 옛 서버로 접속하는 구간이 생깁니다. 이 화면에서 TTL 이 지나기 전까지 같은 답이 계속 나오는 것이 그 상황을 그대로 보여주는 부분입니다.
실제 조회가 아니라 단순화한 모형입니다.
브라우저는 어떤 DNS 서버에도 질의하지 않으며 모든 결과는 계산해 만든 것입니다. 다루는 범위는 주소 레코드 하나와 주소값 하나이고, 이름이 다른 이름을 가리키는 경우, 하나의 이름에 주소가 여러 개인 경우, 최신 주소 체계의 레코드, 존재하지 않는 이름에 대한 결과를 기억하는 동작은 모두 빠져 있습니다. 도메인의 담당 구역도 마지막 두 부분으로 단순화했기 때문에 실제 등록 규칙과 다른 도메인에서는 맞지 않습니다. 또한 응답이 위조되지 않았는지 검증하는 절차, 조회 내용을 암호화해 보내는 방식, 서버가 여러 대일 때의 선택 같은 실제 운영의 요소는 다루지 않습니다. 조회가 실제로 어떻게 도는지 확인하려면 조회 도구를 직접 쓰는 편이 정확합니다.
참고 자료RFC 1034 — 도메인 이름 개념과 기능 ↗RFC 9499 — DNS 용어 정리 ↗RFC 2308 — 부정 캐싱과 TTL ↗
실험을 마쳤다면