99클럽 TIL

99클럽 코테 스터디 22일차 Network DNS

차가리 2024. 6. 10. 21:40
728x90
  • NetWork
    • DNS
      • DNS Resolver
      • DNS란
    • Http Header
      • CORS
      • keep-alive header
      • Persistent Connection, Non-Persistent Connection
      • OSI 7 계층과 각 계층의 구성요소
      • TCP vs UDP

DNS 란?

  • 호스트의 도메인네임(www.example.com) 을 네트워크 주소 (192.168.1.0) 으로 변환하거나, 그 반대의 역할을 수행하는 시스템

IP로만 외우기 힘드니까 전화번호부와 같이 이름을 지어 전화번호 부에 정리하고 접근하기 쉽게 하는 시스템.

  1. 먼저 DNS 서버로 요청을 넣어서 해당 도메인에 대한 IP 주소를 전달 받음.
  2. 그리고 유저는 IP로 요청을 넣어서 사이트에 접속

DNS 작동원리

  1. 도메인 이름 조회
    • 사용자가 웹 브라우저에 도메인 이름(www.naver.com) 을 입력
  2. [[DNS Resolver]] 로 요청 전달
    • 조회 요청이 사용자의 장치 또는 네트워크의 DNS 리졸버로 전달됨.
    • 리졸버는 일반적으로 인터넷 서비스 제공업체(ISP)에 의해 운영됨.
  3. Root DNS 서버 조회
    • 리졸버는 루트 DNS 서버에 접속하여 도메인의 최상위 도메인(TLD, 예: com)에 대한 정보를 요청함. 루트 서버는 해당 TLD 를 관리하는 네임서버의 주소를 리졸버에게 알려줌.
  4. TLD 네임서버 조회
    • 리졸버는 TLD 네임서버(예 : .com 을 관리하는 네임서버)에 연결하도메인 이름(naver.com)의 네임서버 정보를 요청함.
  5. 권한 있는 네임서버(Authoritative DNS) 조회
    • TLD 네임서버는 해당 도메인의 권한 있는 네임서버 주소를 리졸버에게 제공함. 권한 있는 네임서버는 도메인의 IP 주소 정보를 보유하고 있음.
  6. IP 주소 응답
    • 리졸버는 권한 있는 네임서버에 연결하여 해당 도메인의 IP 주소를 요청함. 권한 있는 네임서버는 도메인의 IP 주소를 리졸버에게 전달함.
  7. IP 주소 캐싱
    • 리졸버는 이 IP 주소를 로컬 캐시에 저장하여 동일한 도메인에 대한 후속 조회 시 시간을 절약
  8. IP 주소를 웹 브라우저에 전달
    • 리졸버는 IP 주소를 웹 브라우저에 전달하고, 브라우저는 이 주소를 사용하여 해당 웹 서버에 연결함.

DNS 서버 종류

기지국 DNS 서버(Local DNS Server)

SKT

  • 기본 DNS 서버 : 219.250.36.130
  • 보조 DNS 서버 : 210.220.163.82

KT

  • 기본 DNS 서버 : 168.126.63.1
  • 보조 DNS 서버 : 168.126.63.2

LG

  • 기본 DNS 서버 : 164.124.101.2
  • 보조 DNS 서버 : 203.248.252.2

구글 (Google Public)

  • 기본 DNS 서버 : 8.8.8.8
  • 보조 DNS 서버 : 8.8.4.4

Root DNS Server

  • DNS 시스템의 최고 정점, 가장 상위에는 ICANN이라고 하는 비영리 단체가 있으며 이 단체가 하는 일은 전 세계에 있는 IP 주소를 관리하며 루트 네임 서버들에 대한 관리 즉, 인터넷이 체계의 관리자와 같은 역할을 함.
  • Root Name Server 는 a.root-server.net 이라는 주소를 가지고 있는 컴퓨터가 존재함.

모든 DNS 서버들은 이 Root DNS Server 의 주소를 기본적으로 가지고 있음.

