[Frontend-Network] 3. DNS와 작동 원리
오늘은 DNS와 그 작동 원리에 대해서 알아보도록 하겠습니다. 이전 글을 참고하여 차례대로 봐주시면 읽으실 때 도움이 될 것입니다.
1. 인터넷은 어떻게 동작하는가? ~ 2. 도메인 주소란? coding-dong-dang.tistory.com/25
1 DNS 서버 (도메인 서버)
이전 글에서도 언급했듯이 DNS란 사람이 읽을 수 있는 형태로 IP 주소를 도메인 이름으로 변환한 것입니다. 그렇다면, 변환해주는 역할을 하는 무언가가 있어야 합니다. 그것이 바로 DNS Server(도메인 서버) 입니다!
2 DNS 원리 (도메인 서버 질의-응답 과정)
DNS 시스템은 이름(도메인 주소)과 숫자(IP 주소) 간의 매핑을 관리하는 기능을 제공합니다. 우리가 웹 서버에 접속하여 네이버의 도메인 주소(www.naver.com)를 입력하면 'www.naver.com'를 가지고 있는 DNS 서버로 도메인 주소에 대한 요청을 보냅니다. 이러한 과정을 질의라고 합니다. 이후, DNS 서버가 IP 주소로 변환하여 응답함으로써 최종 사용자(End User)가 웹 브라우저에 입력한 서버로 접근이 되는 것입니다.
3 DNS 원리 심화 (번호 정리)
아래 루트 DNS 개념, 재귀 질의 개념 등이 포함되어 있기 때문에 다소 생소할 수 있습니다! 비전공자분들은 생략해도 무관할 것 같습니다!
1. PC의 웹 브라우저에서 'www.google.com'과 같은 형식으로 도메인 주소로 웹에 접근합니다.
2. PC에 미리 지정되어 있던 Primary DNS Server 또는 Secondary DNS Server으로 우리가 접근하게 될 도메인 주소에 대한 IP 주소를 질의합니다. *지금부터 Primary DNS Server 및 Secondary DNS Server는 통합하여 Local DNS Server로 지칭합니다.
3. Local DNS Server에 우리가 검색한 주소가 있다면 응답하게 되고, 사용자는 웹에 정상적으로 접근할 수 있게 됩니다. 근데, 만약에 우리가 검색한 주소가 없다면 어떻게 될까요?
4. 없을 경우, Local DNS Server는 다른 DNS Server들과 통신하기 시작합니다.
4-1. Root DNS Server에게 우선적으로 질의합니다. 이때, Local DNS Server에는 Root DNS 서버의 정보가 지정되어 있어야 합니다. Root DNS 서버도 모를 경우 Root DNS 서버가 자신이 알고 있는 다른 DNS 서버를 소개해주며 통신을 유도합니다. *Root DNS란 특별한 존재입니다. 전 세계에 13대 밖에 구축이 안 되어 있습니다. 루트 영역이라는 특별한 도메인 영역을 보유하고 있으며, 최상위 도메인에 대한 네임 서버를 반환합니다.
4-2. Root DNS 서버가 소개해준 서버는 "com" 도메인을 관리하는 DNS 서버입니다. Local DNS 서버가 "com" DNS 서버에게 질의를 합니다. 없을 경우 "com" DNS 서버가 "google.com" DNS 서버를 소개해주며 통신을 유도합니다.
4-3. Local DNS 서버가 다시 "google.com" DNS 서버에 접근해 도메인 주소를 질의합니다. "www" 이라는 레코드를 보유하고 있다면 응답을 해주고 없다면 질의를 포기하고 오류를 출력합니다.
5. "naver.com" 도메인 서버로부터 응답을 받은 Local DNS 서버는 IP 주소를 캐싱(임시 저장, 다른 PC가 물어볼 경우 바로 응답할 수 있도록 임시로 저장합니다.)합니다.
6. 캐싱한 정보를 질의한 PC에게 응답합니다. 비로소, 우리는 웹에 접근할 수 있게 됩니다.
Local DNS 서버가 위와 같이 여러 DNS 서버를 차례대로 물어봐서 답을 찾는 과정을 재귀 질의라고 합니다.
영어로 'Recursive Query'라고 부르고 있습니다.
4 URL, Host Name, Top-Level Domain Name, Second-Level Domain Name
아래는 URL, Host Name, Top-Level Domain Name, Second-Level Domain Name에 대한 형태입니다.
http://www.naver.com/index.html = URL www.naver.com = Host Name .com = Top-Level Domain Name .naver.com = Second-Level Domain Name |
오늘도 긴 글 읽어주셔서 감사합니다.
공감 버튼 꼭 눌러주세요!