DNS (Domain Name System) 기초
DNS (도메인 이름 시스템)는 인터넷의 주소록과 같습니다. 사용자가 웹 브라우저에 입력하는 도메인 이름(Domain Name)을 해당 웹사이트가 실제로 위치한 서버의 IP 주소로 변환하는 역할을 합니다.
DNS가 없으면, 사용자는 웹사이트에 접속하기 위해 복잡한 IP 주소를 직접 입력해야 합니다.
1. 작동 원리: 이름 변환 과정 (Resolution)
사용자가 웹 브라우저에 도메인 이름을 입력하면, IP 주소를 얻기 위해 여러 단계를 거칩니다. 이 과정을 도메인 이름 확인(Name Resolution)이라고 합니다.
- 리졸버에게 요청: 사용자의 기기(브라우저)는 DNS 쿼리를 DNS 리졸버(Resolver)에게 보냅니다. (일반적으로 ISP나 구글 같은 공용 서버)
- 루트 서버 문의: 리졸버는 루트 네임 서버(Root Name Server)에게 문의하여 최상위 도메인(TLD,
.com,.org등)을 관리하는 서버 주소를 얻습니다. - TLD 서버 문의: TLD 네임 서버에게 문의하여 해당 도메인(예:
google.com)을 관리하는 권한 있는 네임 서버(Authoritative Name Server) 주소를 얻습니다. - 최종 IP 주소 획득: 권한 있는 네임 서버에게 최종적으로 문의하여
www.google.com에 해당하는 IP 주소를 얻어 사용자에게 반환합니다.
2. DNS의 계층 구조
DNS는 피라미드 형태의 계층적 분산 데이터베이스 구조로 되어 있습니다.
| 계층 | 역할 | 예시 |
|---|---|---|
| Root Domain | 계층 구조의 최상단. 전 세계 13개 논리적 서버 그룹이 관리. | . (점) |
| Top-Level Domain (TLD) | 국가 코드(kr, jp) 또는 일반 도메인(com, org, net). |
.com |
| Second-Level Domain | 사용자가 구매하는 고유 도메인. | google |
| Subdomain | 웹사이트 내의 특정 서비스 영역. | www, mail |
3. DNS의 통신 프로토콜
DNS 쿼리 통신은 주로 UDP (User Datagram Protocol)를 사용합니다.
- 이유: DNS 쿼리는 단발적이고 작은 요청이므로, 신뢰성(TCP)보다 빠른 응답 속도(UDP)가 훨씬 효율적이기 때문입니다.