본문 바로가기
프로그래밍/Web

DNS는 무엇이고 어떻게 동작할까?

by JR2 2022. 12. 4.

가족의 전화번호도 외우지 않는 시대가 되었다. 외우지 않는 것일까 혹은 외우기 힘든 것일까?

잘 모르겠지만 스마트폰의 주소록은 사람들이 더 이상 전화번호를 외우지 않아도 잘 살아갈 수 있는 환경을 만들어주었다.

이번에는 웹에도 주소록 역할을 하는 친구를 소개하려고 한다.


DNS는 어쩌다 만들어지게 됐을까?

앞서 잠깐 소개했듯이 DNS(Domain Name System)은 Web의 주소록 역할을 하고 있다.

사람들은 더 이상 192.168.0.1과 같은 주소가 아닌 google.com, naver.com 로 웹 사이트에 접근할 수 있게 되었다.

왜냐하면 DNS에서 내부적으로 google.com을 192.168.0.1과 같은 IP 주소 형태로 바꿔주고 있기 때문이다.

 

DNS 동작 방식

www.example.com에 접속하고 싶다고 해보자.

앞서 설명한대로 해당 사이트의 IP 주소가 필요하다.

아래는 위의 그림 단계를 설명하였는데, 각 단계에서 IP주소가 찾아지면 그대로 반환한다.

  1. 사용자가 웹 브라우저에 www.example.com를 입력한다.
  2. 로컬 host 파일에 www.example.com가 있는지 찾아본다.
    • 없다면 resolver를 호출하게 된다.
    • 3번 부터는 resolver가 하는 작업들이다.
  3. Root DNS 서버에 www.example.com가 있는지 물어본다.
    • Root 서버는 TLD의 주소를 알고있어서, TLD의 주소를 return한다.
  4. .com TLD 서버에 www.example.com가 있는지 물어본다.
    • TLD 서버는 Amazon Route 53이 가지고 있는것을 안다.
  5. Amazon Route 53 서버에 www.example.com가 있는지 물어본다.
  6. Amazon Route 53 서버에서 IP 주소를 받는다.
  7. PC에 전달한다.
  8. 사용자는 이 IP주소를 가지고 웹 서버와 통신하게 된다. (웹 브라우저가 자동으로 처리해줌)

정확히 이해가 잘 안 될 수도 있다. Root DNS 서버가 무엇인지, TLD DNS 서버가 무엇인지 아래 그림을 통해 조금 더 살펴보자.

Root DNS 서버

ICANN이 직접 관리하는 절대 존엄 서버이다. TLD(최상위 도메인)서버 IP 주소를 저장하고 안내하는 역할을 한다.

 

Top-Level Domain(TLD) DNS 서버

도메인 등록 기관이 관리하는 서버이다. 도메인 판매 업체 (가비아 등)의 DNS 설정이 변경되면 도메인 등록 기관으로 전달되기 때문에 어떤 도메인이 어떤 판매업체에서 구매했는지 알 수 있다.

 

Resolver란?

DNS를 이용하는 클라이언트의 PC를 말한다.

네임서버로 원하는 호스트에 대한 쿼리를 보내고 네임서버로 받은 응답을 해석하고 정보를 요구한 클라이언트에 정보를 전달하는 역할을 한다.

 

마무리하며

DNS의 아주 얕은 정보들을 알게 되었다. 다만 이런 지식을 알게된 것만으로도 선배 개발자들에 대한 존경심이 절로 생겨난다.

우리가 무의식적으로 편하게 사용하던 모든 곳들에 누군가의 노고가 들어갔다는 것을 잊지 말아야겠다.

 

참조

- https://howdns.works/

- https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/

댓글