All'alba vincerò

At dawn, I will win!

CS/네트워크

TCP/IP (5): DNS - 도메인명을 IP 주소로 변환

나디아 Nadia 2025. 6. 17. 13:56

 

DNS (Domain Name Service)

: 도메인명(www.naver.com)을  IP 주소(223.130.195.200)로 변환하는 시스템

  • 사용자가 호스트명을 입력하면, 자동으로 해당 호스트의 IP가 저장되어 있는 데이터베이스 서버로 연결되어 해당 호스트의 IP 주소를 알 수 있게 해주는 서비스
    • 호스트가 다른 호스트명을 모두 갖고 있는게 아니라 분산된 데이터베이스에 그때그때 물어봄
  • DNS 덕분에 네트워크에 많은 호스트가 연결되더라도 중앙에서 전부 관리할 필요가 없어서 관리가 매우 편해짐

 

 

DNS의 탄생 배경

  • 초기 인터넷 ARPANET에서는 hosts 파일을 만들어서 웹 사이트들의 호스트명을 데이터베이스에 저장해두고, 새로운 컴퓨터가 연결되면 이를 업데이트함
  • 그리고 모든 컴퓨터는 이 hosts 파일을 다운 받아서 업데이트 함
    ⇒ hosts 파일 덕분에 기억하기 어려운 IP 주소 대신 텍스트로 통신할 수 있게 됨
     
  • 이 방식은 소규모 네트워크에서는 효과적이었지만,
    네트워크가 커지고 사용자가 증가하면서 매번 수동으로 업데이트하는 데 한계가 생김
    ➡ 이를 해결하기 위해 DNS 시스템이 개발

 

 

 

네임 서버(Name Server)

: 도메인명과 IP 주소를 저장하고 매핑해주는 서버

  • DNS는 도메인명과 매핑한 IP 주소를 데이터베이스 서버에서(= 네임 서버) 가져옴
  • "도메인명 → IP 주소" 를 저장해둔 데이터베이스 같은 서버

    도메인명  IP 주소
    www.naver.com 223.130.195.200
    www.google.com 142.250.196.132

 

 

 

도메인명 (Domain Name)

  • 도메인명: 여러 호스트를 포함하는 그룹의 이름
    • ex) naver.com, google.co.kr 등
  • 호스트명: 하나의 호스트(IP 주소)를 나타내는 이름
    • ex) www, mail, blog 등

 

 

도메인명의 구조

  • 조직에 따라 점(.)으로 구분함
  • 도메인명은 계층 구조로 설계되어 있음
www.naver.com
└── com (최상위 도메인)
    └── naver (2차 도메인)
        └── www (호스트명)

 

  • 최상위 도메인: 도메인의 가장 큰 분류 (.com, .kr, .org 등)
    • 국가/조직/목적에 따라 구분됨
    • 국제 인터넷 주소 관리 기구(ICANN)가 한국 인터넷 진흥원(KISA)에 kr이라는 최상위 도메인을 부여함
  • 2차 도메인: 회사나 기관의 고유한 이름 (naver, google, daum 등)
    • 호스트의 서비스 성격에 맞는 걸 선택함
    • 2차 도메인은 인터넷 진흥원이 관리
  • 3차 이하 도메인: 서비스나 하위 서버를 나타냄 (www, mail, blog 등)
    • 서비스에 따라 다양하게 설정 가능 

 

 

 

DNS의 작동 방식

브라우저에 naver.com을 검색하면 어떻게 동작하는가?

  • 브라우저에 naver.com을 입력하는 것은 www라는 호스트명을 생략하고 검색하는 것임
    ⇒ 실제로는 www.naver.com을 검색한 것 

  1. hosts 파일 확인
    • 가장 먼저 컴퓨터는 hosts 파일을 열어서 naver.com이 있는지 확인
  2. 로컬 네임서버 확인
    • hosts 파일에 naver.com이 없다면, 컴퓨터에 설정된 가장 가까운 네임 서버로 연결해 확인함
      • 컴퓨터에 설정된 네임 서버는 powershell에서 'ipconfig -all'을 입력하면 확인 가능
  3. 루트 네임서버로 요청
    • 가까운 네임 서버가 www.naver.com의 IP 주소를 알고 있다면 알려줌
    • 모른다면, 루트 네임 서버에 물어봄
      • 루트 네임서버는 전 세계에 분산되어 존재
  4. .com 네임서버에 요청
    • 루트 네임 서버도 www.naver.com의 IP 주소를 알고 있다면 알려줌
    • 모른다면, 최상위 도메인이 .com이므로 .com 네임 서버의 주소를 알려줌
  5. 네이버 네임서버에 요청
    • 가까운 네임 서버는 .com 네임 서버에게 www.naver.com의 IP 주소를 물어보고, .com 네임 서버는 네이버 네임 서버의 주소를 알려줌
  6. naver.com 네임서버에게 www의 IP 요청
    • 가까운 네임 서버는 네이버 네임 서버에게 www.naver.com의 IP 주소를 물어보고, 네이버 네임 서버는 www라는 호스트명을 가진 PC의 IP 주소를 알려줌
  7. IP 주소 전달
    • 가까운 네임 서버는 사용자에게 www.naver.com의 IP 주소를 알려줌
  8. 통신 시작
    • 이제 해당 IP로 데이터를 요청하고 통신할 수 있게 됨