[Network] DNS

devjieun·2024년 4월 5일

🌐WEB

목록 보기
3/12
post-thumbnail

들어가며


인터넷이 어떻게 통신되는지 알기 위해 통신 규칙과 port에 대해서 알아봤다. 이번에는 또 알아야 할 개념인 DNS가 있다. DNS가 무엇인지? 어떻게 동작하는 지? 알아보자!

DNS


IP 주소는 기억하기 어렵고, 변경될 수 있다는 문제점이 있다. 이러한 IP의 문제점을 DNS(도메인 네임 서비스)가 해결해 준다.


DNS 는 도메인 네임 시스템의 약어다. 중간에 전화번호부 같은 서버를 제공해 준다. DNS 서버에 도메인을 등록할 수 있다. 그러면 도메인 명과 IP 주소가 매핑되어 등록된다. DNS 서버는 도메인 명을 IP 주소로 변환하는 역할을 한다. 그리고 DNS 서버를 통해 응답받은 IP 주소로 서버와 통신한다.


📕 DNS

도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환 한다.

그렇기 때문에 웹 브라우저를 열고 웹 사이트로 이동할 때는 긴 숫자를 기억해 입력할 필요가 없다. 그 대신 example.com과 같이 사람이 읽을 수 있는 도메인 이름을 입력해도 원하는 웹 사이트로 갈 수 있는 것이다.

DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어한다. 이 요청을 쿼리라고 부른다. 즉 Local DNS 서버가 여러 DNS 서버를 차례대로(Root DNS 서버 -> com DNS 서버 -> naver.com DNS 서버) 물어봐서 그 답을 찾는 과정이다.

DNS 시스템은 DNS 쿼리에 응답하고 도메인 이름을 IP 주소로 변환한다. 그러면 컴퓨터가 서로 통신할 수 있게 된다.

http://www.naver.com ➡️ URL
www.naver.com ➡️ Host Nam
.com ➡️ Top-level Domain Name
.naver.com ➡️ Second-level Domain Name


🌐 DNS는 어떻게 동작할까?


  1. DNS 서버에 도메인 명 goole.com의 IP를 요청한다.
  2. DNS 서버가 IP 주소와 함께 응답을 준다.
  3. 전달 받은 IP 주소로 서버에 요청한다.

🌐 DNS 동작 과정 더 깊이 알아보기!


  1. 사용자가 웹 브라우저를 열어 주소 표시줄에 www.example.com을 입력하고 Enter 키를 누른다.

  2. Local DNS에서 IP가 있는지 확인한다. 없는 경우,
    www.example.com에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS 해석기(DNS Resolver)로 라우팅된다.

  3. ISP(인터넷 서비스 제공자)의 DNS 해석기는 www.example.com에 대한 요청을 DNS Root server에 전달한다.

  4. DNS Root server가 IP주소를 모르는 경우 해석기는 www.example.com에 대한 요청을 이번에는 .com 도메인의 TLD server에 다시 전달한다. .com 도메인의 이름 서버는 example.com 도메인과 연관된 4개의 Amazon Route 53 이름 서버의 이름을 사용하여 요청에 응답한다.

  5. DNS 해석기는 Amazon Route 53 이름 서버 하나를 선택해 www.example.com에 대한 요청을 해당 이름 서버에 전달한다.

  6. Amazon Route 53 이름 서버는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환한다.

  7. DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 된다. 해석기는 이 값을 웹 브라우저로 반환한다. 또한, DNS 해석기는 다음에 누군가가 example.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 example.com의 IP 주소를 캐싱(저장)합니다.

  8. 웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.example.com에 대한 요청을 전송한다.

  9. 192.0.2.44에 있는 웹 서버 또는 그 밖의 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시한다.



🌏 요약 정리

인터넷 통신, IP, TCP, UDP, PORT, DNS

  • 복잡한 인터넷망에서 메시지를 보내기 위해서 IP 프로토콜이 있어야 한다. 그런데 IP 프로토콜만 가지고는 메시지가 잘 도착했는지 신뢰하기도 어렵고, 메시지 순서가 꼬일 수도 있고, PORT라는 개념도 없다.
  • 이러한 문제를 TCP 프로토콜이 해결해 준다. 그리고 UDP라는 것도 있는데 거의 IP와 같은데 PORT 정도만 추가된 백지 상태다. 필요하다면 UDP 프로토콜 위에 애플리케이션에서 기능을 확장해볼 수 있다.
  • PORT는 같은 IP 내에서 동작하는 애플리케이션을 구분하기 위해서 사용한다. 쉽게 이야기해서 IP가 아파트라고 하면 PORT는 그 안에 있는 몇 동 몇 호라고 이해하면 된다.
  • IP는 변하기 쉽고, 외우기 어려운데 DNS로 도메인 명을 등록해서 사용하면 문제점이 해결된다.

📌 참고
DNS란 무엇입니까? (aws) 💡
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 김연한님 강의
주소창에 www.google.com을 입력했을 때 일어나는 과정

profile
Front-End Developer👩🏻‍💻 미래 준비생 🌱

0개의 댓글