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