← 질문 목록
#22깊이 0
DNS 조회는 어떤 순서로 도는가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
가까운 캐시와 설정된 재귀 리졸버를 먼저 본다. 캐시에 없으면 재귀 리졸버가 루트에서 출발해 TLD, 권한 네임서버 순으로 답을 찾는다.
- 1. 브라우저에서 리졸버로: 캐시에 없다. 대신 물어봐 달라
- 2. 리졸버에서 루트로: .com은 누가 아는가
- 3. 루트에서 리졸버로: com 네임서버 주소다
- 4. com에서 리졸버로: example.com 네임서버 주소다
- 5. 리졸버에서 브라우저로: 최종 IP다. TTL만큼 캐시해라
한 번에 답을 주는 것이 아니라 다음에 물을 곳을 알려준다. 루트가 모든 도메인을 알 필요가 없어서 이 구조가 버틴다.
브라우저가 자체 캐시나 DoH를 쓰면 설명한 경로의 앞부분은 달라진다. 그래도 캐시에 답이 없을 때 권한 네임서버까지 위임을 따라가는 구조는 같다.
핵심 정리
TTL이 실무의 급소다. 값을 바꿔도 캐시가 만료되기 전까지는 옛 주소로 간다. 그래서 이전을 앞두고는 TTL을 미리 낮춰두고, 옮긴 뒤에 되돌린다.
전송은 UDP 하나로 고정되지 않는다. 기존 53번 포트 DNS는 작은 질의를 UDP로 시작하는 경우가 많지만 TCP도 지원해야 한다. 잘린 응답을 TCP로 다시 묻는 것은 한 예다.
암호화한 리졸버와는 DoT, DoH, DoQ를 쓸 수 있다. 어느 전송을 고르든 이름을 위임하고 캐시하는 DNS의 계층은 바뀌지 않는다.