그래서 모르는 Domain 이 온다면 가장 먼저 Root 에 물어보게 됨.

Root DNS Server 목록에도 없으면? ➡️ TLD(최상위 도메인)

도메인이 google.com 이라면 뒤의 문자를 보고 .com 을 관리하는 TLD 서버에게 물어보라고 정보를 줌.

TLD Server(Top-Level Domain, 최상위 도메인 서버)

Domain 체계에서 최상위는 루트(Root) 로써 인터넷 도메인의 시작점이 됨.

루트 도메인 바로 아래에 있는 것을 1단계 도메인이라고 하며 이를 TLD 라고 함.

TLD는 국가명을 나타내는 국가최상위도메인과 일반적으로 사용되는 일반최상위도메인으로 구분됨.

Second-level DNS Server(2차 도메인)

TLD 서버에서 Second-level DNS 서버를 return 해줌.

만약 naver.com 이나 google.com 을 요청했다면, TLD 서버에서 .com 을 파악하고 그 앞에 달린 문자열을 보고 네이버나 구글 서버에 요청을 함.

Second-level DNS Server -> Sub DNS Server(최하위 서버)

Sub DNS Server

서브 도메인 서버는 www, dev, mail, cafe 등을 구분하는 최하위 서버를 말함.

naver 서버라도 그 안에서 네이버 홈, 메일, 블로그, 카페 등 여러 서비스가 있음. 이 서비스들을 구분하는 도메인 네임이라고 보면 됨.

최종 DNS 의 끔찍한 모습

DNS 문자열 구조

  • 문자열 구조, 즉 도메인 이름은 인터넷의 여러 리소스에 이름을 지정하는데 사용됨.
  • 도메인 이름은 인터넷에서 컴퓨터, 서비스, 혹은 다른 네트워크 리소스를 식별하고 접근하는 데 사용되는 읽기 쉬운 주소임. 도메인 이름 구조는 계층 적으로 설계되어 있으며, 여러 부분으로 구분됨.

기본 구조

도메인 이름은 여러 레이블 이라고 불리는 부분들이 점('.') 으로 구분되어 이루어짐. 각 레이블은 특정 도메인을 나타내며, 오른쪽에서 왼쪽으로 읽을 때 가장 일반적인 범주에서 가장 구체적인 범주로 나아감.

예를들어 www.example.com 의 경우

  • .com 은 최상위 도메인
  • example은 두 번째 레벨 도메인(Second-Level Domain, SLD)
  • www 은 세 번째 레벨 또는 서브 도메인

계층적 구조

DNS 는 계층적 구조를 가지고 있음. 최상위에서 시작하여 점점 더 구체적인 도메인으로 내려감. 다음과 같은 이점을 제공함.

  1. 조직화 : 도메인은 관리가 쉽고 체계적으로 조직화되어 있어, 특정 도인과 관련된 서브 도메인을 쉽게 추가하고 관리할 수 있음.
  2. 위임 : 최상위 도메인에서부터 시작하여, 각 레벨의 도메인 관리 권한을 하위 도메인 관리자에게 위임할 수 있음.

문자 규칙

  • 도메인 이름은 알파벳, 숫자, 및 하이픈을 포함할 수 있음. 하지만 도인 이름은 숫자로 시작하거나 끝날 수 없으며, 하이픈으로 시작하거나 끝날 수 없음.
  • 도메인 이름은 대소문자를 구분하지 않으므로 Example.comexample.com은 같은 주소로 인식됨.

국제화 도메인 이름(IDN)

인터넷 사용자가 전 세계에 걸쳐 있기 때문에, DNS 시스템은 다양한 언어와 문자 체계를 지원하기 위해 국제화 도메인 이름(IDN)을 도입했음. IDN은 퓨니코드(Punycode)라는 특수 인코딩 방식을 사용하여 ASCII 코드가 아닌 문자를 포함할 수 있음. 예를 들어, 한글이나 일본어, 아랍어 등이 포함된 도메인 이름을 사용할 수 있음.

728x90