도메인 네임 시스템(Domain Name System, DNS) 은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.
특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해준다. 도메인 네임 시스템은 흔히 "전화번호부"에 비유한다.
이 DNS를 운영하는 서버를 네임서버(Name Server)라고 한다. 서버 구축에 대한 지식이 있으면 어렵지 않게 구성하는 것이 가능하다고 한다. 규모가 있는 사이트의 경우에는 네임서버를 자체 운영하는 경우가 많다.
가볍게 영상하나 보고 시작하도록 하자. 끝나고 나서 한번 더보자. DNS가 세삼 대단하다는 것을 느낄 수 있을 것이다.
1단계. 사용자 시스템은 DNS 애플리케이션의 클라이언트 측을 실행한다.
2단계. 브라우저는 URL에서 호스트 이름 example.com를 추출하고 호스트 이름을 DNS 애플리케이션의 클라이언트 측에 전달한다.
3단계. DNS 클라이언트는 호스트 이름이 포함 된 쿼리를 DNS 서버로 보낸다.
4단계. DNS 클라이언트는 DNS 서버로부터 호스트 이름에 대한 IP 주소(93.184.216.34)가 포함 된 응답을 받는다.
5단계. 브라우저가 DNS에서 IP 주소를 받으면 해당 IP 주소의 포트 80에있는 HTTP 서버 프로세스에 대한 TCP 연결을 시작할 수 있다.
🚨 주의. 기본 동작원리가 이렇다는 것이다. 사실 이것보다 더 복잡하다. 밑에서 설명하겠다.
DNS를 잘못 설정할 경우 인터넷 이용에 문제가 생길 수 있다. 신뢰할 수 없는 DNS는 해킹, 파싱 등에 노출되므로, 신뢰할 수 있는 DNS 서버만 이용하는 것이 권장된다.
네트워크 속성을 보면 저는 KT를 쓰고 있어서 DNS가 KT인 것을 알 수 있다.
그렇다면 전세계의 DNS가 하나이고 모든 컴퓨터가 그쪽으로 접속해서 IP를 반환받을까? 버틸 수 있는 컴퓨터가 존재할까...? 당연히 DNS는 한개가 아니다.
DNS의 특징은 분산 계층 데이터베이스이다. DNS를 많은 서버로 나누고 이들을 계층 형태로 구성하며 전 세계로 분산시켜놓았다.
도메인 주소 맨 뒤에는 사실 .
이 생략되어 있다. 만약 URL이 blog.example.com
이라면 사실은 blog.example.com.
이라는 도메인이 있는 셈이다. 그리고 이에 해당하는 IP를 찾아가는 과정을 설명하자면 아래와 같다.
1단계. .
에 해당하는 Root DNS 서버 중 하나에 먼저 접속한다. 그리고 그 서버에서 최상위 레벨 도메인이 .com
을 갖는 Top-level DNS 서버 IP 주소를 찾는다.
2단계. 다시 Top-level DNS 서버에 접속합니다. 다시 그 서버에서 .example.com
을 갖는 책임서버(Second-level) DNS IP 주소를 찾습니다.
3단계. .example.com
을 갖는 책임서버에 접속한다. 거기서 마침내 blog.example.com
도메인에 해당하는 IP를 찾을 수 있게 되는 것이다.
출처 : https://www.cloudflare.com/ko-kr/learning/dns/glossary/dns-root-server/
✅ Root DNS -> Top-level 서버 -> 책임서버 이런식으로 찾아내려가는 계층구조로 이해하면 된다.
DNS와 특정 프로토콜들의 제한, 즉 파편화되지 않은 사용자 데이터그램 프로토콜(UDP) 패킷의 실질적인 크기 제한으로 인해 루트 서버 수를 13개 서버 주소로 제한하도록 결정되었다(A부터 M까지 있음). 2020년 1월 11일 기준으로 애니캐스트 어드레싱을 사용하면 루트 서버 인스턴스의 실제 수를 더 크게 잡을 수 있으며 그 수는 1034이다.
최상위 도메인(Top-level domain, TLD)은 인터넷에서 도메인 네임의 가장 마지막 부분을 말한다. 예컨대 ko.wikipedia.org
의 최상위 도메인은 .org
가 된다. 최상위 도메인은 .com
과 같은 일반 최상위 도메인과 .kr
같은 국가 코드 최상위 도메인으로 나뉜다.
가령, 베리사인 글로벌 레지스트리 서비스 사는 com
TLD에 대한 TLD 서버를 담당하고 있다고 한다.
책임 DNS 서버. 조직의 자체 DNS 서버, 조직의 명명 된 호스트에 대한 IP 매핑에 권한있는 호스트 이름을 제공한다. 조직 또는 서비스 제공 업체에 의해 유지 보수 가능하다.
등록 과정을 설명하기전에 어떤 기관과 관계자가 있는지 먼저 알아보도록 하겠다.
com
을 관리하고, 에듀코즈 사가 edu
를 관리하고 있다.이제 DNS 등록 과정을 알아보자.
example.com
이라는 도메인을 부여하고 싶다.example.com
과 IP, 약간의 수수료를 Registrar 등록대행자에게 보내면서 등록 신청을 한다. example.com
의 NS(Name Server)는 a.iana-servers.net이라는 것을 Registry 등록소에게 알려준다.