Domain Name System 의 약자로
인터넷 주소창에 Host Domain Name을 입력했을 때(ex, daily-funding.com, naver.com 등..)
해당 문자를 IP주소로 변환해 주는 시스템을 말합니다.
SRI(Standard Research Institute)
그래서 SRI 라는 곳에서 전세계의 IP와 그에 해당하는 도메인을 수집을 합니다
그리고 유저는 SRI를 통해서 hosts 파일을 다운로드를 받습니다
SRI를 통해서 개인이 hosts파일을 관리하지 않게 되었습니다
초반에는 Hosts 파일 내 데이터도 별로 많지 않았고 사용자도 적어
준수한 스펙의 Hosts 파일 운용방식이였으나
사용자가 증가하고 호스트도 증가함에 따라 트래픽 문제가 발생했습니다
보통 알고 있는 Client ↔ Server 통신
Client 에서 daily-funding.com 이동 요청시 이때
인터넷을 설치시 각각 통신사가 있습니다. 각각의 통신사마다 DNS 서버가 존재합니다
예를 들어 웹브라우저 주소창에 daily-funding.com → 입력시 먼저 기지국 DNS 서버에 해당 도메인의 IP주소를 물어봅니다
그 이후 Root DNS 서버에 물어봅니다
이때 도메인 네임에 대한 정보를 갖고 있으면서, 해당 도메인 네임에 해당하는 IP주소를 갖고있는 서버를 Authoritative DNS Server라고 합니다.
반면에 두개중에 하나만 알고있는 서버를 Non-Authoritative DNS Server라고 합니다.
Root DNS 서버는 최상위 DNS 서버로 해당 서버에 도메인의 IP를 요청했을경우 IP 정보가 없을수 있습니다
이 경우에는 Root DNS 서버에서 기지국 DNS 서버에 해당 도메인의 IP가 없다고 return 해줍니다
추가로 daily-funding.com ← .com 의 최상위 도메인 서버를 return 해줍니다
Root DNS 서버에서 return해준 TLD 서버주소를 기지국 DNS 서버에서 받아서
다시 TLD 서버에 요청을 합니다 TLD 서버에서는 Second-level DNS 서버를 return 해줍니다
TLD 서버에서 return 받은 Second DNS 서버에 또 물어봅니다
ex) www. dev. mail. 등등 을 구분하는 최하위 서버
dev.daily-funding.com
ex)
우선 기지국 DNS 서버에서 Root DNS 서버에 물어봅니다
Root DNS 서버에서 나는 모른다 하지만 .com 의 Top-level DNS 서버 주소를 알려줌
전달 받은 Top-level DNS 서버에 물어보면 daily-funding.com 의 Second-level DNS 서버를 알려줌
권한 없는 네임 서버 (non-Authoritative Name Server) (DNS 정보를 가지고 있지 않은서버)
권한 있는 네임 서버 (Authoritative Name Server) (DNS 정보를 가지고 있는서버)
DNS는 각 PC 내에 최근에 방문한 사이트의 도메인 정보와 IP주소를 캐싱해둡니다
DNS는 캐싱이 되고 있어 호스트가 웹브라우저에 도메인을 입력했을 경우에 바로 지역 DNS 서버에 요청하는게 아닙니다.
지역 DNS 서버에 요청하기 전에 PC 내에 캐싱되어 있는 DNS 정보를 확인을 하고 DNS 정보가 없을 경우에 지역 DNS 서버에 요청을 해서 일반적인 DNS 동작과정을 거치게 됩니다.
PC내에 캐싱되어 있는 DNS정보 확인
레코드 설정시 TTL(Time To Live)라는 옵션값이 있습니다
이값은 DNS서버나 사용자 PC의 캐쉬(메모리)에 3600초를 시작으로 매초마다 시간이 감소 되다 0이 되면 메모리에서 사라집니다.
DNS 캐시를 통해서 좀더 빠른 응답속도를 얻을수 있지만 문제점도 존재합니다
바이러스나 네트워크 오류, 혹은 여러가지 이유로 DNS 캐시정보가 변조될수 있습니다
특정 도메인을 입력했을 때 원래의 IP 주소가 아닌 해킹사이트 IP 주소로 변경이
될 수 있습니다
그래서 주기적으로 캐싱된 DNS 를 정리해 줄 필요가 있습니다
command → ipconfig /flushdns
위 이미지는 2020년 초 테라서버에서 서버이전 시 발생한 상황입니다
서버 이전을 하면 해당 도메인의 DNS 정보를 이전한 서버 IP로 변경을 합니다
DNS 를 수정했을 경우에 전체적인 DNS에 해당 정보가 전달되는데 1일에서 최대 3일정도
소요가 된다고 합니다
기존 서버에는 공사중 alert을 띄우고 DNS 정보는 이전할 서버 IP 로 변경을 합니다
그러면 1일정도 후에 DNS 서버들에 변경된 정보가 반영이 되고 기존 서버로 DNS 정보가 캐싱되어 있는 유저는 TTL 시간이 만료되서 캐시가 만료되면 다시 DNS 서버에 DNS 정보를 요청하게
될것이고 그 시점에 변경된 DNS 정보를 전달받아 이전한 서버로 접속을 하게 됩니다.
관련 자료
https://www.youtube.com/watch?v=5rBzHoR4F2A
https://hwan-shell.tistory.com/320
https://peemangit.tistory.com/52
https://p2pforum.kr/bbs/board.php?bo_table=freetalk&wr_id=19774