DNS란?
DNS(도메인 네임 시스템, Domain Name System)는 사람이 이해하기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 시스템입니다. ex) www.example.com → 192.168.1.1 또는 2001:db8::ff00:42:8329로 변환
DNS의 구성요소
- 도메인 네임 스페이스(Domain Name Space) : DNS에서 도메인 이름이 계층적으로 구성된 구조입니다. 예를 들어, www.example.com은 com, example, www로 나눌 수 있습니다. 이 구조는 각 도메인이 어떻게 계층적으로 연결되어 있는지를 나타냅니다.
- 네임 서버(Name Server) : 권한 있는 DNS 서버로, 특정 도메인에 대한 정보를 저장하고 관리합니다. 예를 들어, example.com에 대한 IP 주소 정보를 제공하는 서버입니다.
- 리졸버(Resolver) : 권한 없는 DNS 서버로, 클라이언트의 쿼리를 처리하고 적절한 네임 서버에 요청을 전달합니다. 일반적으로 사용자의 장치에 설정된 DNS 서버를 의미합니다.
DNS 쿼리 방식
- 재귀적 쿼리:
- 클라이언트가 DNS 서버에 IP 주소 요청.
- DNS 서버가 답을 찾을 때까지 다른 서버에 쿼리 전달. 결과를 사용자에게 반환.
- 반복적 쿼리:
- DNS 서버가 다른 네임 서버에 IP 주소 요청.
- 해당 네임 서버는 자신이 알고 있는 정보나 다른 네임 서버 정보를 반환.
리소스 레코드 종류
- A 레코드: IPv4 주소 매핑.
- AAAA 레코드: IPv6 주소 매핑.
- CNAME 레코드: 다른 도메인으로 전달.
- MX 레코드: 메일 서버 지정.
- TXT 레코드: 텍스트 정보 저장.
- NS 레코드: 권한 있는 네임 서버 지정.
DNS는 어떻게 작동하나요?
- 쿼리 시작: 사용자가 "ibm.com" 같은 도메인 이름을 입력하면, 요청이 사용자의 장치에 설정된 재귀 DNS 확인자에게 전송됩니다.
- 재귀 확인자: 재귀 확인자는 먼저 캐시를 확인하여 이미 저장된 IP 주소가 있는지 검사합니다. 만약 없다면, DNS 쿼리를 시작합니다.
- 루트 이름 서버: 재귀 확인자는 루트 이름 서버에 쿼리를 보냅니다. 루트 서버는 해당 도메인에 대한 적절한 TLD(최상위 도메인) 서버의 주소를 반환합니다.
- TLD 이름 서버: 재귀 확인자는 TLD 서버(예: ".com")에 쿼리를 보내고, 이 서버는 해당 도메인에 대한 권한 있는 이름 서버의 주소를 제공합니다.
- 도메인 이름 서버: 확인자는 최종적으로 도메인 이름 서버에 쿼리를 보내고, 이 서버는 DNS 영역 파일을 조회하여 요청된 도메인에 대한 올바른 레코드를 반환합니다.
- 쿼리 해결: 재귀 확인자는 받은 레코드를 TTL(유효 기간) 동안 캐시하고, 최종적으로 IP 주소를 사용자 장치로 반환합니다. 이후 브라우저나 앱은 이 IP 주소를 통해 요청된 웹사이트에 연결합니다.
참고
'CS 준비' 카테고리의 다른 글
| 서브넷 마스크 & 게이트웨이 (0) | 2025.02.10 |
|---|---|
| [네트워크]로드밸런서가 무엇인가요? (0) | 2025.02.10 |
| [네트워크]3-Way Handshake & 4-Way Handshake (0) | 2025.02.10 |
| www.github.com을 브라우저에 입력하고 엔터를 쳤을 때 (1) | 2025.02.04 |
| Q. TCP와 UDP의 차이에 대해 설명해 주세요. (0) | 2025.02.04 |