들어가기 앞서
DNS를 알아보기 앞서 도메인 개념에 대해 이해하고 가자
✔ 도메인(=domail)이란 ?
ip는 사람이 이해하고 기억하기 어렵기 때문에 이를 위해 ip에 이름을 부여한 것이다.
✔ 도메인 구성 요소
- 인터넷 상의 모든 도메인은 ".(dot)" 또는 루트(root)라 불리는 도메인 아래에 그림과 같이 나무를 거꾸로 위치시킨 역트리(inverted tree)의 계층적 구조로 구성되어 있다.
- 루트 도메인 바로 아래의 단계를 1단계 도메인 또는 최상위 도메인(TLD, Top Level Domain)이라고 부르며, 그 다음 단계를 2단계 도메인(SLD, Second Level Domain)이라고 부른다.
- 도메인은 일반 최상위 도메인과 국가 최상위 도메인으로 구분할 수 있으며 여기서 일반 최상위 도메인은 다시 스폰서 도메인과 언스폰서 도메인으로 구분된다.
1) 국가별 최상위 도메인 : kr(대한민국), us(미국), jp(일본), cn(중국), uk(영국), it(이탈리아), se(스웨덴) 등등
2) com : 영리를 목적으로 하는 기업이나 기관
3) net : 네트워크를 관리하는 기관
4) org : 비영리 또는 com, nwt, edu, gov 영역에 포함되지 않는 기관
5) mil : 군사기관
6) edu : 교육기관
7) gov : 정부기관
8) int : 국제적인 성격을 가진 기관
9) aero : 항공회사
10) biz : 비즈니스
11) coop : 조합 또는 협회
12) info :각종 정보 제공
13) museum : 박물관
14) name : 개인 도메인 등록자
15) pro : 전문 직업인
터미널에서 nslookup 명령어를 이용해 도메인 주소의 ip 주소를 확인할 수 있다.
✅ DNS(Domain Name System)란 ?
- 웹사이트의 IP 주소와 도메인 주소를 이어주는 시스템 또는 이런 역할을 하는 서버 컴퓨터 즉 Domain Name Server를 말한다.
- 로컬 PC를 나타내는 127.0.0.1은 localhost로 사용할 수 있지만, 그 외의 모든 도메인 이름은 일정 기간 동안 대여해 사용한다.
✅ DNS 개념
웹 사이트의 데이터가 저장되어 있는 호스팅 서버는 IP 주소가 할당되어 있는 실제 웹 사이트 주소라 할 수 있다.
DNS 서버는 이런 IP 주소를 특정 도메인 주소와 같다는 기록을 저장해두고 인터넷 사용자들이 도메인 주소를 검색했을 때 IP 주소로 연결되게 해준다.
✅ DNS 동작 방식
Local DNS -> Root DNS -> com DNS -> naver.com DNS
1. 브라우저에서 Nesite.com을 검색하고, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청함 (브라우저 기본 DNS 설정이 통신사 DNS 서버이기 때문)
2. ISP 서버에선 캐시 데이터가 없다는 걸 확인하고 루트 DNS 서버에게 어디로 가야 하는지 요청함(캐시가 있다면 8.로 건너 뜀.)
3. 루트 서버는 TLD DNS 서버 주소만 관리하기 때문에, ***.com 도메인을 보고는 COM 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내함.
4. ISP 서버는 COM 서버에게 어디로 가야 하는지 다시 요청함.
5. COM 서버는 가비아 DNS 서버에서 해당 도메인이 관리되고 있는 걸 확인하고 안내함.
6. ISP 서버는 가비아 서버에게 또 다시 요청함.
7. 가비아 서버는 “Nesite.com = 12.123.123.123”이라는 정보를 확인하고 이 IP를 알려줌. 동시에 ISP 서버는 해당 정보를 캐시로 기록해 둠.
8. ISP 서버는 브라우저에게 힘들게 알아 낸 12.123.123.123 주소를 안내함.
9. 브라우저는 12.123.123.123 IP 주소를 갖고 있는 호스팅 서버에게 웹사이트를 출력하라고 요청함.
10. 드디어 보임.
이와 같이 재귀적 질의를 통해 ip 주소를 찾는 과정을 Recursive Query라고 한다.
✅ DNS 계층적 구조
① 기지국 DNS 서버 (Local DNS Server)
URL에 Domain Name을 입력했을 때 해당 IP를 찾기위해 가장 먼저 찾는 DNS 서버이다.
기본적으로 컴퓨터의 LAN선을 통해 인터넷이 연결되면, 인터넷을 사용할 수 있게 IP를 할당해주는 통신사(KT, SKT, LG 등..)에 해당되는 각 통신사의 DNS 서버가 등록된다.
Authoritative DNS Server - 도메인 네임 && IP 주소
Non-Authoriative DNS Server - 도메인 네임 || IP 주소
② Root DNS 서버
기지국 DNS 서버에 해당 도메인에 대한 IP주소가 없을 때 기지국 DNS 서버는 Root DNS 서버에게 물어보게 된다.
Root DNS는 최상위 DNS 서버로부터 해당 DNS부터 시작해 아래 딸리 node DNS 서버에게로 차례대로 물어보게된다.
③ 최상위 도메인 (Top-Level Domain)
Root DNS Server : 나한탠 해당 도메인 주소가 없다. 대신 hwan.co.kr의 주소중 .kr의 주소를 알고 있으니, kr DNS주소에게 물어봐라.
기지국 DNS 서버는 다시 kr DNS 서버에게 물어보게 된다.
✅ DNS 구성 요소
DNS Cache
DNS Cache라는 Cache를 사용해 자주 쓰는 Domain Name 주소를 저장해 놓는다.
Resolver
웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로 전달하고 네임 서버로부터 정보(도메인 이름과 ip 주소)를 받아 클라이언트에게 제공하는 기능을 수행한다.
하나의 네임 서버에게 DNS 요청을 전달하고 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받아온다.
Stub Resolver
리졸버의 모든 기능을 클라이언트 호스트에 구현하는 것은 단말 시스템 자원의 한계와 같은 제약이 있다.
리졸버의 대부분의 기능을 DNS 서버에 구현하고 클라이언트 호스트에는 리졸버의 단순한 기능만을 지닌 리졸버 루틴을 구현한 것이다.
Stub Resolver는 수 많은 네임 서버의 구조를 파악할 필요 없이 리졸버가 구현된 네임 서버의 IP주소만 파악하면 된다.
도메인에 대한 질의를 받은 스터브 리졸버는 네임 서버로 DNS 쿼리를 날리고 네임 서버로부터 최종 결과를 응답 받아 웹 브라우저로 전달하는 인터페이스 기능만을 수행한다.
🔗 출처
'CS > 네트워킹' 카테고리의 다른 글
[네트워킹] Proxy (프록시)란 ? (0) | 2022.03.18 |
---|---|
[네트워킹] NAT (Network Address Translation) (0) | 2022.03.10 |
[네트워킹] 대칭키(비밀키) & 공개키(비대칭키) (0) | 2022.03.07 |
[네트워킹] Unicast, Broadcast, Multicast, Anycast (0) | 2022.03.05 |
[네트워킹] DHCP (Dynamic Host Configration Protocol) (0) | 2022.03.05 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!