ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DNS란?
    프로그래밍 기초 공부 2022. 10. 31. 01:33

    25번째로 포스팅하게 될 내용은 DNS에 관한 내용입니다.

     

     

    [ DNS ]

    • 웹사이트에 접속 할 때 우리는 외우기 어려운 IP 주소 대신 도메인 이름을 사용함
    • 도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요
    • 이러한 전체 시스템을 DNS(도메인 네임 시스템)라고 함
    • DNS는 전세계적으로 약속된 규칙을 공유
    • 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 ‘권한’을 부여함
    • DNS는 이처럼 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가짐

     

    [ DNS 구성 요소 ]

    도메인 네임 스페이스

    도메인 네임 스페이스라는 규칙으로 도메인 이름 저장을 분산

    • DNS는 전세계적인 거대한 분산 시스템이다.
    • 도메인 네임 스페이스는 이러한 DNS가 저장 관리하는 계층적 구조를 의미
    • 도메인 네임 스페이스는 최상위에 루트 DNS 서버가 존재, 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조

    계층적 도메인 레벨

    • 도메인 네임 스페이스의 트리 구조는 최상위 레벨부터 순차적으로 계층적 소속 관계를 나타냄
    • 하위 조직의 네임 스페이스를 할당하고 관리하는 방식은 각 하위 기관의 관리 책임자에게 위임
    • 위임 구조는 호스트의 증가에 대한 관리가 효율적으로 이루어지는 것을 가능하게 함

     

    FQDN (Fully Qualified Domain Name)

    • 전체 도메인 이름
      • ex) 전체 도메인 이름: www.hello.kr  
      • 호스트 이름: www
      • 도메인 이름: hello.kr

     

    네임 서버

    • 권한 있는 DNS 서버
    • 문자열로 표현된 도메인 이름을 실제 컴퓨터가 통신할 때 사용하는 IP 주소로 변환시키기 위해서는                            도메인 네임 스페이스의 트리 구조에 대한 정보가 필요한데 이러한 정보를 가지고 있는 서버
    • 데이터베이스 역할(저장, 관리), 찾아주는 역할, 요청 처리 응답 구현
    • 전 세계에 13개의 Root DNS 서버가 구축되어 있음

     

    1. Root DNS 서버
      • ICANN이 직접 관리하는 절대적인 서버
      • TLD DNS 서버 IP 주소를 저장하고 안내하는 역할
    2. Top-Level Domain(TLD) DNS 서버
      • 도메인 등록 기관이 관리하는 서버
      • Authoritative DNS 서버의 주소를 저장하고 안내하는 역할
      • 도메인 판매 업체의 DNS 설정이 변경되면 도메인 등록 기관으로 전달되기 때문에 어떤 도메인이 어떤 판매업체에서 구매했는지 알수 있는 것
    3. Second-Level Domain(SLD) DNS 서버 (Authoritative DNS 서버 라고도 함)
      • 실제 개인 도메인과 IP 주소의 관계가 저장, 변경되는 서버
      • 그래서 권한의 의미인 Authoritative가 붙음
      • 일반적으로 도메인/호스팅 업체의 네임서버
      • 개인 DNS 구축해도 이 경우에 해당

     

    리졸버

    • 권한 없는 DNS 서버
    • DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행
    • 하나의 네임 서버에게 DNS 요청을 전달하고 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받음
    • 수많은 네임서버에 접근하여 사용자로부터 요청 받은 도메인의 IP 정보를 조회하는 기능을 수행
    • 리졸버에 기능을 단말에 구현하는 것은 자원의 한계가 있기에 대부분 기능을 DNS 서버에 구현하고
      클라이언트 호스트는 리졸버의 단순한 기능만을 지닌 리졸버 루틴을 구현하는 옵션이 제시됨
    • 스터브 리졸버(Stub Resolver)
      • 단순화된 기능의 리졸버를
      • 스터브 리졸버는 수 많은 네임 서버의 구조 파악 필요없이 리졸버가 구현된 DNS 서버의 IP 주소만 파악하면 됨
    • 도메인에 대한 질의를 받은 스터브 리졸버는 설정된 DNS 서버로 DNS Query(질의)를 전달하고
      DNS 서버로부터 최종 결과를 응답 받아 웹 브라우저로 전달하는 인터페이스 기능만을 수행

     

     

    [ DNS Query ]

    • DNS 클라이언트와 DNS 서버는 DNS 쿼리를 교환
    • DNS 쿼리는 Recursive(재귀적) 또는 Iterative(반복적)으로 구분
      • Recursive Query (재귀적 질의)
        • 결과물(IP 주소)를 돌려주는 작업
        • Recursive 쿼리를 받은 Recursive 서버는 Iterative 하게 권한 있는 네임 서버로 Iterative 쿼리를 보내서 결과적으로 IP 주소를 찾게 되고 해당 결과물을 응답
        • 사전적 의미로써 재귀로, 응답을 돌려주는 쿼리
      • Iterative Query (반복적 질의)
        • Recursive DNS 서버가 다른 DNS 서버에게 쿼리를 보내어 응답을 요청하는 작업
        • Recursive 서버가 권한 있는 네임 서버들에게 반복적으로 쿼리를 보내서 결과물(IP 주소)를 알아냄
        • Recursive 서버에 이미 IP 주소가 캐시 되어있다면 이 과정은 건너 뜀

     

    [ DNS 동작 과정 ]

    1. 웹 브라우저는 해결사 서버에게 요청
    2. 해결사 서버는 최상위 기관에서 관리하는 네임 서버에게 요청
    3.  최상위 기관에서 관리하는 네임 서버는 응답
    4. 해결사 서버는 이제는 .kr 네임 서버에게 요청
    5. .kr 네임 서버는 응답
    6.  해결사 서버는 가비아 네임 서버에게 요청한다.
    7. 가비아 네임 서버는 응답
    8. 해결사 서버는 웹 브라우저에게 알려줌

    '프로그래밍 기초 공부' 카테고리의 다른 글

    CDN(Content Delivery Network)란?  (0) 2022.11.03
    CORS(Cross-Origin-Resource Sharing)란?  (0) 2022.10.31
    SSR과 CSR이란?  (0) 2022.10.31
    MPA와 SPA란?  (0) 2022.10.29
    AJAX란?  (0) 2022.10.17
Designed by Tistory.