출처: https://kinsta.com/knowledgebase/what-is-dns/

DNS(Domain Name System)

DNS는 쉽게 말해 전화번호부이다. DNS를 다루는 거의 모든 글에서 전화번호부라고 소개를 하고 있지만 역시 이 비유보다 나은 걸 못찾겠다. 우리는 무수히 많은 컴퓨터 기기가 연결된 인터넷을 매일 사용하고 있다. 그리고 컴퓨터끼리 아무렇지 않게 통신을 하고 도메인을 통해 원하는 사이트에 접속을 한다. 여기서 이 도메인은 우리 같은 사람이 읽기 쉬운 문자로 되어 있다. 하지만 컴퓨터는 이러한 문자들이 뭘 뜻하는 건지 전혀 알지 못한다. 실제로는 각 컴퓨터 호스트 간에 통신을 하기 위해서는 IP주소를 알아야 하고, 이러한 IP주소를 우리가 읽기 쉽게 문자로 표현한 것이 도메인이다. 이렇게 도메인을 IP주소로, IP주소를 도메인으로 바꾸어 주는 역할을 하는 녀석이 DNS이다.

전화번호부라고 한 이유가 이것이다. 숫자로 된 외우기 힘든 IP주소를 쉬운 문자로 매핑해주는 역할을 하기 때문이다. 

 

네임 서버(Name Server)

DNS가 도메인을 IP주소로 바꾸기 위해서는 도메인 네임 스페이스의 트리 정보가 필요하다. 이때 이 정보를 갖고 있는게 네임 서버이다. 리졸버가 요청한 도메인 이름에 대한 IP주소 정보를 다시 리졸버로 넘겨주는 역할을 한다.

 

신뢰할 수 있는(권환 있는) DNS

권한 있는 DNS 서버는 실제로 DNS 레코드를 보유하고 담당하는 서버이다. 이를 통해 DNS 쿼리에 응답하여 도메인 이름을 IP 주소로 변환한다.

 

재귀적 DNS

재귀적 DNS는 DNS 레코드를 소유하고 있지 않지만 사용자를 대신해서 DNS 정보를 가져올 수 있는 중간자의 역할을 한다. 재귀적 DNS가 일정 기간 동안 캐시된 또는 저장된 DNS 레퍼런스를 가지고 있는 경우, 소스 또는 IP 정보를 제공하여 DNS 쿼리에 답을 한다. 그렇지 않다면, 해당 정보를 찾기 위해 쿼리를 하나 이상의 신뢰할 수 있는 DNS 서버에 전달한다.

 

DNS 조회 과정

출처: https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/

1. 사용자가 example.com을 입력하고 리졸버가 해당 요청을 수신한다.

2. 리졸버가 루트 서버에 쿼리를 보낸다.

3. 루트 서버가 도메인에 대한 정보를 저장하는 TLD DNS 서버의 주소로 응답한다. (example.com와 같은 요청은 .com TLD를 가리킨다.)

4. 리졸버가 .com TLD 서버에 요청한다.

5. TLD 서버가 example.com의 IP 주소로 응답한다.

6. 리졸버가 도메인의 네임 서버로 쿼리를 보낸다.

7. example.com의 IP 주소가 네임 서버에서 리졸버로 반환된다.

8. 리졸버가 처음 요청한 도메인의 IP주소로 브라우저에 응답한다.

9. 브라우저가 IP주소로 HTTP 요청을 보낸다.

10. 해당 IP주소의 서버가 브라우저에서 렌더링할 웹 페이지를 반환한다.

 

위처럼 8번 까지의 과정을 통해 드디어 도메인으로부터 IP주소를 얻는다. 

 

참고

 

 

 

'Network' 카테고리의 다른 글

[네트워크] IP주소와 MAC주소  (0) 2020.10.07
[네트워크] HTTP vs HTTPS  (2) 2020.09.02
[네트워크] OSI 7계층 모델  (0) 2020.08.28

생강강

,