본 내용은 유튜브 널널한 개발자 TV 채널을 보고 정리한 것입니다.
전세계 인터넷을 멈추는 방법과 DNS
인터넷은 라우터와 DNS의 집합체로 설명할 수 있다.
이 중에서 이번 시간에는 DNS에 대해 알아본다.
DNS는 분산형&계층적 DB 구조를 가지고있다.
계층 구조의 최상위에는 Root DNS가 있고, Root DNS는 전세계에 13대가 있다.
이 13대의 Root DNS를 마비시키면 전세계의 인터넷은 멈추게 된다.
DNS가 무엇이기에 Root DNS 13대가 마비되면 전세계의 인터넷이 멈출까?
흔히들 알고 있는 www.naver.com 와 같은 주소가 도메인 주소이다.
콤마(.)로 구분된 단어들 하나하나가 도메인이다.
이 중 맨 앞의 www는 호스트 네임이라고 한다.
사람들에게는 숫자만 외우는 것보다 문자로 외우는 것이 더 쉽다.
마찬가지로 도메인 주소는 사람들이 외우고 접근하기 쉬운 주소이고,
이 주소를 컴퓨터가 알 수 있는 IP 주소로 바꾸어 주는 것이 DNS이다.
브라우저 창에 www.naver.com 을 입력해서 네이버로 접속하는 과정은 아래와 같다.
PC 내 Cache DNS에 www.naver.com 을 검색한다.
있다면 곧바로 Cache DNS에서 해당 IP 주소로 응답한다.
없다면 Host 파일에서 www.naver.com 을 검색한다.
그래도 없다면 DNS에 www.naver.com 에 대한 IP 주소를 요청한다.
(만약 공유기에 DNS 포워딩의 기능이 있으면 공유기가 DNS처럼 응답한다.
공유기에서 응답하지 않을 경우에는 ISP 소속 DNS가 대신 응답한다.)
먼저 Cache DNS에서 Root DNS에게 com 도메인에 대해 DNS를 요청한다.
Root DNS는 *.com 을 다루는 DNS 목록을 응답한다.
응답 받은 뒤, 이 중에서 Cache DNS와 가장 가깝거나 속도가 빠르거나 하는 기준으로 임의의 DNS를 선택한 뒤 naver 도메인에 대한 DNS를 요청한다.
해당 DNS가 naver를 다루는 DNS 목록을 응답하면 그 중에서 또 www를 다루는 DNS에 요청해서 www.naver.com의 IP 주소를 응답받게 된다.
위 과정에서 응답에는 유효기간이 있다.
유효기간동안 해당 IP 정보는 유효하며 유효기간이 만료되면 위와 같은 과정을 반복해야 한다.