본문 바로가기
CS/네트워크

[혼자 공부하는 네트워크] 05 응용 계층 - DNS

by 박뫙대 2025. 5. 19.

안녕, 리뷰어. 나는 뫙대🛠️ 

CS에 대한 개념이 0에 수렴해 공부를 시작합니다. 네트워크 공부는 '혼자 공부하는 네트워크'를 기반으로 합니다. 이번 글에서는 응용 계층의 DNS와 자원에 대해 다룹니다.

 
혼자 공부하는 네트워크
『혼자 공부하는 네트워크』는 개발자의 필수 지식인 네트워크를 기본부터 제대로 학습할 수 있도록 돕는 입문서입니다. 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워크 이론 중에서 핵심 내용만 선별해서 담았습니다. 도서 제목 그대로 혼자 공부하는 초보자를 위해 쉬운 비유와 입문자 맞춤형 예시를 통해 재미있는 학습을 유도하고, 핵심 키워드와 네트워크 계층별 설명으로 쉽게 이해할 수 있도록 했으며, 한눈에 쏙 들어오는 친근한 일러스트를
저자
강민철
출판
한빛미디어
출판일
2024.04.12

 

도메인 네임domain name

호스트 IP 주소와 대응되는 계층적 형태의 문자열 정보. 점(.)을 기준으로 계층 분류 → 송수신 대상 파악

전체 주소 도메인 네임(FQDN, Fully-Qualified Domain Name)

일반적으로 3~5단계로 구성 e.g. www.tistory.com.

전체 주소 도메인 네임

  1. 루트 도메인(root domain): 점(.) → 생략
  2. 최상위 도메인(TDL, top-level domain) e.g. com → 도메인 네임의 마지막 부분으로 간주
  3. 2단계 도메인(2nd level domain) e.g. tistory
  4. 3단계 도메인(3rd level domain) e.g. www
    cf. FQDN의 첫 번째 부분은 호스트 네임host name*

* 호스트 네임은 FQDN 자체를 가리키기도 하며, 때로는 네트워크상의 장치 자체의 이름을 가리키는데 사용함

서브 도메인subdomain

다른 도메인이 포함된 도메인 e.g. noeyahmig.tistory.com → tistory.com 서브도메인

도메인 네임 시스템(DNS, Domain Name System)

계층적이고 분산된 도메인 네임에 한 관리 체계 프로토콜. 도메인 네임을 IP 주소로 변환

DNS 레코드

도메인 네임에 대한 정보

타입 설명 도메인 네임
A Address. 특정 호스트에 대한 도메인 네임과 IPv4 주소 매핑 example.com. 1.2.3.4
AAAA A*4. 특정 호스트에 대한 도메인 네임과 IPv6 주소 매핑 example.com. 2607:f298:5:104f::765:5be
CNAME Canonical Name. 호스트 네임에 대한 별칭 지정. 서브도메인에 사용 www.example.com. example.com.
MX Mail Exchange. 메일 서버 지정 → 우선순위+메일 서버 도메인명 example.com. 10 mail.example.com.
NS Nameserver. 모든 레코드가 저장된 DNS 서버 지정 → 신뢰성과 안정성을 위해 최소 2개 이상 설정 i.e. 이중화 example.com. ns1.exampledns.com.

DNS 캐시cache

기존에 응답받은 결과를 TTL* 동안 임시로 저장. 같은 질의에 활용해 빠른 응답 제공

* TTL은 도메인 네임의 질의 결과를 임시로 저장하는 시간

DNS 서버(=네임 서버nameserver)

도메인 네임에 대응되는 IP 주소 등 DNS 자원 레코드 저장하고 관리하는 서버

  1. 로컬 네임 서버: 클라이언트와 맞닿아 있는 네임 서버 → 캐시 기능 有. 주로 ISP에서 네임 서버 주소 할당. 공개 DNS 서버 이용도 가능 e.g. Google Public DNS
  2. 루트 네임 서버: 루트 도메인 관리. TLD 네임 서버의 IP 주소 반환
  3. TLD 네임 서버: TLD 관리. TLD 하위 도메인 네임 서버 주소 반환
  4. 책임 네임 서버: 특정 도메인 영역zone 관리. 최종 응답 제공

리졸빙(Resolving)

도메인 네임에 대응되는 IP 주소를 알아내는 과정 → 도메인 네임 풀이(resolve)

  • 재귀적 질의: 최종 응답 결과를 역순으로 전달받는 방식
  • 반복적 질의: 질의와 응답 과정을 반복해 최종 응답 결과를 클라이언트에 알려 주는 방식

URI(Uniform Resource Identifier)

네트워크상 메시지를 통해 주고받는 대상인 자원resource을 식별할 수 있는 정보 → 송수신 정보 식별 참조. RFC 3986

URL(Uniform Resource Locator)

위치 기반 식별자 참조. RFC 1738

<scheme>://<user>:<password>@<host>:<port>/<path>?<query>#<fragment>
  1. scheme :// 자원에 접근하는 방법 e.g. 사용할 프로토콜 참조. URI schemes
  2. authority <user>:<password>@<host>:<port> 호스트를 특정할 수 있는 정보 e.g. IP 주소, 도메인 네임
  3. path / 자원이 위치한 경로 → 계층구조로 표현
  4. query ? 특정 결과나 데이터 요청을 위한 매개변수 → <키=값> 형태 데이터. 앰퍼샌드(&)로 여러 쿼리 파라미터(문자열) 연결 참조. HTTP
  5. fragment # 자원의 조각을 가르키기 위한 정보

URN(Uniform Resource Name)

이름 기반 식별자 참조. RFC 8141

<urn>:<NID>:<NSS>
  1. NIS(Namespace Identifier): 자원의 종류 e.g. ietf
  2. NSS(Namespace Specific String): 고유 식별 문자열. 네임스페이스*별 형식이 다를 수 있음 e.g. rfc:2648

* 참조. URN namespaces


참고

https://www.dreamhost.com/blog/nameservers-vs-dns-guide/