DNS란 ?
브라우저가 인터넷 자원을 로드할 수 있도록 도메인 이름을 IP 주소로 변환
4개의 DNS 서버가 관련된다.
-
DNS recursor : 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버
-
Root nameserver : 호스트 이름을 IP 주소로 변환하는 첫번째 단계
-
TLD nameserver : 특정 IP 주소 검색의 다음 단계이며, 호스트 이름의 마지막 부분을 호스팅 ex) example.com에서 TLD 서버는 “com”
-
Authoritative nameserver : 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트의 이름의 IP 주소를, 초기 요청을 한 DNS recursor에게 돌려 보낸다.
authoritative DNS server 와 recursive DNS resolver 차이
- recursive DNS resolver는 DNS 조회 초기에 캐싱을 하며 레코드가 없으면 시간 초과되거나 오류를 반환한다.
- authoritative DNS server는 실제로 DNS 리소스 레코드를 보유하고 담당하는 서버이며 하위 도메인에 대한 쿼리인 경우 CNAME 레코드 저장을 담당
DNS 조회 8단계
- 사용자가 웹 브라우저에 ‘example.com’을 입력하면, recursive DNS resolver가 이를 수신
- 이어서 resolver가 DNS Root nameserver(.)를 쿼리
- Root nameserver가, 도메인에 대한 정보를 저장하는 TLD nameserver의 주소로 resolver에 응답
- resolver가 .com TLD에 요청
- TLD 서버가 도메인 이름 서버의 IP 주소로 응답
- 마지막으로, recursive DNS resolver가 도메인의 이름 서버로 쿼리를 보낸다.
- 이제, example.com의 IP 주소가 이름 서버에서 resolver에게 반환
- 이어서, dns resolver가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답
- 브라우저가 IP 주소로 HTTP 요청을 보낸다.
- 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환
DNS 확인자란?
DNS 조회의 첫번째 중단점이며, 최초 요청을 한 클라이언트 처리를 담당.
3가지 유형의 DNS 쿼리
- 재귀 쿼리 : resolver가 레코드를 찾을 수 없는 경우, DNS 클라이언트는 DNS 서버가, 요청한 자원 레코드 또는 오류 메시지를 사용하여 클라이언트에 응답하도록 요구
- 반복 쿼리 : DNS 클라이언트는 DNS 서버가 가능한 최상의 응답을 반환하도록 한다. 하위 수준의 도메인 네임스페이스에 대해 권한있는 DNS 서버에 대한 참조를 반환
- 비재귀 쿼리 : DNS resolver 클라이언트의 쿼리를 받은 DNS 서버가 해당 레코드에 대해 권한이 있거나 캐시 내부에 해당 레코드를 갖고 있어, DNS 서버가 액세스 권한을 갖고 잇는 레코드를 쿼리할때 발생
출처