DNS란
도메인 이름 시스템(Domain Name System)은 사람의 전화번호를 찾는 것 처럼, 컴퓨터 또한 DNS를 사용하여 웹사이트의 주소를 찾습니다. DNS는 "google.co.kr" 같이 기억하기 쉬운 주소를 이름으로 컴퓨터가 네트워크에서 서로를 식별하는데에 사용하는 IP주소로 변환됩니다.
왜 DNS를 사용하는가, 철저하게 유저입장에서 192.0.0.1 라는 규칙없는 번호를 기억하는 대신 'localhost.com' 을 기억하면 됩니다.
DNS의 작동 과정
1. 사용자의 요청 : 브라우저에 URL을 입력
2. 브라우저 캐시 확인 : 도메인의 IP 주소를 이미 알고 있는지 캐시를 확인, 알고있다면 과정 종료
3. 운영 체제 캐시 확인 : 브라우저가 해당 정보를 모른다면 OS는 캐시를 확인
4. 라우터 캐시 확인 : 라우터가 DNS 캐시를 가졌는지 확인
5. ISP DNS 서버 : 모든 캐시에 IP주소가 없다면, 요청은 ISP의 DNS 서버로 전달됩니다. 많은 요청을 처리하며 이전 쿼리에서 답을 캐시로 저장하고 있음
6.재귀 DNS 서버 : ISP가 주소를 모른다면, 재귀 DNS 서버로 전달되어, ISP 대신 서버를 찾기위한 추가 DNS 요청
7.루트 네임서버 : 재귀 서버는 루트 네임서버를 쿼리, 루트 서버는 도메인의 IP는 모르지만 다음 찾을 정보의 위치를 파악 중
8. TLD 네임서버 : 루트서버는 쿼리를 '.com' TLD 네임서버로 지시
9. 도메인 네임서버 : TLD 서버는 도메인의 네임서버를 가르킨다.
10. 사용자에 대한 응답 : IP주소는 재귀 서버로 번환 -> ISP 서버로 반환 -> 사용자의 컴퓨터로 반환되어 웹 사이트에 연결
DNS 캐싱 및 생존 시간 (TTL)
캐싱은 DNS의 핵심적인 부분으로, 서버의 부하를 줄이고 최종 사용자의 해석 과정에 도움을 줍니다. DNS 레코드가 캐시될 때에 TTL 값이 함께 제공되는데, 이는 DNS 레코드가 어마나 지속되는지의 대한 제한입니다. TTL이 만료되고 캐시가 지워지면 다음 번 필요할 때 새 레코드를 가져오는 과정이 시작된다.