이 글은 부산대학교 탁성우 교수님의 컴퓨터 네트워크 강의 자료를 바탕으로 진행됩니다.
DNS란?
DNS(Domain Name System)란 무엇일까?
사람이 읽을 수 있는 Domain(ex) cse.pusan.ac.kr
)을 IP주소로 변환하는 시스템이다.
IP를 그대로 웹 주소로 사용하면, 가독성도 떨어지고 외우기가 어렵기 때문에 DNS를 통해서 보통 알기 쉬운 도메인을 사용한다.
DNS의 특징
- 계층 구조(Hierarchical)
- 확장 가능성(Scalability)
- 최상위에 Root DNS Server가 존재하고, 그 아래로 Node가 연결되어 있다.
- 분산 데이터베이스(Distributed)
- 하나의 Server에 몰아서 저장하지 않는다.
- 도메인 계층마다 각각 다른 서버에 존재한다.
- UDP를 통해서 진행된다.
DNS의 구성
- DNS Resolver
- Local DNS Server
- Root DNS Server : DNS Server에서 가장 먼저 Query가 날아가는 서버.
- 전 세계적으로 13개밖에 존재하지 않는다.
- Top-Level DNS Server
- kr, jp, cn.. 등 국가 식별자로 사용한다.
- com, net, org, bix.. 등 일반적으로도 사용된다.
- edu, gov, mil 등 특수한 경우에도 사용된다.
- Second-Level DNS Server
- 계층에서 제일 아래에 위치하는 Server이다.
www.google.co.kr
이 도메인이라면, co가 SLD가 되는 것이다.
DNS의 동작 원리
- Web Browser에서 Local DNS Server로 DNS Query 전송.
www.naver.com
의 IP주소를 알려주세요!- Local DNS의 DNS Cache에 해당 IP주소가 있는가?
- 없으면, 아래의 단계를 거쳐야 한다.
- Local DNS에서 Root DNS로 DNS Query 이어서 전송.
www.naver.com
의 IP 주소를 알고 계신가요?
- Root DNS에서 Local DNS로 DNS Response 전송.
- 저는 모르지만,
.com
도메인을 관리하는 Name server의 이름과 IP를 알려드릴게요! - TLD(Top-Level DNS Server)에 전달을 하는 것이다.
- 저는 모르지만,
- Response에서 받은 Name server의 IP로 DNS Query 전송.
- 혹시
www.naver.com
의 IP 주소를 아시나요?
- 혹시
- NS에서 Local DNS로 DNS Response 전송,
- 저는 모르지만,
naver.com
도메인을 관리하는 Name server의 이름과 IP를 알려드릴게요! - SLD(Second-Level DNS Server)에 전달을 하는 것이다.
- 저는 모르지만,
- Response에서 받은 Name server의 IP로 DNS Query 전송.
- 혹시
naver.com
의 IP 주소를 아시나요?
- 혹시
naver.com
DNS가 Local DNS로 응답을 전송한다.- 네! 해당 IP는 XXX.XXX.XXX.X 입니다!
- 이후 Local DNS의 Cache에 일정 시간동안 저장한다.
DNS는 계층(Hierarchical)적 구조를 갖고 있기 때문에, 다음과 같이 모든 계층을 거쳐 IP를 얻어낸다.