DNS (엘리)

도두맨·2025년 1월 24일

공부

목록 보기
6/23

엘리의 DNS를 듣고 주관적으로 정리한 내용입니다.

이런 분들이 들으면 좋아요

  • 네트워크 흐름에 대해 대략 알고 있는 사람들

이렇게 구성되어 있어요

  • 이론편: DNS의 개념과 동작 과정
  • 실전편: 도메인 등록 및 설정 방법

이론편

Domain Name System

  • 도메인 이름IP 주소에 대한 정보를 관리하는 시스템
  • 인터넷 사용자는 IP 주소를 몰라도 됨

DNS 동작 과정

  1. 브라우저가 브라우저에 있는 캐시에서 혹시 IP가 있나 찾아봄
  2. 없으면 컴퓨터에 저장되어 있는 호스트 파일과 캐시에서도 IP를 찾아봄
  3. 여기에도 없으면 DNS서버에 IP주소 요청
  4. DNS 서버가 요청받은 IP주소를 전달

DNS 서버 분리

  • 전 세계의 모든 정보를 관리해서는 안됨 -> 여러 서버로 분리해서 사용
  • 트래픽과 데이터를 분산해서 안정적인 서비스를 제공
  • 서버를 분리하기 위해 DNS는 도메인을 계층적이게 관리

DNS 계층 구조

  • 트리 구조로 나타냄

    www.mo-rak.com. (예시 도메인)

  • 오른쪽부터 시작돼서 왼쪽으로 읽어감
  • .Root Domain, 보통 생략해서 사용
  • 하위 도메인인 comTop-Level Domain
  • 그 하위의 mo-rakwwwSecond-Level Domain, Third-Level Domain
  • Top-Level Domain 아래로는 Sub Domain으로 얘기하기도 함
  • 계층 구조에 따라 서버들이 배치되어 있어서 상위 서버는 하위 서버의 위치를 알고 있음
  • 타고타고 들어가서 원하는 도메인까지 도착
  • 이러한 서버들을 네임서버라고 부름
  • 네임 서버들은 다양한 기관에서 관리를 해주고 있는데, 가비아나 Route53같은 도메인 판매업체는 서브 도메인 네임서버에 해당

DNS 동작 과정

  • 네임서버에서는 실제로 DNS 정보를 가지고 있음 -> 권한이 있는 네임서버라고 부름
  • DNS 정보를 가지고 있지 않은 서버는 권한이 없는 네임서버라고 부름 (로컬 DNS 서버)
  • 로컬 DNS서버는 KT나 SKT같은 통신사에서 제공, 클라이언트와 직접적으로 통신을 하고 네임서버와 통신을 함
  1. 브라우저에서 로컬 DNS 서버로 IP 요청
  2. 로컬 DNS 서버에서 캐시 확인
  3. 없으면 힌트파일(루트 네임서버에 대해 알고 있는 정보)을 토대로 루트서버에 IP 요청
  4. 루트서버는 IP주소를 가지고 있지 않기 때문에 하위 도메인 주소를 줌
  5. TLD에 요청 -> TLD도 IP주소를 가지고 있지 않아서 서브 도메인 주소를 줌
  6. 서브 도메인 네임 서버에 요청 -> IP 주소 줌
  7. 브라우저에게 IP 주소 전달

실전편

도메인 판매 업체

  • 도메인을 등록하려면 네임서버를 직접 구축할 수도 있지만 보통 도메인 판매 업체를 많이 이용
  • 다양한 업체들이 있지만 이번에는 가비아를 예시로 진행

도메인 적용해보기

  1. 원하는 도메인을 구매
  2. DNS 레코드를 추가해 도메인 이름에 IP 주소를 매핑
    IP를 자기 IP주소로 변경해서 저장하면 끝
    이걸 DNS 레코드라고 하는데 이 값이 가비아 네임서버에 저장됨

DNS 레코드: 호스트

  • 호스트는 서브 도메인을 의미
  • @(null), www, m, dev 등
  • 다양한 문자열들을 입력해서 목적에 맞게 다양한 도메인 이름들을 생성할 수 있음

DNS 레코드: 타입

  • 어떤 값이 매핑이 되는지를 설정할 수 있음
  • A: 도메인 이름을 IP 주소(IPv4)로 매핑

  • CNAME: 도메인 이름에 대한 별칭을 매핑
  • www.mo-rak.com 으로 들어가면 mo-rak.com으로 들어가는 것과 같음을 의미
  • 사실 A타입을 이용해서 같은 IP 주소를 입력해도 같은 효과를 낼 수 있음 -> 하지만 IP 주소가 변경 될 경우 모든 IP값을 변경해줘야 함

  • NS: 도메인 이름에 대한 권한이 있는 네임서버를 매핑
  • 여기서는 가비아에서 구매했기 때문에 자동으로 ns값이 가비아 네임서버로 등록되어 있음
  • 다른 네임서버에 우리의 특정 도메인 이름에 대한 권한을 위임했을 때 사용
  • 이와 관련해서 GSLB, CDN를 가지고 학습하면 좋을듯!

DNS 레코드: 그외 타입

  • SOA(Start Of Authority): 도메인 영역에 대한 권한을 설정해줌
    - TTL, 네임서버, 관리자 정보 등을 등록
  • MX(Main eXchange): 도메인 이름에 메일 서버를 매핑
  • PTR(PoinTeR): IP 주소를 도메인 이름에 매핑
    - IP 주소에 매핑되는 도메인 이름을 확인할 때 사용
  • TXT(TeXT): 도메인 이름에 대한 설명과 간단한 텍스트를 지정
    - Google Search Console과 같은 검색 엔진 등록 과정에서 사용되기도 함

DNS 동작 과정 진짜 최종!

  • A와 CNAME을 타입을 가지고 마지막으로 최종 정리
  1. 브라우저에서 로컬 DNS 서버로 IP 주소 요청
  2. 캐시 확인 후 루트 네임서버로 이동 -> A값이 없기 때문에 NS값이 com 네임서버의 주소를 응답
  3. com 네임서버로 이동 -> 여기도 A가 없어서 가비아 네임서버의 주소를 응답
  4. 가비아 네임서버로 이동 -> CNAME 타입으로 mo-rak.com이 매핑되어 있음 -> mo-rak.com에 대한 A 값을 찾아서 응답
  5. 로컬 DNS에서 브라우저로 IP 주소 전달

https://youtu.be/sDXcLyrn6gU [10분 테코톡] 엘리의 DNS

0개의 댓글