DNS 작동 원리

2025. 2. 6. 10:51·🔌Network
목차
  1. 1. DNS란 무엇인가?
  2. 2. DNS 작동 원리
  3. 3. 리눅스에서 DNS 작동 원리 확인하기
  4. 4. DNS 캐시 확인 및 플러싱
  5. 5. DNS의 주요 구성 요소
  6. 6. DNS와 보안
  7. 7. 실무에서의 DNS 문제 해결
  8. 결론
728x90
SMALL

1. DNS란 무엇인가?

DNS는 도메인 이름을 IP 주소로 변환해주는 분산 데이터베이스 시스템입니다.
예를 들어:

  • 도메인 이름: www.google.com
  • 변환된 IP 주소: 142.250.196.142

DNS는 인터넷 사용의 필수 요소로, 우리가 긴 숫자의 IP 주소 대신 이해하기 쉬운 도메인 이름을 사용할 수 있게 해줍니다.


2. DNS 작동 원리

DNS의 작동 과정은 크게 다음 4단계로 이루어집니다:

1️⃣ 사용자 입력

사용자가 브라우저에서 www.google.com을 입력합니다.

2️⃣ 로컬 DNS 캐시 확인

운영 체제(OS)는 먼저 로컬 캐시에서 www.google.com의 IP 주소를 확인합니다.

  • 로컬 캐시에 데이터가 있다면 바로 IP 주소를 반환합니다.

3️⃣ DNS 쿼리 발송

캐시에 데이터가 없다면, 시스템은 DNS 서버에 쿼리를 보냅니다. 이 과정은 다음 단계로 진행됩니다:

  • 루트 네임서버: .com의 네임서버를 알려줍니다.
  • TLD 네임서버: google.com의 네임서버를 알려줍니다.
  • 권한 네임서버: www.google.com의 IP 주소를 반환합니다.

4️⃣ IP 주소 반환

DNS 서버가 반환한 IP 주소를 사용하여 사용자는 웹사이트에 접속합니다.


3. 리눅스에서 DNS 작동 원리 확인하기

1️⃣ nslookup 명령어

nslookup은 특정 도메인 이름의 IP 주소를 확인할 수 있는 명령어입니다.

nslookup www.google.com

 

출력 예:

Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.google.com
Address: 142.250.196.142
 

2️⃣ dig 명령어

dig는 DNS 서버와의 상세한 쿼리 결과를 보여줍니다.

dig www.google.com
 

출력 예:

;; ANSWER SECTION:
www.google.com. 299 IN A 142.250.196.142
  • ANSWER SECTION: 도메인에 대한 IP 주소가 표시됩니다.

3️⃣ /etc/resolv.conf 확인

현재 시스템이 사용하는 DNS 서버를 확인하려면 아래 명령어를 실행합니다:

cat /etc/resolv.conf

출력 예:

nameserver 8.8.8.8
nameserver 8.8.4.4
 
  • 8.8.8.8은 Google Public DNS 서버입니다.

4️⃣ host 명령어

host 명령어는 간단하게 DNS 조회를 할 수 있습니다.

host www.google.com

 

출력 예:

www.google.com has address 142.250.196.142

4. DNS 캐시 확인 및 플러싱

1️⃣ DNS 캐시 확인

Linux에서 DNS 캐시를 직접 확인하려면 systemd-resolved를 사용하는 경우 다음 명령어를 실행합니다:

resolvectl statistics
 

2️⃣ DNS 캐시 삭제

DNS 캐시를 초기화하려면 다음 명령어를 사용합니다:

sudo systemd-resolve --flush-caches

5. DNS의 주요 구성 요소

1️⃣ 루트 네임서버 (Root Name Server)

  • 인터넷의 최상위 DNS 서버.
  • .com, .org 등의 TLD 네임서버로 요청을 전달.

2️⃣ TLD 네임서버 (Top-Level Domain Name Server)

  • .com, .net, .org 등 최상위 도메인에 대한 정보를 관리.

3️⃣ 권한 네임서버 (Authoritative Name Server)

  • 특정 도메인(예: google.com)의 IP 주소를 관리.

6. DNS와 보안

DNS는 보안상 여러 취약점이 존재합니다. 이를 방지하기 위한 주요 기술은 다음과 같습니다:

  • DNSSEC: DNS 쿼리 응답의 위변조를 방지.
  • HTTPS DNS (DoH): DNS 요청을 암호화하여 보호.

7. 실무에서의 DNS 문제 해결

1️⃣ 특정 도메인 접속 불가

DNS 문제로 특정 도메인에 접속할 수 없을 경우:

  1. DNS 서버를 변경:
     
    sudo vi /etc/resolv.conf
     
    다음을 추가:
    nameserver 8.8.8.8
    nameserver 1.1.1.1
     
  2. DNS 캐시 초기화:
     
    sudo systemd-resolve --flush-caches

2️⃣ DNS 트래픽 분석

tcpdump를 사용하여 DNS 요청/응답을 캡처:

sudo tcpdump -i eth0 port 53
 

결론

DNS는 인터넷에서 도메인 이름과 IP 주소를 연결하는 필수 시스템

 

LIST

'🔌Network' 카테고리의 다른 글

VLAN vs VXLAN: 네트워크 가상화의 핵심 개념 정리  (0) 2025.02.11
CentOS 7에서 IPS와 IDS 비교 및 설정 방법  (0) 2025.02.11
리눅스에서 네트워크 Bonding 설정하는 방법  (0) 2025.02.05
iperf를 사용한 네트워크 테스트 - 병목 현상 유발 시나리오  (0) 2025.01.25
[Network] Overlay와 Underlay의 개념  (0) 2024.12.23
  1. 1. DNS란 무엇인가?
  2. 2. DNS 작동 원리
  3. 3. 리눅스에서 DNS 작동 원리 확인하기
  4. 4. DNS 캐시 확인 및 플러싱
  5. 5. DNS의 주요 구성 요소
  6. 6. DNS와 보안
  7. 7. 실무에서의 DNS 문제 해결
  8. 결론
'🔌Network' 카테고리의 다른 글
  • VLAN vs VXLAN: 네트워크 가상화의 핵심 개념 정리
  • CentOS 7에서 IPS와 IDS 비교 및 설정 방법
  • 리눅스에서 네트워크 Bonding 설정하는 방법
  • iperf를 사용한 네트워크 테스트 - 병목 현상 유발 시나리오
terranbin
terranbin
Studying Computer Science
  • terranbin
    Engineer
    terranbin
  • 전체
    오늘
    어제
    • 분류 전체보기 (129)
      • ☁️Cloud (42)
        • AWS (38)
        • MS Azure (4)
      • 🐳 Infra (1)
        • System (12)
        • DRBD (3)
      • 🔌Network (8)
      • 🔹Storage (8)
      • 🔹Kubernetes (15)
      • 🔹 DevOps (8)
      • 🔹Study (4)
      • 🔹Install (6)
      • 🔹ETC (2)
      • 🔹PostMan (6)
      • 🔹Openstack (3)
      • 🔹RcloneView (6)
      • 🔹Test (0)
      • 🔹Debug (2)
      • 🔹DBMS (2)
  • 블로그 메뉴

    • 홈
  • 링크

    • sungbin
    • Github
  • 공지사항

  • 인기 글

  • 태그

    rocky9
    EBS
    Google Drive
    kubectl
    network
    rocky8
    AWS
    centos7
    SAA
    postman
    rcloneview
    ceph
    EC2
    S3
    설치
    distributed load testing
    OpenStack
    kubernetes
    terraform
    aws dlt
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
terranbin
DNS 작동 원리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.