본문 바로가기

Server & Infra

Server - DNS란 무엇인가

요즘 기본기가 많이 부족하다는 생각이들어서.. 정말 기본적인 것들도 한번 짚고 넘어가기로했다. 오늘은 DNS에 대해서 정리해보겠다.

DNS란?

Domain Name System의 약자로, IP 네트워크에서 사용하는 시스템이다. IP는 숫자체계로 구성이 되어있는데 (ex) IPv4기준: 200.123.432.111) 이 서버주소 IP를 외우기는 쉽지 않으며, 의미도 알기가 힘들다. 따라서 DNS는 주소체계를 사람이 의미를 알아보고 또 기억하기 쉽도록 문자열로 나타낸다.

 

- https://xggames.tistory.com
- https://www.naver.com 

- https://www.google.com 

 

와 같이 주소 URL을 입력하면, 해당하는 IP주소를 찾아서 사이트를 연결해준다.

telnet으로 도메인 입력시, 해당되는 IP(공인)로 매핑이 되는 모습을 간단히 확인할 수 있다.

도메인 체계

우리가 흔히 사용하는 .com / .kr 등은 최상위 도메인이라고 하며, 2단계, 3단계에 맞추어 정해져있는 체계에 따라서 결정이 된다.

그리고 국내에서는 이러한 도메인 등록 및 사용을 대행해주는 업체들이 있는데, 아래의 링크를 참고해보자.

=> https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/popup/agencyIng.jsp

이외에도 AWS나 GCP 등 클라우드플랫폼에서도 도메인 호스팅 서비스를 이용할 수 있다.

DNS의 흐름

최초 사용자 요청시, Local DNS Server에서 Root Server에 도메인 주소를 확인한다. 이때 Root Server가 다 알아서 찾아주는 것이 아니라, Root Server 자신에 등록되어 있는 최상위 도메인에서 해당 도메인에 붙어있는 Top-Level Domain 주소를 찾아서 Local DNS Server로 전달해주고, 이후로는 찾을때까지 반복한다.

 

그리고 한가지 특이사항으로는 사용자가 도메인으로 요청시 매번 위와같은 동작을 한다면, DNS서버에 부담을 주는 상황이기 때문에, DNS Cache를 활용하여 자주쓰는 Domain Name 주소를 저장해두어 사용한다. 그러면 찾는 과정을 매번 반복하지 않고, 바로 IP주소를 찾아서 줄 수 있게된다. 아래 그림으로 한번더 흐름을 확인해보자.

참고자료

= https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/domainInfo/domainInfo.jsp

= https://hwan-shell.tistory.com/320

= https://gentlysallim.com/dns%EB%9E%80-%EB%AD%90%EA%B3%A0-%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84%EB%9E%80-%EB%AD%94%EC%A7%80-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC/