DNS(Domain Name System)

사람이 읽을 수 있는 도메인 이름을 컴퓨터가 읽을 수 있는 IP주소로 변환해주는 것.

  • 인터넷 표준 프로토콜은 TCP/IP이며, TCP/IP 프로토콜 사용하는 네트워크에서는 Host를 식별하기 위해 IP주소를 사용한다.
  • IP주소를 외우는 것을 어려운 일이기 때문에, domain name을 이용하여 Host를 식별할 수 있도록 도와주는 것이 DNS.

예시)
1. 유저가 웹 브라우저에 www.naver.com 을 입력한다.
2. 브라우저는 www.naver.com에 대한 IP주소를 알기 위해 DNS 서버에 요청을 보낸다.
3. DNS 서버는 요청을 받고, 자신의 레코드에 www.naver.com 에 대한 IP주소를 조회한다.
4. DNS 서버는 www.naver.com에 대한 IP주소를 찾아서 웹 브라우저에게 응답한다.
5. 웹 브라우저는 전달 받은 IP주소를 이용하여 해당 서버에 연결하고, 웹 페이지를 요청한다.
www.naver.com → 223.130.195.200

DNS Server

DNS에 대한 요청을 처리하고 응답하는 컴퓨터 시스템.

  • DNS 리졸버 (DNS Resolver) : 요청 받은 도메인에 매치되는 IP주소를 찾기 위해 계층적으로 DNS 쿼리를 수행. DNS 쿼리의 첫 단계에 해당하며, DNS 캐시를 저장하는 곳.
  • 루트 DNS 서버 (Root Name Server) : DNS 리졸버에서 처음으로 DNS 쿼리 요청을 보내는 서버. 해당 도메인의 확장자(com, org 등)에 따른 TLD 네임 서버의 주소를 DNS Resolver에 응답.
  • 최상위 도메인 DNS 서버 (TLD Name Server) : 최상위 도메인(com, org 등)에 대한 DNS 정보를 관리. 루트 DNS 서버와 권한 네임 서버의 중간 단계.
  • 권한 네임 서버 (Authoritative Name Server) : 도메인의 IP주소를 응답해주는 최종 단계 DNS 서버. 여기서 얻은 IP주소가 순환 DNS를 거쳐 브라우저까지 전달.

Zone

하나의 DNS가 관리하는 영역으로 도메인 관리 영역이라고도 한다. Zone은 그 Zone을 담당하는 DNS 서버와 그 Zone에 대해서 관리하는 데이터를 칭하는 Zone file로 구성된다.

  • Zone은 도메인 이름과 공간을 관리하는 논리적인 영역을 의미하며 DNS 서버에서 관리된다.
  • 특정 도메인 이름 아래에 있는 모든 하위 도메인들과 관련된 DNS 레코드들의 집합
  • Zone 관리 목적으로 사용되며, 자체적인 DNS 정보들을 포함하고 있다. (IP주소, 이메일 서버 설정, 서브도메인 레코드 등)

예시)
naver.com 이라는 도메인은 하나의 Zone으로 간주됨.
이 Zone에는 naver.com 이라는 도메인의 DNS 레코드들과 해당 도메인의 하위 도메인에 대한 DNS 레코드들이 포함되어 있다.

Zone File

DNS 영역(Zone)을 설명하는 텍스트 파일을 Zone file 또는 Domain zone file 이라고 한다.

  • DNS 서버가 해당 도메인에 대한 조회를 처리할 때 참조하는 파일.
  • Zone file에는 도메인 주소와 IP주소 및 기타 리소스 간의 매핑이 포함되며, 리소스 레코드(RR, Resource Record)의 텍스트 표현 형식으로 구성.
  • Zone file에는 DNS 레코드가 한 줄씩 기록되어 있다. 대표적인 DNS 레코드 유형은 아래와 같다.
    • SOA 레코드
    • NS 레코드
    • A 레코드
    • AAAA 레코드
    • CNAME 레코드
    • MX 레코드
    • TXT 레코드

도메인 구조

도메인은 서브 도메인, 도메인명, 최상위 도메인 명으로 이루어져있다.

  • 서브도메인 (Subdomain)
  • 루트 도메인(Root Domain) : 웹 사이트의 최상위 계층. 서브 도메인을 포함하지 않는 도메인 네임을 뜻한다.
  • 2차 도메인 (SLT, Second-Level-Domain) : 최상위 도메인 앞에 위치한 부분
  • 최상위 도메인(TLD, Top-Level-Domain) : 도메인의 마지막 부분
    • 국가 코드 최상위 도메인(ccTLD, Country Code Top-Level Domain)
    • ccSLD : ccTLD는 아래의 표처럼 웹사이트 특징을 나타내는 2차 도메인을 가지는 경우가 많은데, 이를 ccLTD라고 부르기도 한다. 또는 ccTLD, ccSLD를 묶어서 TLD라고 표현하는 경우도 있다.
ccSLD+ccTLD영역
co.kr영리
ne.kr네트워크
or.kr비영리
re.kr연구
pe.kr개인
go.kr정부 기관
mil.kr국방 조직

TLD설명
com영리 목적 기업이나 단체
org비영리 기관
net네트워크를 관리하는 기관

도메인을 찾아가는 원리


1. 사용자가 브라우저 주소창에 URL을 입력 → 브라우저가 입력된 도메인의 IP주소를 알아내기 위해 운영체제를 거쳐 DNS Resolver에 요청
2. DNS Resolver는 로컬 DNS캐시에 이전에 방문한 도메인 정보가 있는지 확인.
   2-a. 캐시에 기록이 있다면, 추가적인 DNS 조회가 필요하지 않고 바로 IP주소를 응답함. → 8
   2-b. 캐시에 기록이 없다면, DNS Resolver는 루트 DNS서버에서 TLD Name Server의 IP주소 요청. → 3
3. Root Name Server로부터 TLD Name Server IP 응답 받음.
4. TLD Name Server에게 Authoritative Name Server IP 요청
5. TLD Name Server에게 Authoritative Name Server IP 응답 받음
6. 도메인 이름 전달하고, 최종 IP 주소를 요청
7. 최종 IP주소 반환
8. 운영체제를 거쳐 브라우저로 IP 주소를 전달하면, 브라우저를 통해 해당 IP서버에 연결


💾 참고자료
https://aws.amazon.com/ko/route53/what-is-dns/
http://www.codns.com/skin/board/faq/mw.proc/mw.print.php?bo_table=B05&wr_id=108
https://library.gabia.com/contents/domain/4152/
https://www.beusable.net/blog/?p=4507
https://sujinnaljin.medium.com/domain-%EB%8F%84%EB%A9%94%EC%9D%B8-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-40cfb23df899
https://m.blog.naver.com/sssang97/223097811885
https://velog.io/@pu1etproof/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%8A%A4%ED%84%B0%EB%94%94-2%EC%A3%BC%EC%B0%A8-DNS-%EC%84%9C%EB%B2%84
https://blog.naver.com/techtrip/222154620404
https://nordvpn.com/ko/blog/dns-explained/
https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/
Google Gemini
OpenAI ChatGPT

profile
안녕하세요. 백엔드 개발자가 되고 싶은 Kade 입니다.

0개의 댓글