티스토리 뷰
DNS(Domain Name Service)
www.naver.com
에 접속한다고 했을 때, TCP/IP 연결을 해야하는데 이를 위해서는 IP 주소를 알아야한다. 하지만 네이버의 IP주소는 모르지만 우리는 네이버에 문제 없이 접속할 수 있다. 이 IP 주소를 누가 알 수 있을까? 이걸 알고 있는 데이터베이스가 있다. Domain Name이라함은 결국 이름인데, 이 이름으로 IPv4 주소를 검색해서 그 결과를 알려주는 서비스를 제공하는 것이 바로 DNS이다.
- 분산 구조형 데이터베이스
- 데이터베이스 시스템(DNS 네임서버)의 분산 구성
- 데이터의 영역별 구분(Domain Zone) 및 분산 관리
- 도메인의 네임서버 및 도메인 데이터는 해당 관리주체에 의해 독립적으로 관리된다.
www.naver.com
주소의 구조를 살펴보자. 여기서는 hierarchy 적인 개념이 들어가는데 www
는 naver
에 속한 개념이며, naver
는 com
에 속한 개념이다. 즉 뒤로 갈수록 더 큰 것을 포함하는 구조를 가지고 있다.naver.com
은 Domain Name이라고 하며, www
는 Host Name이라고 한다.
- 트리(tree) 구조의 도메인 네임(Domain Name) 체계
- Domain: 영역, 영토를 의미한다.
- 도메인 네임의 자율적인 생성
- 생성된 도메인 네임은 언제나 유일(Unique) 하도록 네임 체계가 구성된다.
웹사이트 접속
이제 실제로 웹사이트에 접속해보자. www.naver.com
을 접속하려고 하면, 공유기에 설정되어 있는 DNS 주소로 요청을 보내게 된다. DNS 서버는 요청을 받고 해당 요청에 해당하는 IPv4 주소를 알려주고, 이 응답을 받은 PC는 해당 주소로 접속하게 된다.
DNS Cache
- DNS Server에 한번이라도 질의를 보내고 응답을 받은 IP주소는 PC의 메모리에 그 IP주소를 기억하고 있는데, 이를 DNS Cache라고 한다.
- PC마다 DNS Cache를 가지고 있다.
- 이는 실제로 프롬프트에서
display dns
명령으로 확인해 볼 수 있다.
유효 기간
- DNS 서버에서 IPv4 주소를 알려줄 때, 사실은 유효기간과 함께 응답을 준다.
- 이 IP주소의 유효기간은 언제까지야. 이 유효기간이 끝나면 expired 시키고 나한테 다시 물어봐서 사용해
DNS Forwarding
만약 공유기와 DNS 서버의 IP 주소가 같으면 어떻게 될까? DNS Forwarding 기능으로 공유기가 DNS 서버의 역할을 대행해주게 된다. 그렇기 때문에 항상 실제 DNS 서버에 물어보는 것은 아니다.
또한, hosts
파일에 정보를 기술 해 놓으면 DNS 서버에 물어보지조차 않으며, DNS Cache는 유효기간이 만료될 때까지 메모리에 상주하게 되고, 이 정보가 있다면 굳이 DNS에 다시 묻지 않는다.
DNS (Cache) Server와 ROOT DNS
지금까지 이 글에서 말한 DNS Server는 엄밀히는 DNS Cache Server이다. 이름에서부터 어느정도 느낌이 온다. 그럼 얘한테 정보를 알려주는 상위 계층의 DNS가 있다는 말인가? 맞다. 이것이 바로 ROOT DNS이다. 따라서 이하의 글에서는 용어를 정확히 하기 위해 DNS Cache Server와 ROOT DNS를 명확히 구분하도록 할 것이다.
만약에 www.naver.com
이라는 주소에 대한 정보가 DNS Cache Server에 존재하지 않으면 어떻게 할까? DNS Cache Server는 "com
애들을 잔뜩 담당하는 DNS를 알려줘." 라고ROOT DNS 서버에 요청을 한다. 그러면 ROOT DNS는 DNS IP 목록
을 응답으로 보내준다. 응답을 받은 DNS Cache Server는 com
을 담당하는 DNS IP에 "너 naver 라는 이름 알아?" 라고 하나씩 물어본다. 이제 naver라는 정보를 알고 있는 DNS를 만나게 되면 DNS 는 Naver Name Server에 대한 정보를 알려준다. 이제 마지막으로 DNS Cache Server는 Naver Name Server에 "이름이 www인 컴퓨터 있어?" 라고 물어보게 되면 Naver Naver Server가 IP주소를 알려주게 되는 것이며, 이때 DNS Cache Server는 도메인과 IP주소를 쌍으로 저장을 해 놓고 요청에 따라서 응답을 보내주는 것이다.
'Computer science > 네트워크' 카테고리의 다른 글
L4 - 2. TCP, UDP 헤더 형식, TCP연결이라는 착각 (0) | 2022.10.27 |
---|---|
L4 - 1. TCP와 UDP개요, TCP 연결 과정, TCP 연결종료 및 상태 변화 (0) | 2022.10.26 |
L3 - 4. TTL과 단편화, DHCP, ARP, Ping과 RTT (0) | 2022.10.25 |
L3 - 3. IP 헤더 형식, 서브넷 마스크와 CIDR, Brodcast IP 주소, Host 자신을 가르키는 IP 주소 (0) | 2022.10.24 |
L3 - 2. TCP/IP 송수신 구조 (0) | 2022.10.23 |
- Total
- Today
- Yesterday
- 빅데이터
- 백준
- cka
- OS
- kafka
- Hadoop
- elasticsaerch
- DFS
- Flutter
- Python
- BOJ
- kubernetes
- Algorithm
- HDFS
- 네트워크
- 빅데이터를지탱하는기술
- sqoop
- 파이썬
- Elasticsearch
- CSAPP
- logstash
- mahout
- 프로그래머스
- CS
- DP
- oozie
- 이코테
- Espher
- heapq
- GROK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |