[네트워크] DNS 이해하기

Woonil·2025년 5월 9일
0

네트워크

목록 보기
6/6
post-thumbnail

이번에 학교 중앙 동아리 홈페이지 프로젝트를 시작하며, 학교측에 우리의 서비스와 학교측 도메인 주소(OO.ac.kr)를 연결하기 위해 요청하는 작업이 필요했다. 그런데 요청서 양식에 고정 IP 대역을 요구하는 것이었다. 그래서 '읭? 우리는 AWS에 서비스를 배포할 것인데 IP 대역을 어떻게 고정시키지?' 해서 궁금해서 담당부서에 문의를 해보았다. 다행히 '그러한 경우에는 그냥 고정 IP 주시면 저희 DNS에 등록해줍니다.'라고 하셨다.

확실히 아는만큼 보인다고, DNS에 대해 최근에 복습한 것이 떠오르면서 단번에 직원분의 답변이 이해가 갔다. 요즘 노션에 썩히고 있던 내 TIL 노트들을 하나씩 블로그로 꺼내는 작업을 진행하고 있는데, 이참에 DNS 개념에 대해서 정리해보고자 한다.

DNS란 한마디로 도메인에 해당하는 IP 주소를 기록해놓은 계층적 시스템이라 할 수 있다.

DNS(Domain Name System)는 도메인과 관련한 시스템으로써 인터넷에 참여하는 모든 리소스의 계층적 네이밍 시스템으로, IP 주소와 도메인 이름을 결정하는 서비스를 응용 프로세스에 제공한다.

🤔개념

📛도메인

인터넷 상에서 컴퓨터나 네트워크 리소스를 식별하는데 사용되는 이름

www.naver.com에서 ‘www’는 host name(호스트 네임)에 해당하고, ‘naver.com’은 domain(도메인)에 해당한다.

FQDN(Fully Qualified Domain Name)
http://api.www.example.com. 이 이에 해당한다.

🖥️네임 서버 (DNS 서버)

DNS 쿼리를 실제로 해결하는 서버로, 다층적으로 구성된 네트워크에 분산돼서 도메인 정보들이 저장되고 조회된다.

[출처: 생활코딩]

루트 네임 서버

  • 특징
    • root domain: com.. 에 해당하며, 루트 DNS 서버가 담당
    • 루트 DNS 서버 자체는 전 세계에 13개가 존재하며, 복사된 미러 서버가 존재한다.
    • ICANN(Internet Corporation for Assigned Names and Numbers)에 의해 관리된다.

TLD(Top-Level Domain) 네임 서버

  • top-level domain(TLD): com, .us, .in, .gov, .org
  • 서브 도메인에 대한 네임서버 or 도메인의 권한 있는 네임서버 정보를 반환한다.
  • ICANN의 지사인 IANA가 관리한다.

SLD(Second-Level Domain) 네임 서버

  • second-level domain(SLD): amazon.com, google.com
  • sub domain: www.example.com
  • domain name: api.www.example.com
  • Domain registrar AWS Route 53, GoDaddy 등
  • DNS 서버 (네임 서버)

로컬 DNS 서버

  • 특징
    • 보통 통신사마다 지정된 곳이 있으며, 사용자의 편의에 의해 변경될 수 있다.
    • resolver로서, 네임 서버에 반복적 질의를 통해 클라이언트에 응답하는 역할을 한다.

      리졸버(resolver)
      클라이언트의 요청에 따라 데이터를 반환하는 기술

DNS 캐시

DNS 서버로부터 얻은 도메인 이름과 IP 주소의 테이블이 기록되어 저장된 파일로, 호스트 컴퓨터에 저장되며 일정한 시간이 지나면 자동적으로 삭제된다. 데이터를 임시 저장하여, 데이터 요청에 대한 성능을 높이기 위해 사용된다. 이는 DNS 쿼리를 빠르게 확인할 수 있고 추가 쿼리를 피할 수 있으므로 로드 성능이 향상된다.

🔢도메인 접속 과정

  1. 브라우저는 메모리의 DNS 캐시에 찾으려는 도메인이 있는지 확인
  2. hosts file에 해당 도메인이 있는지 확인
  3. 브라우저가 PC에 설정된 로컬 DNS 서버에 해당 도메인과 호스트명의 IP를 갖고 있는지 질의 (재귀적 질의)
  4. 로컬 DNS 서버에 도메인 주소의 정보가 캐싱되지 않은 경우, 루트 DNS 서버에 IP를 가져올 수 있는 경로(네임 서버)를 질의 (반복적 질의: 3~5번 과정)
  5. 루트 DNS 서버는 접속하려는 확장자(ex .com)로 끝나는 도메인들을 담당하는 서버(TLD 네임 서버)의 IP 주소(네임 서버)를 반환
  6. 해당 서버는 한 단계 상위 도메인(ex. naver.com)을 담당하는 서버의 IP 주소를 반환
  7. 해당 서버는 여러 호스트네임별 IP 주소 중 접속하고자 하는 도메인의 IP 주소(ex www.naver.com)를 반환
  8. 로컬 DNS 서버는 브라우저에 결과 정보를 반환하고 클라이언트는 해당 도메인의 서버로 접속

👉DNS Record

DNS 서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침

Record Type

  • A Record: A모형의 연결 다리(이해를 쉽게 하기 위해 비유를 든 것)로 도메인과 ip를 직접 연결하는 레코드 도메인을 서버의 IP로 직접 연결하며, 직통 연결이기 때문에 접속이 빠르다. 도메인과 IP 간 일대다/다대일 매칭도 가능하다.
  • CNAME(Canonical Name record, 표준적인 네임 레코드): Name server를 C(See)(이해를 쉽게 하기 위해 비유를 든 것)하는 레코드 하나의 도메인 네임을 다른 이름으로 매핑시키는 DNS의 리소스 레코드의 일종으로, 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안된다.

참고자료

DNS가 뭔가요? + 도메인, A Record, CName
[10분 테코톡] 조이,엔초의 DNS와 ARP
루트 네임 서버 - 위키백과, 우리 모두의 백과사전
인파님의 블로그: DNS 레코드 종류 ★ 완벽 정리

profile
프론트 개발과 클라우드 환경에 관심이 많습니다:)

0개의 댓글