DNS란?
DNS(Domain Name System)는 인터넷에서 도메인 이름을 IP 주소로 변환하고, 이러한 도메인 이름과 관련된 다양한 정보를 관리하는 시스템입니다.
DNS는 전 세계적으로 사용되며, 웹 브라우저, 이메일 클라이언트, 파일 전송 및 기타 네트워크 서비스에서 도메인 이름을 IP 주소로 해석하여 통신을 가능하게 합니다.
DNS를 사용하면 복잡한 IP주소 대신 example.com과 같은 도메인 이름을 입력해도 원하는 웹 사이트로 편리하게 갈 수 있습니다.
그럼 어떻게 수많은 IP를 도메인 이름으로 매핑해 주는지, DNS를 어떻게 구성하는지에 대해 알아보겠습니다.
DNS 동작 방식
1. 사용자가 입력한 도메인(www.gabia.com)의 요청은 일반적으로 로컬 DNS 캐시를 확인하여 도메인 정보를 확인하지만, 캐시 정보가 없는 도메인은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS 해석기로 라우팅 됩니다.
2. ISP의 DNS resolver는 요청(www.gabia.com)에 대한 요청을 DNS root name server에 전달합니다.
3. 다음 root name server는 전 세계의 DNS 계층을 관리하고 최상위 도메인(TLD, Top-Level Domain) 서버의 IP주소를 ISP name server에 제공합니다. (com, net, org 등)
4. ISP name server는 이 주소로 .com 도메인의 TLD name server 서버 중 하나의 서버에 전달됩니다.
5. 이 요청은 네임 서버에 저장되어 있는 가비아의 네임서버(ns.gabia.com, ns1.gabia.co.kr, ns.gabia.net)로 ISP name server에 응답합니다.
6. ISP name server는 제공받은 네임서버 주소중 하나를 선택하여 www.gabia.com에 대한 요청을 전달합니다.
7. 가비아의 name server는 저장되어있는 도메인의 호스팅 영역(gabia.com)에서 www.gabia.com에 대한 레코드(A레코드)를 찾아 웹 서버의 IP 주소 211.115.83.234 등 연관된 값을 받고 이 주소를 ISP name server에 반환합니다.
8. ISP name server는 입력된 도메인(www.gabia.com)의 IP주소를 확보하여 웹 브라우저로 반환합니다. 또한, 이후 해당 도메인으로의 접속을 빠르게 응답하기 위해 지정된 TTL로 IP 주소를 캐싱합니다.
9. 이러한 과정으로 획득한 IP주소로 www.gabia.com 에 대한 요청을 전송하여 서버를 호출합니다.
10. 211.115.83.234에 있는 다양한 리소스들이 웹 브라우저나 기타 정해진 방식으로 제공됩니다.
해당 과정은 가비아의 ns레코드로 지정하였을 때 일어나는 과정을 설명한 것입니다.
만약 GCP의 cloud dns, AWS의 route 53, Azure의 azure dns의 ns레코드를 지정하여 사용하면 5번 과정에서 해당 ns레코드에 등록된 name server로 라우팅이 됩니다.
정리하자면 DNS 서버의 주소는 다음과 같이 되어있습니다.
그리고 도메인의 문자 구조는 아래와 같습니다.
다음 글은 DNS서버를 직접 구성하는 방법을 알아보겠습니다.