과거의 내가 미래의 나에게
Domain Name System 학습(1) 본문
웹서버에 웹사이트의 정보들이 저장되어있고, 사용자는 웹 브라우저를 통해 웹서버의 웹사이트를 가져온다. 그러나 인터넷 상에는 수많은 웹서버들이 있다. 이 널려있는 웹 서버에서 사용자는 자신이 보고싶은 웹 사이트를 가져오기 위해 웹사이트 주소를 입력한다.
여기서 사용자는 아마 보통 문자열로 이루어진 주소를 입력할 것인데, 이를 도메인 주소라고 한다. 하지만 웹 서버는 이러한 도메인 주소를 통해서 갈 수 없는 곳이다. 웹 서버의 주소는 IP 주소를 통해서만 접근할 수 있는데, 이 때 도메인 주소에서 IP 주소로 바꾸어주는 것이 바로 DNS 서버의 역할이다.
DNS(Domain Name System)
DNS(Domain Name System)는 거대한 분산 시스템으로, 웹사이트의 IP 주소와 도메인 주소를 이어주는 시스템이다.
DNS는 Domain Name Space라는 구조를 통해 이루어져있고, Name Server와 Resolver로 구성되어있다.
Domain Name Space
세상에 도메인이 너무 많기 때문에, 전 세계의 모든 도메인 정보를 하나의 DNS 서버로는 구성할 수는 없다. 그렇기에 도메인 주소를 저장하고 있는 서버(네임서버)는 많을 수 밖에 없는데, 이러한 네임서버를 효율적으로 관리하고 사용하기 위해 구조를 만들어내고 이를 도메인 네임 스페이스라고 부른다.
도메인 네임 스페이스에 의하면 도메인 서버들은 계층 구조로 이루어져있다. 도메인 계층 구조는 트리 구조로 나타내며, 각 단계의 도메인은 부모 도메인의 하위 영역에 속한다. 상위 단계 도메인부터 시작해서 하위 단계 도메인으로 내려갈수록 더 구체적인 영역을 나타낸다.
가장 하위에 있는 도메인 서버에 사용자가 원하는 IP 주소가 담겨져 있고, 이를 찾기 위해서는 가장 상단에 있는 루트 도메인 서버부터 각 단계의 공간을 거쳐가야 하는 것이다.
Domain Name Space의 트리 구조
1. 루트 도메인
전 세계에 13개의 원본 root 서버가 존재하며, 한국에서는 미러서버를 설치하여 사용하고 있다.
한국에 미러서버를 설치한게 2003년 쯤이라는 기사글을 보았는데 생각보다 오래되지 않아서 놀랬다!
2. 최상위도메인(Top Level Domain = TLD)
웹사이트의 목적이나 소유자 또는 지리적 위치와 같은 웹사이트의 특정 요소를 인식하는 역할을 한다. 이는 ICANN(국제 인터넷 관리 기구)에서 최상위 도메인을 여러 범주로 분류하고 관리하고 있다. 물론 ICANN에서 관리되지 않는 개별적인 회사에서 구성한 비공식 TLD도 존재한다.
1. 일반 최상위 도메인: 일반 상업용 도메인으로, 기업이나 개인 등 모두에게 열려있다.(ex: .com, .net)
2. 국가 코드 최상위 도메인: 국가별 도메인으로 각 국가와 지역을 대표하는 도메인이다. (ex: .kr, .us)
3. 스폰서 최상위 도메인: 특정 그룹이나 조직을 대표하는 도메인이다. (ex: .edu, .gov)
4. 인프라 최상위 도메인: 인프라를 위한 도메인으로 기술적인 용도로 사용된다고 한다!
3. 2차 도메인(Second Level Domain)
TLD 하위에서 관리되는 서브 도메인으로 보통 기업이나 개인의 식별자로 사용된다. 국가 도메인의 경우 example.co.kr같은 형식으로 3차 도메인까지 나뉘어지는 경우도 있다.
4. 서브 도메인
서브 도메인은 2차 도메인(3차가 있으면 3차 도메인)의 하위 영역을 나타내는데, 특정 서비스, 부서, 지리적 위치 등을 구분하기 위해 사용한다.
서브 도메인을 활용하여 인터넷 서비스의 종류를 구분할 수도 있는데, 우리가 흔히 사용했던 www도 서브 도메인 중에 하나이다. www는 앞서 살펴보았듯 웹 문서 서비스인데, 과거에는 웹 문서 서비스와 다른 인터넷 서비스(이메일, FTP 등)들을 구분하기 위해 사용되었지만, 근래에 들어 웹 서비스가 압도적으로 사용률이 높아짐에 따라 굳이 www를 쓸 필요가 없어졌고 그에 따라 최근에는 www이 사라지고 있는 추세이다.
이러한 도메인 네임 스페이스 구조를 맞춰서 아래와 같이 도메인 주소를 구성하게 된다.
참고 문서
- DNS 서버 유형 - https://www.cloudflare.com/ko-kr/learning/dns/dns-server-types/
- [PowerDNS] DNS 이론 1 - 도메인 네임 스페이스 - https://susoterran.github.io/other/dns/
- TLD란? 최상위 도메인을 위한 입문 가이드 - https://ko.wix.com/blog/post/what-is-tld
'CS' 카테고리의 다른 글
HTTP 학습 (3) - HTTP 메시지 (0) | 2023.10.27 |
---|---|
HTTP 학습 (2) - 동작 과정과 특징 (0) | 2023.10.22 |
HTTP 학습(1) (0) | 2023.10.15 |
Domain Name System 학습(3) (0) | 2023.08.12 |
Domain Name System 학습(2) (0) | 2023.08.02 |