도메인과 DNS

Minuuu·2023년 5월 29일

네트워크

목록 보기
11/11
post-thumbnail
  • 도메인의 개념과 DNS의 장단점에 대해 정리
  • 정확한 동작과정에 대해 이해하고 이러한 동작 과정을 사용하는지 알아보자.

DNS(Domain Name Server)

인터넷에서 사용되는 서비스로 도메인 이름과 IP주소를 매핑해준다.

우리가 통신하기 위해서는 기본적으로 상대의 IP주소를 알아야한다.
하지만 우리는 인터넷에서 192.168.xx.xx와 같은 IP주소를 적는게 아닌 naver.com이라는
문구를 적어 요청을 보낸다. 그 이유는 ip 주소를 외우는 것이 힘들고 어렵기 때문이다.
이렇게 문자인 도메인을 ip주소를 바꿔주는 것이 DNS 프로토콜이다.

위 사진을 보면 DNS Resolver가 다른 DNS 서버들과 정보를 주고받는다.
즉, DNS는 계층구조를 가지는 분산 데이터베이스 구조를 갖는다.
이 계층적 구조에서 최상단을 갖는 것은 Root임

도메인 이름에 대해


클라이언트는 위와같은 형식으로 서버에 요청을 넘긴다.
이 때 http는 프로토콜을 가리키며 나머지가 실질적인 도메인 이름인데
도메인 이름또한 계층 구조를 가진다.
서브도메인, 도메인 이름, 상위 레벨 도메인(TLD)


즉 도메인도 위와 같은 계층 구조를 가지게 된다.

DNS 동작방식

많이들 착각하는 것이 있는데 클라이언트가 www.example.com을 요청하면 바로 DNS 서버에 요청하는 것이 아니고 클라이언트PC RAM에 DNS Cache에 있는지 확인을 한다.
만약 없다면 host file을 또 뒤져본다. (OS)

또한 최근에는 공유기를 사용하기에 DNS 포워딩 기능을 공유기가 제공하기도 한다.
위와 같은 과정을 거치고 없으면 아래의 동작 과정을 거치게 된다.

  1. 클라이언트가 www.example.com으로 DNS서버에게 request한다
  2. 알고 있다면 응답, 모르면 Root DNS에게 .com에 대해 물어봄
  3. root DNS는 .com의 도메인 목록(TLD 서버 주소)를 응답해준다.
  4. 그러면 클라이언트가 TLD 서버에 example이 있는지 물어본다.
  5. TLD서버가 이를 확인해 naver만 다루는 DNS를 응답해준다.
  6. 그러면 혹시 www 있음?
  7. 서버가 해당되는 www.example.com에 해당하는 ip주소를 응답해주고 끝이난다.
  8. DNS resolver가 클라이언트에게 최종 ip주소를 주게되면 cache로 저장한다.

그러나 이를 계속 줄 순 없기 때문에 유효기간을 같이 전송해준다.(유효기간에 따른 캐싱)

DNS가 분산 계층 구조를 갖지 않는다면?

도메인은 전세계 인구가 사용하게 된다.
만약 분산 구조를 가지지 않는다면 중앙 집중화된 서버를 사용한다는 것인데 80억의 인구 수를 감당할 수 없을 것이다.

즉, 분산 관리는 인프라의 안정성, 성능, 확장성, 관리 용이성을 향상시키는 중요한 요소인 것

참고 문헌

profile
꾸준히 한걸음씩 나아가려고 하는 학부생입니다 😄

0개의 댓글