DNS(Domain Name System)

인터넷에서 도메인 이름을 IP 주소로 변환하는 분산형 데이터베이스 시스템이다.

IP 주소란 무엇이고 IP 주소는 왜 중요할까요?
https://www.cloudflare.com/ko-kr/learning/dns/glossary/what-is-my-ip-address/

인터넷 전화전화부로 비유되며 특정 컴퓨터 (또는 네트워크로 연결된 임의의 장치) 의 주소를 찾기 위해, 사람이 이해하기 쉬운 호스트 이름 (예: <www.example.com>) 을 실제 네트워크 상에서 사용하는 IP 주소 (예: 192.168.1.1) 로 변환하고 해당 IP 주소로 접속하는 일련의 시스템을 DNS(Domain Name System) 이라고 한다.

DNS 는 전세계적으로 약속된 규칙을 공유한다.
웹 브라우저는 DNS 확인이 막후에서 발생하며 최초의 사용자 요청 외에 사용자 컴퓨터와의 추가적인 대화는 필요하지 않다.

역할과 기능

특징

DNS 조회는 어떻게 작동하는가?

Verisign Domain Name Industry Brief, June 2007 (PDF)
http://www.verisign.com/static/DNIB_09_0529web.pdf

  1. 사용자 요청:
  1. 로컬 DNS 캐시 확인:
  1. 재귀적 DNS 리졸버:
  1. 루트 네임서버 쿼리:
  1. TLD 네임서버 쿼리:
  1. 권한 있는 네임서버 쿼리:
  1. 응답 및 캐싱:

DNS 서버 유형

DNS Recursive Resolver(DNS 재귀적 리졸버)

DNS Root Nameserver(루트 이름 서버)

DNS TLD Nameserver (TLD 이름 서버)

Authoritative Nameserver (권한 있는 이름 서버)

Local DNS 캐시

DNS 보안 위협 및 보호 기술

DNS 보안 위협

DNS 스푸핑 (DNS Spoofing)
DNS 캐시 포이즈닝 (DNS Cache Poisoning)
DNS 하이재킹 (DNS Hijacking)
DNS 증폭 공격 (DNS Amplification Attack)
DNS 터널링 (DNS Tunneling)

DNS 보호 기술

DNSSEC (Domain Name System Security Extensions)
DNS over HTTPS (DoH)
DNS over TLS (DoT)
DANE (DNS-based Authentication of Named Entities)

참고 및 출처

DNS

도메인 네임 시스템
DNS란? (도메인 네임 시스템 개념부터 작동 방식까지)
DNS(Domain Name System)란?
DNS란 뭐고, 네임서버란 뭔지 개념정리
루트 네임 서버
개발자가 알아야할 DNS 동작
도메인 이름 시스템(DNS)이란 무엇인가요?

DNS 레코드

DNS 레코드 종류 ★ 완벽 정리

TLD

최상위 도메인 (top-level domain, TLD)
최상위 도메인이란?

3. DNS 레코드 타입

DNS 서버는 다양한 유형의 레코드를 저장합니다. 각 레코드 타입은 서로 다른 종류의 정보를 제공합니다. API 개발자가 알아야 할 주요 DNS 레코드 타입은 다음과 같습니다:

3.1 A 레코드 (Address)

도메인 이름을 IPv4 주소에 매핑합니다. 이는 가장 기본적인 DNS 레코드 타입입니다.

1
api.example.com.    IN    A    192.0.2.1

3.2 AAAA 레코드 (IPv6 Address)

도메인 이름을 IPv6 주소에 매핑합니다. IPv6는 더 많은 주소 공간을 제공하는 새로운 IP 주소 체계입니다.

1
api.example.com.    IN    AAAA    2001:0db8:85a3:0000:0000:8a2e:0370:7334

3.3 CNAME 레코드 (Canonical Name)

도메인 이름의 별칭을 생성합니다. 한 도메인이 다른 도메인을 가리키게 합니다. 마이크로서비스 아키텍처에서 특히 유용합니다.

1
api-v1.example.com.    IN    CNAME    api.example.com.

3.4 MX 레코드 (Mail Exchange)

이메일을 처리하는 서버를 지정합니다. API 자체와는 직접적인 관련이 없지만, API를 통한 이메일 서비스 통합에 중요합니다.

1
example.com.    IN    MX    10 mail.example.com.

3.5 TXT 레코드 (Text)

도메인에 대한 텍스트 정보를 저장합니다. SPF, DKIM과 같은 이메일 인증이나 도메인 소유권 확인에 사용됩니다.

1
example.com.    IN    TXT    "v=spf1 include:_spf.example.com ~all"

3.6 SRV 레코드 (Service)

특정 서비스를 제공하는 서버를 지정합니다. 포트 번호와 프로토콜 정보를 포함합니다. 마이크로서비스 검색에 유용합니다.

1
_sip._tcp.example.com.    IN    SRV    10 60 5060 sipserver.example.com.

3.7 PTR 레코드 (Pointer)

IP 주소를 도메인 이름으로 역변환합니다. 역방향 DNS 조회에 사용됩니다.

1
1.2.0.192.in-addr.arpa.    IN    PTR    api.example.com.

3.8 CAA 레코드 (Certification Authority Authorization)

도메인에 대한 SSL/TLS 인증서를 발급할 수 있는 인증 기관을 지정합니다. API 보안에 중요합니다.

1
example.com.    IN    CAA    0 issue "letsencrypt.org"