본문 바로가기

프로그래밍

The 2021 Web Developer Readmap 하나씩 따라하기-(1)DNS and how it works?

https://levelup.gitconnected.com/the-2020-web-developer-roadmap-76503ddfb327

 

The 2021 Web Developer Roadmap

Learn to become a Frontend, Backend, Fullstack, or DevOps developer with this visual guide — no CS degree required

levelup.gitconnected.com

 

위에 링크에서 가져온 2021 Web Developer Roadmap에 있는 내용 중 천천히 하나씩 공부해보려 한다.

오늘은 빨간 색으로 되어있는 DNS and how it works? 에 대해 알아보고자 한다.

 

DNS란 무엇인가?

DNS는 Domain Name System의 약자이다. DNS가 무엇인지 검색해보면 "인터넷 전화번호부"라는 설명이 나온다. 보통 기계는 ip주소(192.0.0.0)로 주소를 찾는데 숫자로만 되어있으면 사람이 기억하거나 읽기 불편하다. 그래서 사람이 읽을 수 있는 도메인 이름(www.tistory.com)을 만든 다음 실제 IP주소로 변환한다.

 

DNS의 작동방식

 

DNS의 작동방식이다.

1) 먼저 사용자는 웹 브라우저를 연 다음 주소창에 www.example.com을 입력하고 엔터를 누른다.   

2) 그러면 중간에 DNS resolver가 주소를 받는다. DNS resolver 가 하는 일은 무엇일까? DNS resolver는 웹 브라우저로부터 www.~~ 같은 호스트 네임을 받는다. 그리고 이 호스트 네임으로부터 실제 ip주소를 추적하는 일을 한다.

3) DNS resolver는  www.example.com에 대한 요청을 DNS root name server 에 전달한다. root name server 는 DNS의 루트 존이다. 이 루트존에 있는 루트 네임 서버중 하나에게 도메인 이름에 대한 ip주소를 확인을 한다. 루트 네임 서버는 전 세계적으로 13개만 존재하는데 루트 네임 서버는 밑에 TLD(Top level domain)을 다루는 네임서버이다. 여기서 ip주소를 바로 확인할 수는 없지만 TLD네임서버들의 위치를 알고 있기 때문에 TLD에 대한 네임서버를 준다.

4) DNS resolver는 .com도메인의 TLD 서버 중 하나에 전달한다. 그리고 다시 도메인 이름에 대한 IP주소를 알고 있는지 확인한다. .com 도메인의 TLD이름서버는 www.example.com   의 정확한 IP주소는 모를 수 있지만 이것과 연관된 네임 서버(위에 그림에서는 Amazon Route 53 이다. )를 알려줄 수 있다.(알려준 네임 서버는 1개가 아닐 수 도 있다. 정확히 말하면 관련된 네임 서버를 알려준다.)

5) 그러면 다시 알려준 네임 서버에게 가서 IP주소를 확인한다.

6) 네임 서버가 IP주소를 찾으면 전달한다. 

7) DNS resolver는 받은 ip주소가 사용자에게 필요한 주소이기 때문에 IP주소를 웹 브라우저로 보낸다. 

8) 주소를 받은 웹 브라우저는 IP주소로 www.example.com에 대한 요청을 보낸다. 

9) 실제로 IP주소에 할당되어 있는웹 서버는 웹 브라우저로 정보를 반환한다.

 

위에서 찾은 전화번호부 예시를 들어서 알기 쉽게 설명해보겠다.

짱구(사용자) : 철수야 맹구 전화번호 알아?

철수(DNS resolver) : 음 모르겠지만 루트 네임 서버는 알거야 루트네임서버야 전화번호 알아?

루트네임서버 : 아니 몰라 하지만 전화번호부가 어딨는지는 알아 그거 떡잎마트에 있어

철수 : (떡잎마트로 찾아가 떡잎마트 직원인 TLD에게) TLD야 맹구 전화번호알아?

TLD : 아니 몰라 근데 여기 전화번호부 책 10개중에서 어디에 있는지는 알아 A 전화번호부책 찾아봐

철수 : 전화번호부책아 맹구 전화번호 알아?

전화번호부책(네임서버) : 응 알아 전화번호는 010-0000-0000이야