1. DNS 란?
사전적인 정의부터 보자.
도메인 네임 시스템(Domain Name System, DNS)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.
위키백과에서는 DNS를 이렇게 설명하고 있다.
예를 들면 우리가 자주 접하는 naver.com, google.com 모두 DNS를 가진 DN(Domain Name)이라고 할 수 있다.
이들은 사실 문자열의 탈을 쓴 IP라고 볼 수 있다.
cmd에서 구글과 naver의 DN을 적어 ping을 확인해보자.
보다시피 google.com 의 IP 주소는 172.217.161.174
naver.com의 IP 주소는 210.89.164.90 각각 확인할 수 있다.
(naver.com에서는 ping을 받아오는걸 실패했는데, 네이버에서 막아놨다고 한다.)
이렇게 DN을 통해 자기 컴퓨터가 사이트의 어느 IP주소로 연결되는지 확인할 수 있다.
(자신과 가까운 DNS 서버를 통해 IP주소를 받아온다.)
2. DNS를 사용하는 이유
솔직히 네이버에 접속하기 위해 인터넷창에 곧바로 네이버 IP주소를 입력하는 사람은 없겠죠? 있다고 해도 그 많은 사이틀의 IP주소를 일일이 외워서 기억하는 분들은 없을 겁니다. 길고 복잡한 IP주소를 외울 수 없기 때문에 문자 주소를 사용하기 위해 DNS를 사용하게 됩니다.
★ DNS 동작과정
- 이제 아래 그림과 같이 PC 브라우저에서 www.naver.com을 입력한다. 그러면 PC는 미리 설정되어 있는 DNS (단말에 설정되어 있는 이 DNS를 Local DNS라 부름)에게 "www.naver.com이라는 hostname"에 대한 IP 주소를 물어본다.
- Local DNS에는 "www.naver.com에 대한 IP 주소"가 있을 수도 없을 수도 있다. 만약 있다면 Local DNS가 바로 PC에 IP 주소를 주고 끝난다. 없다면 3번으로 넘어간다.
- Local DNS는 이제 "www.naver.com에 대한 IP 주소"를 찾아내기 위해 다른 DNS 서버들과 통신(DNS 메시지)을 시작한다. 먼저 Root DNS 서버에게 "너 혹시 www.naver.com에 대한 IP 주소 아니?"라고 물어본다. 이를 위해 각 Local DNS 서버에는 Root DNS 서버의 정보 (IP 주소)가 미리 설정되어 있어야 한다.
- Root DNS란?전세계에 13대가 구축되어 있다. 미국에 10대, 일본/네덜란드/노르웨이에 각 1대씩... 그리고 우리나라의 경우 Root DNS 서버가 존재하지는 않지만 Root DNS 서버에 대한 미러 서버를 3대 운용하고 있다고 한다.
- Root DNS 서버는 "www.naver.com의 IP 주소"를 모른다. 그래서 Local DNS 서버에게 "난 www.naver.com에 대한 IP 주소 몰라. 나 말고 내가 알려주는 다른 DNS 서버에게 물어봐~" 라고 응답을 한다.
- 이 다른 DNS 서버는 "com 도메인"을 관리하는 DNS 서버이다.
- 이제 Local DNS 서버는 com 도메인을 관리하는 DNS 서버에게 다시 "너 혹시 www.naver.com에 대한 IP 주소 아니?"라고 물어본다.
- 역시 "com 도메인을 관리하는 DNS 서버"에도 해당 정보가 없다. 그래서 이 DNS 서버는 Local DNS 서버에게 "난 www.naver.com에 대한 IP 주소 몰라. 나 말고 내가 알려주는 다른 DNS 서버에게 물어봐~"라고 응답을 한다. 이 다른 DNS 서버는 "naver.com 도메인"을 관리하는 DNS 서버이다.
- 이제 Local DNS 서버는 "naver.com 도메인을 관리하는 DNS 서버"에게 다시 "너 혹시 www.naver.com에 대한 IP 주소 있니?"라고 물어본다.
- "naver.com 도메인을 관리하는 DNS 서버"에는 "www.naver.com 호스트네임에 대한 IP 주소"가 있다. 그래서 Local DNS 서버에게 "응! www.naver.com에 대한 IP 주소는 222.122.195.6이야~"라고 응답을 해 준다.
- 이를 수신한 Local DNS는 www.naver.com에 대한 IP 주소를 캐싱을 하고(이후 다른 넘이 물어보면 바로 응답을 줄 수 있도록) 그 IP 주소 정보를 단말(PC)에 전달해 준다.
이와 같이 Local DNS 서버가 여러 DNS 서버를 차례대로 (Root DNS 서버 -> com DNS 서버 -> naver.com DNS 서버) 물어봐서 그 답을 찾는 과정을 Recursive Query라고 부릅니다.
출처 : https://velog.io/@goban/DNS%EC%99%80-%EC%9E%91%EB%8F%99%EC%9B%90%EB%A6%AC
'백엔드' 카테고리의 다른 글
터미널 사용방법 (0) | 2022.09.09 |
---|---|
호스팅은 무엇일까요? (0) | 2022.09.09 |
브라우저와 동작 원리 (0) | 2022.08.25 |
HTTP는 무엇일까요? (0) | 2022.08.21 |
인터넷은 어떻게 작동될까요? (0) | 2022.07.04 |