Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

1.1.1.3(DNS) (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 15:00

1.1.1.3(DNS)

이름

도메인 네임 시스템(Domain Name System, DNS)

목적

사람이 읽을 수 있는 도메인 이름(예: www.example.com)을 컴퓨터가 이해하는 IP 주소(예: 192.0.2.1)로 변환

역할

인터넷의 전화번호부

프로토콜

TCP/IP 프로토콜 스위트의 핵심 구성 요소

사용 포트

주로 UDP 포트 53 (대용량 전송 시 TCP 포트 53도 사용)

계층 구조

루트 DNS 서버, TLD 서버, 권한 있는 네임 서버, 리커서(재귀 확인자)로 구성

기술 상세 정보

작동 방식

재귀적 질의(Recursive Query)와 반복적 질의(Iterative Query)를 조합하여 주소를 확인

레코드 유형

A 레코드(IPv4 주소), AAAA 레코드(IPv6 주소), CNAME 레코드(별칭), MX 레코드(메일 서버), NS 레코드(네임 서버), TXT 레코드(텍스트 정보) 등

캐싱

DNS 캐시를 통해 조회 속도 향상 및 네트워크 트래픽 감소

보안 확장

DNSSEC(Domain Name System Security Extensions)을 통해 데이터 무결성과 인증 제공

동적 업데이트

동적 DNS(DDNS)를 통해 실시간으로 호스트명과 IP 주소 매핑 변경 가능

역방향 조회

PTR 레코드를 사용하여 IP 주소로 도메인 이름을 조회

도메인 위임

네임 서버를 통해 도메인의 하위 영역 관리 권한을 다른 서버에 위임 가능

공격 유형

DNS 스푸핑, DNS 캐시 포이즈닝, DNS 증폭 공격 등

개선/대체 기술

DNS over HTTPS(DoH), DNS over TLS(DoT) 등 프라이버시 및 보안 강화 프로토콜

1. 개요

DNS(Domain Name System)는 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 이해하는 IP 주소로 변환하는 인터넷의 전화번호부와 같은 시스템이다. 인터넷의 핵심 구성 요소 중 하나로, 사용자가 복잡한 숫자 주소를 기억하지 않고도 웹사이트에 접속할 수 있게 한다.

이 시스템은 1980년대 초 폴 모카페트리스와 존 포스터에 의해 개발되었으며, 기존의 단일 호스트 파일(HOSTS.TXT) 관리 방식의 비효율성을 해결하기 위해 고안되었다[1]. DNS는 계층적, 분산형 데이터베이스 구조를 채택하여 전 세계의 도메인 정보를 효율적으로 관리한다.

DNS의 주요 기능은 다음과 같다.

* 이름 해석(Name Resolution): www.example.com과 같은 도메인 이름을 192.0.2.1과 같은 IP 주소로 변환한다.

* 분산 관리: 중앙 집중식 관리가 아닌, 각 도메인을 소유한 조직이 자신의 네임 서버를 통해 정보를 관리한다.

* 자원 레코드 제공: IP 주소 변환 외에도, 메일 서버 정보(MX 레코드), 별칭 설정(CNAME 레코드) 등 다양한 정보를 제공한다.

이 시스템 없이는 현대적인 인터넷 사용이 거의 불가능하며, 웹 브라우징, 이메일 전송, 클라우드 서비스 접근 등 모든 네트워크 활동의 기초가 된다.

2. DNS의 기본 개념

도메인 이름은 사람이 읽을 수 있는 웹사이트 주소(예: www.example.com)이고, IP 주소는 컴퓨터나 네트워크 장치가 서로를 식별하는 데 사용하는 숫자로 된 고유 식별자(예: 192.0.2.1)이다. DNS는 이 두 체계 간의 변환을 담당하는 전화번호부와 같은 시스템이다. 사용자가 브라우저에 도메인 이름을 입력하면 DNS는 이를 해당 서버의 실제 IP 주소로 변환하여 사용자가 원하는 웹사이트에 접속할 수 있도록 한다.

이 변환 과정의 핵심 구성 요소는 네임 서버이다. 네임 서버는 도메인 이름과 IP 주소의 매핑 정보를 저장하고 관리하는 특수한 서버이다. 전 세계에는 수많은 네임 서버가 계층적으로 구성되어 있으며, 각 네임 서버는 특정 도메인 영역(예: .com, example.com)에 대한 정보를 책임진다. 권한 있는 네임 서버는 특정 도메인에 대한 최종적인 정보를 보유하고, 재귀 리졸버는 사용자의 질의를 받아 필요한 정보를 찾기 위해 여러 네임 서버를 순차적으로 질의하는 역할을 한다.

구성 요소

설명

도메인 이름

사람이 인지하기 쉬운 웹 주소 형태의 식별자 (예: naver.com)

IP 주소

네트워크 상에서 장치를 식별하는 숫자 주소 (예: IPv4: 223.130.195.200, IPv6: 2001:0db8:85a3::8a2e:0370:7334)

네임 서버

도메인 이름과 IP 주소의 매핑 정보를 저장하고 질의에 응답하는 서버

DNS의 이러한 기본 구조는 복잡해 보이는 인터넷 주소 체계를 단순화하고, 서버의 IP 주소가 변경되더라도 사람들은 동일한 도메인 이름을 사용하여 접속할 수 있게 해준다. 이는 인터넷의 사용성과 유연성의 기초를 제공한다.

2.1. 도메인 이름과 IP 주소

도메인 이름은 사람이 읽고 기억하기 쉬운 형태의 주소이며, IP 주소는 컴퓨터와 네트워크 장비가 통신에 사용하는 숫자로 된 고유 식별자이다. 예를 들어, 'www.example.com'과 같은 도메인 이름은 '192.0.2.1'이나 '2001:db8::1'과 같은 IPv4 또는 IPv6 주소에 대응된다. DNS의 핵심 기능은 사용자가 입력한 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 것이다.

도메인 이름은 계층적 구조를 가진다. 최상위에는 .com, .net, .org 같은 일반 최상위 도메인(gTLD)이나 국가 코드 최상위 도메인(ccTLD)이 위치한다. 그 아래에 'example'과 같은 2차 도메인, 그리고 'www'와 같은 3차 도메인(서브도메인)이 차례로 구성된다. 이 계층 구조는 점('.')으로 구분되며, 오른쪽에서 왼쪽으로 상위에서 하위로 해석된다.

IP 주소는 네트워크 상의 특정 장치를 정확히 찾아가기 위한 주소 체계이다. IPv4 주소는 32비트로 구성되어 약 43억 개의 고유 주소를 제공하지만, 주소 고갈 문제로 인해 128비트 주소 체계를 사용하는 IPv6로 전환되고 있다. DNS는 도메인 이름과 이 IP 주소 간의 매핑 정보를 전 세계에 분산 저장된 네임 서버에 기록하고 관리한다.

구분

도메인 이름

IP 주소

목적

사람의 편의성과 식별 용이성

네트워크 장비의 논리적 주소 지정

형태

문자 기반 (예: naver.com)

숫자 기반 (예: 192.0.2.1)

구조

계층적 구조 (점으로 구분)

네트워크 부분과 호스트 부분으로 구분

변환

DNS를 통해 IP 주소로 변환됨

도메인 이름 없이 직접 통신 가능

이러한 변환 과정이 없으면 사용자는 웹사이트에 접속할 때마다 길고 복잡한 IP 주소를 직접 입력해야 하므로, DNS는 인터넷 사용의 편의성을 근본적으로 제공하는 핵심 시스템이다.

2.2. 네임 서버의 역할

네임 서버는 도메인 이름과 IP 주소 간의 변환 정보를 저장하고 관리하는 특수한 서버이다. 이 서버들은 전 세계에 분산되어 계층적 구조를 이루며, 사용자의 질의에 응답하여 올바른 IP 주소를 찾아주는 핵심적인 역할을 담당한다.

네임 서버는 크게 두 가지 주요 유형으로 구분된다. 하나는 권한 있는 네임 서버이다. 이 서버는 특정 도메인(예: example.com)에 대한 정확한 정보를 최종적으로 보유하고 책임지는 서버이다. 해당 도메인의 A 레코드, MX 레코드 등 모든 DNS 레코드의 원본 데이터를 관리하며, 외부에서 이 도메인에 대해 질의가 오면 권위 있는 답변을 제공한다. 다른 하나는 재귀 리졸버이다. 이 서버는 일반 사용자나 클라이언트 컴퓨터가 직접 질의를 보내는 첫 번째 접점이다. 재귀 리졸버는 클라이언트를 대신하여 필요한 경우 루트 네임 서버, TLD 네임 서버, 최종적으로 권한 있는 네임 서버에 차례로 질의를 수행하여 답을 찾아오는 역할을 한다.

네임 서버 시스템의 효율성은 DNS 캐싱에 크게 의존한다. 재귀 리졸버는 한 번 조회한 도메인 정보를 일정 시간(TTL) 동안 캐시에 저장한다. 이후 동일한 질의가 들어오면 캐시된 정보를 즉시 응답하여, 매번 전체 계층을 거치는 질의 과정을 생략하고 응답 속도를 크게 향상시킨다. 이 분산 캐싱 메커니즘은 전 세계적인 DNS 트래픽 부하를 줄이는 데 결정적인 역할을 한다.

3. DNS 작동 원리

DNS 시스템은 클라이언트가 도메인 이름을 입력했을 때, 이를 IP 주소로 변환하기 위해 여러 서버 간에 협력하는 과정을 거친다. 이 과정은 크게 재귀적 질의와 반복적 질의라는 두 가지 방식으로 구분된다.

재귀적 질의는 클라이언트(예: 사용자의 컴퓨터)가 리졸버(재귀 DNS 서버)에게 질의를 보내면, 리졸버가 최종 답변을 찾을 때까지 스스로 다른 DNS 서버들에게 연쇄적으로 질의를 수행하여 결과를 클라이언트에게 돌려주는 방식이다. 반면, 반복적 질의는 리졸버가 루트 DNS 서버, TLD 서버, 최종적으로 권한 있는 DNS 서버에 차례로 질의할 때, 각 서버가 "다음에 물어볼 서버의 정보"만을 반환하면 리졸버가 그 정보를 바탕으로 직접 다음 서버에게 다시 질의를 진행하는 방식이다. 일반적인 웹 브라우징에서는 클라이언트와 ISP 제공 리졸버 간에 재귀적 질의가, 리졸버와 다른 계층의 DNS 서버들 사이에는 반복적 질의가 혼합되어 사용된다.

이러한 질의 과정의 효율성을 높이는 핵심 메커니즘은 DNS 캐싱이다. 리졸버나 클라이언트는 한 번 조회한 도메인 이름과 IP 주소 매핑 정보를 일정 시간 동안 로컬에 저장한다. 이후 동일한 질의가 들어오면 캐시에 저장된 정보를 즉시 반환하여 네트워크 트래픽과 응답 시간을 줄인다. 캐시된 정보가 유효한 시간은 TTL(Time To Live) 값으로 정의되며, 이 값은 해당 DNS 레코드를 관리하는 권한 있는 서버에서 설정한다.

질의 유형

수행 주체

설명

일반적 사용 예

재귀적 질의

리졸버(재귀 DNS 서버)

클라이언트의 요청을 받은 리졸버가 최종 답변을 찾아서 반환한다.

사용자 컴퓨터가 ISP의 DNS 서버에 질의할 때

반복적 질의

리졸버(재귀 DNS 서버)

리졸버가 각 계층의 DNS 서버로부터 다음 질의 대상에 대한 참조 정보만 받아 직접 계속 질의한다.

리졸버가 루트 서버, TLD 서버를 순차적으로 질의할 때

DNS 캐싱

리졸버 / 클라이언트 OS

조회 결과를 TTL 시간 동안 저장하여 동일 질의에 빠르게 응답한다.

자주 방문하는 웹사이트의 주소 변환 속도 향상

3.1. 재귀적 질의와 반복적 질의

DNS 질의는 크게 재귀적 질의와 반복적 질의 두 가지 방식으로 구분된다. 이 두 방식은 DNS 리졸버와 네임 서버 간의 상호작용 방법을 정의하며, 최종적으로 사용자가 요청한 도메인 이름에 대한 IP 주소를 찾아내는 과정을 담당한다.

재귀적 질의는 클라이언트(예: 사용자의 컴퓨터)가 DNS 리졸버에게 질의를 보낼 때 사용하는 일반적인 방식이다. 이때 클라이언트는 리졸버에게 "이 도메인의 IP 주소를 찾아서 결과만 나에게 알려 달라"고 요청한다. 리졸버는 이 요청을 받으면, 필요한 경우 루트 서버부터 TLD 서버, 최종 권한 있는 네임 서버에 이르기까지 스스로 모든 단계의 질의를 수행하여 최종 답변을 찾는다. 클라이언트는 오직 이 리졸버와만 통신하며, 복잡한 조회 과정을 알 필요가 없다. 대부분의 최종 사용자와 인터넷 서비스 제공업체의 로컬 DNS 서버는 이 재귀적 질의 방식을 사용한다.

반면, 반복적 질의는 DNS 서버 간의 상호작용에 주로 사용된다. 재귀적 질의를 받은 리졸버가 다른 네임 서버에게 질의할 때, 해당 네임 서버는 자신이 최종 답변을 알지 못하면 "다음에 물어볼 서버의 주소"만을 알려준다. 예를 들어, 리졸버가 example.com의 IP를 묻기 위해 루트 DNS 서버에 물으면, 루트 서버는 .com TLD 서버의 주소만 반환한다. 그러면 리졸버는 다시 그 .com TLD 서버에게 질의하고, TLD 서버는 example.com을 관리하는 권한 있는 네임 서버의 주소를 알려준다. 리졸버는 최종 답변을 얻을 때까지 이 과정을 반복적으로 수행해야 한다.

질의 유형

요청자

응답자

응답 내용

특징

재귀적 질의

클라이언트 (사용자)

DNS 리졸버

최종 IP 주소 또는 오류 메시지

리졸버가 모든 조회 작업을 책임짐. 클라이언트는 한 번만 질의.

반복적 질의

DNS 리졸버

다른 네임 서버 (루트, TLD, 권한 있는 서버)

최종 IP 주소 또는 다음에 질의할 서버의 참조 정보

리졸버가 직접 여러 서버를 차례로 조회해야 함.

전체적인 DNS 조회 과정은 클라이언트의 재귀적 질의로 시작되어, 리졸버가 이를 받아 여러 네임 서버들에게 반복적 질의를 수행함으로써 완료된다. 이 이중 구조는 질의 부하를 분산시키고, DNS 시스템의 계층적 구조를 효율적으로 운용할 수 있게 한다.

3.2. DNS 캐싱과 TTL

DNS 캐싱은 DNS 질의 응답을 임시로 저장하여 이후 동일한 질의에 대한 응답 속도를 높이고 네트워크 트래픽을 줄이는 메커니즘이다. 리졸버나 사용자의 로컬 DNS 서버는 질의 결과를 일정 시간 동안 캐시에 보관한다. 동일한 도메인 이름에 대한 질의가 다시 발생하면, 서버는 캐시에 저장된 정보를 즉시 반환하여 루트 DNS 서버나 TLD 서버까지 거슬러 올라가는 과정을 생략한다. 이는 전반적인 DNS 해석 속도를 획기적으로 개선하고, 상위 서버에 가해지는 부하를 분산시키는 효과가 있다.

캐시에 저장된 정보의 유효 기간은 TTL 값에 의해 결정된다. TTL은 'Time To Live'의 약자로, DNS 레코드에 설정된 초 단위의 숫자 값이다. 이 값은 해당 레코드 정보가 캐시에 얼마나 오래 유효한지를 정의한다. 예를 들어, A 레코드의 TTL이 300으로 설정되어 있다면, 리졸버는 이 IP 주소 정보를 받은 후 300초(5분) 동안 캐시에 보관하고, 그 기간 내에는 캐시된 정보를 사용한다. TTL이 만료되면 캐시는 해당 정보를 삭제하며, 다음 질의 시에는 다시 권한 있는 서버로부터 새로운 정보를 가져와야 한다.

TTL 값의 설정은 도메인 관리의 중요한 요소이다. 짧은 TTL 값(예: 60초)은 DNS 정보 변경이 빠르게 전파되도록 하여, 서버 이전이나 장애 복구 시 유연성을 제공한다. 반면, 긴 TTL 값(예: 86400초, 1일)은 리졸버가 캐시를 더 오래 유지하게 만들어 반복적인 질의를 줄여 성능을 높이고, 원본 DNS 서버의 부하를 감소시킨다. 그러나 정보 변경 시 전파 지연 시간이 길어질 수 있다는 단점이 있다. 일반적으로 안정적인 서비스에는 긴 TTL을, 변경이 빈번하거나 테스트 환경에는 짧은 TTL을 설정하는 것이 권장된다[2].

4. DNS 레코드 종류

DNS 레코드는 도메인 이름 시스템 내에서 특정 도메인 이름에 대한 정보를 정의하는 지시자이다. 이 레코드들은 권한 있는 네임 서버에 저장되며, DNS 쿼리에 응답하여 도메인 이름을 IP 주소로 변환하거나 메일 서버를 지정하는 등 다양한 목적을 수행한다. 가장 일반적인 레코드 유형으로는 A 레코드와 AAAA 레코드, CNAME 레코드가 있다.

A 레코드(Address Record)는 도메인 이름을 IPv4 주소(예: 192.0.2.1)에 매핑하는 가장 기본적인 레코드이다. 반면, AAAA 레코드(Quad-A 레코드)는 동일한 기능을 IPv6 주소(예: 2001:0db8::1)에 대해 수행한다. CNAME 레코드(Canonical Name Record)는 하나의 도메인 이름을 다른 도메인 이름(정규 이름)으로 연결하는 별칭을 만든다. 예를 들어, 'www.example.com'이 'example.com'을 가리키도록 설정하는 데 사용된다[3].

다른 중요한 DNS 레코드 종류는 다음과 같다.

레코드 타입

목적

설명

MX 레코드 (Mail Exchange)

메일 교환

해당 도메인으로 전송된 이메일을 수신할 메일 서버의 호스트명과 우선순위를 지정한다.

TXT 레코드 (Text)

텍스트 정보

도메인에 대한 임의의 텍스트 정보를 저장한다. 주로 SPF, DKIM, DMARC 같은 이메일 발신자 인증 설정이나 도메인 소유권 확인에 사용된다.

NS 레코드 (Name Server)

네임 서버

해당 도메인에 대한 권한 있는 네임 서버가 무엇인지를 지정한다. 도메인 위임(delegation)의 핵심이다.

SOA 레코드 (Start of Authority)

권한 시작

도메인 영역(zone)에 대한 기본 정보(주 네임 서버, 관리자 이메일, 영역 전송 타이머 등)를 정의한다.

PTR 레코드 (Pointer)

포인터

역방향 DNS 조회에서 IP 주소를 도메인 이름으로 매핑하는 데 사용된다.

SRV 레코드 (Service)

서비스 위치

특정 서비스(예: VoIP, 인스턴트 메시징)를 제공하는 호스트의 포트 번호와 위치를 정의한다.

이러한 레코드들은 각각 고유한 목적을 가지며, 함께 작동하여 인터넷의 주소 체계와 서비스 발견 기능을 구성한다. 올바른 DNS 레코드 설정은 웹사이트 접근성, 이메일 전송, 그리고 전반적인 네트워크 서비스의 정상 동작을 보장하는 데 필수적이다.

4.1. A, AAAA, CNAME 레코드

A 레코드는 가장 기본적인 DNS 레코드로, 도메인 이름을 IPv4 주소(예: 192.0.2.1)로 매핑한다. 호스트 이름을 32비트 주소로 변환하는 역할을 담당하며, 웹사이트나 서버에 접근하기 위한 필수 레코드이다.

AAAA 레코드는 A 레코드의 IPv6 버전이다. IPv6는 128비트 주소 체계를 사용하며, AAAA 레코드는 도메인 이름을 IPv6 주소(예: 2001:0db8:85a3::8a2e:0370:7334)로 연결한다. IPv4 주소 고갈 문제에 대응하여 점차 중요성이 증가하고 있다.

CNAME 레코드는 'Canonical Name'의 약자로, 한 도메인 이름을 다른 도메인 이름(정규 이름)으로 연결하는 별칭(alias)을 만든다. 실제 IP 주소를 직접 지정하는 대신, 이미 A 레코드나 AAAA 레코드가 설정된 다른 도메인을 가리키도록 한다. 주로 여러 서비스가 하나의 IP 주소를 공유하거나, 서비스 제공업체의 도메인을 사용할 때 활용된다.

레코드 타입

목적

값 예시

A

도메인을 IPv4 주소로 매핑

203.0.113.45

AAAA

도메인을 IPv6 주소로 매핑

2001:db8::1

CNAME

도메인을 다른 도메인(정규 이름)으로 별칭 지정

www -> example.com

CNAME 레코드를 설정하면, 원본 도메인(정규 이름)의 IP 주소가 변경되어도 CNAME 레코드는 자동으로 새로운 주소를 따라간다. 그러나 CNAME 레코드는 도메인 이름의 루트(APEX 도메인 또는 네이키드 도메인)에는 일반적으로 사용할 수 없으며, MX 레코드나 NS 레코드와 같은 다른 레코드와 공존할 수 없다는 제약이 있다.

4.2. MX, TXT, NS 레코드

MX 레코드(Mail Exchanger Record)는 도메인 이름으로 전송되는 이메일을 어떤 메일 서버가 수신할지 지정하는 DNS 레코드이다. 이 레코드는 메일 서버의 호스트명과 우선순위 값을 포함한다. 우선순위 값은 숫자가 낮을수록 높은 우선순위를 의미하며, 주 메일 서버가 응답하지 않을 경우 다음 우선순위의 서버로 메일 전송이 시도된다. 일반적으로 SMTP 프로토콜을 사용하는 메일 시스템의 정상적인 운영에 필수적이다.

TXT 레코드(Text Record)는 도메인에 대한 임의의 텍스트 정보를 제공하는 데 사용된다. 초기에는 사람이 읽을 수 있는 메모 용도였으나, 현재는 주로 이메일 보안, 도메인 소유권 확인, 스팸 방지 정책 설정 등 다양한 검증 목적으로 활용된다. 대표적인 예로 SPF(Sender Policy Framework), DKIM(DomainKeys Identified Mail), DMARC(Domain-based Message Authentication, Reporting & Conformance)와 같은 이메일 인증 메커니즘의 설정 정보를 TXT 레코드에 저장한다.

NS 레코드(Name Server Record)는 해당 도메인의 권한 있는 네임 서버(Authoritative Name Server)가 무엇인지를 지정하는 가장 기본적인 레코드이다. 즉, 어떤 DNS 서버가 해당 도메인에 대한 정확한 정보(레코드)를 가지고 있고 질의에 응답할 권한이 있는지를 정의한다. 일반적으로 도메인 등록 시 상위 도메인(TLD 서버)에 등록되며, 도메인의 DNS 존 파일을 관리하는 서버를 가리킨다.

레코드 타입

주요 용도

예시 값 (간략화)

MX

메일 서버 지정

10 mail.example.com

TXT

도메인 검증 및 정책 정의

"v=spf1 include:_spf.google.com ~all"

NS

권한 있는 네임 서버 지정

ns1.registrar.com

5. DNS 보안

DNS는 인터넷의 핵심 인프라이지만, 설계 상의 특성으로 인해 여러 보안 위협에 노출되어 있다. 가장 대표적인 공격 방식은 DNS 스푸핑(DNS Spoofing) 또는 DNS 캐시 포이즈닝(DNS Cache Poisoning)이다. 이는 공격자가 위조된 DNS 응답을 DNS 캐싱 서버에 주입하여, 사용자가 정상적인 IP 주소 대신 악성 서버의 주소로 연결되도록 유도하는 기법이다. 결과적으로 사용자는 피싱 사이트로 유인되거나, 악성 코드 유포 지점으로 트래픽이 전송될 수 있다[4]. 또한, DNS 증폭 공격을 통한 DDoS 공격도 빈번하게 발생한다. 공격자는 작은 크기의 질의 패킷을 위조하여 공격 대상에게 대량의 응답 트래픽이 반사되도록 만들어 네트워크 자원을 고갈시킨다.

이러한 위협에 대응하기 위해 개발된 핵심 보안 표준이 DNSSEC(DNS Security Extensions)이다. DNSSEC은 공개 키 암호 방식을 기반으로 DNS 응답의 무결성과 인증을 제공한다. 기존 DNS가 데이터의 진위를 확인할 수 없는 것과 달리, DNSSEC은 모든 DNS 레코드에 디지털 서명을 추가한다. 리졸버는 이 서명을 해당 도메인의 공개 키를 이용해 검증함으로써, 응답이 신뢰할 수 있는 권한 있는 네임 서버로부터 왔으며 중간에 변조되지 않았음을 확인할 수 있다. DNSSEC의 도입은 DNS 스푸핑 공격을 근본적으로 방지하는 것을 목표로 한다.

그러나 DNSSEC도 완벽한 해결책은 아니다. 이 프로토콜은 데이터의 위·변조를 방지하지만, 통신 내용의 기밀성은 보장하지 않는다. 질의와 응답 내용이 여전히 평문으로 전송될 수 있어, 사용자의 방문 기록이 노출될 위험이 있다. 또한, 서명 생성과 검증 과정으로 인한 오버헤드와 복잡한 키 관리의 필요성은 실제 배포와 운영의 장벽으로 작용해왔다. 이러한 기밀성 문제를 해결하기 위해 등장한 기술들이 DoH(DNS over HTTPS)와 DoT(DNS over TLS)이다. 이들은 DNS 질의와 응답 트래픽을 암호화된 HTTPS 또는 TLS 터널 안에 캡슐화하여, 제3자가 엿들을 수 없도록 한다.

5.1. DNS 스푸핑과 위협

DNS 스푸핑은 공격자가 위조된 DNS 응답을 전송하여 사용자를 악의적인 웹사이트로 유도하는 공격 기법이다. 이 공격의 핵심은 DNS 캐싱 메커니즘을 악용하는 것이다. 공격자는 리졸버나 사용자 장치의 캐시에 저장된 정상적인 IP 주소 정보를 악성 주소로 바꿔치기한다. 사용자는 정상적인 도메인 이름을 입력했음에도 불구하고, 조작된 DNS 응답에 따라 공격자가 운영하는 가짜 사이트에 접속하게 된다.

DNS 스푸핑의 주요 위협은 피싱과 중간자 공격을 가능하게 한다는 점이다. 예를 들어, 사용자가 온라인 뱅킹 사이트에 접속하려 할 때, DNS 응답이 조작되어 가짜 은행 사이트로 연결될 수 있다. 이 가짜 사이트는 진짜와 똑같이 보이도록 설계되어, 사용자가 입력한 로그인 정보나 금융 정보를 탈취한다. 또한, 합법적인 소프트웨어 업데이트 서버 대신 악성 코드를 배포하는 서버로 연결하여 맬웨어 감염을 유발할 수도 있다.

DNS 스푸핑을 수행하는 일반적인 방법은 다음과 같다.

공격 방식

설명

캐시 포이즈닝

권한 있는 DNS 서버로 가장하여 리졸버에 위조된 레코드를 캐시에 저장시키는 방법이다.

패킷 가로채기

네트워크 트래픽을 감시하다가 DNS 질의 패킷을 발견하면, 정상 응답보다 빠르게 위조 응답을 보내는 방법이다.

이러한 위협으로부터 보호하기 위한 기본적인 조치로는 신뢰할 수 있는 DNS 서버를 사용하고, DNSSEC을 활성화하며, 네트워크 암호화를 적용하는 것이 있다.

5.2. DNSSEC(DNS 보안 확장)

DNSSEC(DNS Security Extensions)은 DNS 프로토콜의 취약점을 해결하기 위해 설계된 보안 확장 표준이다. 기존 DNS는 데이터의 무결성과 신원 확인을 보장하지 않아, DNS 스푸핑이나 캐시 포이즈닝과 같은 공격에 취약했다. DNSSEC은 공개 키 암호화 기술을 기반으로 DNS 레코드에 디지털 서명을 추가하여, 응답이 신뢰할 수 있는 출처에서 왔으며 전송 중 변조되지 않았음을 검증할 수 있게 한다.

DNSSEC의 핵심 작동 원리는 디지털 서명과 공개 키 인프라(PKI)에 있다. 권한 있는 네임 서버는 존(Zone) 데이터에 개인 키로 서명을 생성하고, 해당 공개 키는 상위 존에 의해 서명되어 신뢰 체인을 형성한다. 최종적으로 이 체인은 루트 DNS 서버까지 이어지며, 리졸버(재귀 DNS 서버)는 이 공개 키들을 사용하여 수신한 응답의 서명을 검증한다. 주요 레코드 종류로는 데이터 서명을 담는 RRSIG, 공개 키를 제공하는 DNSKEY, 그리고 상위 존의 서명된 키 해시를 가리키는 DS(Delegation Signer) 레코드 등이 있다.

DNSSEC의 도입은 보안성을 크게 향상시키지만 몇 가지 제약 사항도 존재한다. 가장 큰 한계는 데이터의 기밀성을 제공하지 않으며, 질의와 응답 내용을 암호화하지 않는다는 점이다[5]]나 DoH와 같은 다른 프로토콜이 담당하는 영역이다]. 또한, 서명 생성과 검증으로 인한 연산 부하가 증가하며, 존 전송(Zone Transfer)과 같은 관리 작업이 더 복잡해질 수 있다. 아래 표는 DNSSEC의 주요 보안 레코드를 정리한 것이다.

레코드 타입

설명

RRSIG

리소스 레코드 세트(RRset)에 대한 디지털 서명을 담는다.

DNSKEY

존 서명 키(ZSK)와 키 서명 키(KSK) 같은 공개 키를 담는다.

DS

자식 존의 키 해시를 담으며, 상위 존에 의해 서명되어 위임 신뢰 체인을 구축한다.

NSEC/NSEC3

특정 이름이 존재하지 않음을 암호화적으로 증명한다.

전 세계적인 인터넷 인프라의 신뢰성을 높이기 위해, ICANN과 루트 DNS 서버 운영자들은 2010년 루트 존에 DNSSEC 서명을 배포했다. 이로 인해 모든 DNSSEC 검증 리졸버는 루트부터 시작하는 완전한 신뢰 체인을 구축할 수 있게 되었다. 그러나 DNSSEC의 보급률은 아직 완벽하지 않으며, 최종 사용자 측의 리졸버와 도메인 소유자의 존 모두에서 활성화가 필요하다.

6. DNS 서버 유형

DNS 시스템은 계층적 구조로 이루어져 있으며, 각 계층을 담당하는 특정 유형의 서버들이 협력하여 질의를 처리한다. 주요 서버 유형으로는 루트 DNS 서버, TLD 서버, 권한 있는 네임 서버, 그리고 리졸버가 있다.

서버 유형

주요 역할

예시

루트 DNS 서버

최상위 도메인(TLD) 서버의 주소를 제공

a.root-servers.net

TLD 서버

특정 최상위 도메인(.com, .org 등)을 관리하는 서버의 주소 제공

gtld-servers.net

권한 있는 네임 서버

실제 도메인 이름과 IP 주소 매핑 정보를 최종적으로 보유하고 응답

ns1.example.com

리졸버 (재귀 DNS 서버)

클라이언트의 요청을 받아 다른 서버들에게 반복적으로 질의하여 최종 답변을 조회

ISP 제공 DNS, 공개 DNS(8.8.8.8)

루트 DNS 서버는 전 세계에 13개의 루트 서버 그룹(A부터 M)이 분산되어 운영된다. 이들은 실제로는 Anycast 기술을 이용한 수백 대의 물리적 서버로 구성되어 있다. TLD 서버는 .com, .net 같은 일반 최상위 도메인(gTLD)과 .kr, .jp 같은 국가 코드 최상위 도메인(ccTLD)을 관리한다. 권한 있는 네임 서버는 특정 도메인(예: example.com)에 대한 모든 DNS 레코드 정보의 최종 소스이다. 도메인 등록 시 지정되며, 보통 주 서버와 보조 서버로 구성되어 가용성을 높인다.

리졸버는 사용자의 컴퓨터나 라우터가 직접 질의를 보내는 서버이다. 이 서버는 클라이언트를 대신하여 루트 서버부터 TLD 서버, 권한 있는 네임 서버에 이르기까지 필요한 질의를 반복 수행하여 최종 IP 주소를 찾아낸다. 찾은 결과는 TTL 값에 따라 캐시에 저장하여 이후 동일한 질의에 빠르게 응답한다. 일반 사용자는 대부분 인터넷 서비스 제공업체(ISP)가 운영하는 리졸버나 구글 퍼블릭 DNS, 클라우드플레어 DNS 같은 공개 리졸버를 사용한다.

6.1. 루트 DNS 서버

루트 DNS 서버는 DNS 계층 구조의 최상위에 위치하는 서버로, 전 세계에 13개의 루트 서버 그룹(A부터 M까지)이 존재합니다. 각 그룹은 Anycast 기술을 통해 전 세계 수백 개의 물리적 서버 인스턴스로 구성되어 있으며, 이는 단일 장애점을 제거하고 전 세계적인 쿼리 부하를 분산시키는 역할을 합니다. 루트 서버는 TLD 서버의 주소 정보를 담고 있으며, 모든 DNS 쿼리는 최초에 이 루트 서버를 참조하는 것으로 시작됩니다.

루트 서버는 IP 주소를 직접 제공하지 않고, 해당 도메인 이름의 최상위 도메인(예: .com, .net, .kr)을 관리하는 TLD 네임 서버의 주소를 안내합니다. 예를 들어, 'example.com'에 대한 질의가 발생하면, 리졸버는 먼저 루트 서버에 '.com' TLD를 관리하는 네임 서버의 주소를 묻습니다. 이후 질의는 해당 TLD 서버로, 그리고 최종적으로 'example.com'을 관리하는 권한 있는 DNS 서버로 이어집니다.

루트 DNS 서버의 운영은 ICANN이 관리하며, 다양한 기관이 서로 다른 루트 서버 글자를 운영합니다. 예를 들어, A 루트 서버는 Verisign이, J 루트 서버는 ICANN 자체가 운영합니다. 루트 존 파일은 정기적으로 갱신되며, 전 세계의 모든 루트 서버 인스턴스는 동일한 데이터를 제공합니다.

루트 서버 글자

운영 기관

관리 조직

A

Verisign

미국

B

USC-ISI

미국

C

Cogent Communications

미국

D

University of Maryland

미국

E

NASA

미국

F

Internet Systems Consortium

미국

G

U.S. DOD NIC

미국

H

U.S. Army Research Lab

미국

I

Netnod

스웨덴

J

ICANN

미국

K

RIPE NCC

유럽

L

ICANN

미국

M

WIDE Project

일본

이 서버들은 DNS 프로토콜의 근간을 이루며, 인터넷의 정상적인 작동을 위해 필수적인 인프라입니다. 루트 서버에 대한 대규모 DDoS 공격 시도가 있었으나, Anycast와 같은 분산 기술 덕분에 서비스 중단 없이 견뎌냈습니다.

6.2. TLD 및 권한 있는 DNS 서버

TLD(최상위 도메인) 서버는 .com, .net, .org와 같은 일반 최상위 도메인(gTLD)이나 .kr, .jp와 같은 국가 코드 최상위 도메인(ccTLD)에 대한 정보를 관리하는 서버입니다. 이 서버들은 해당 TLD를 관리하는 레지스트리 조직에 의해 운영되며, 특정 도메인의 권한 있는 네임 서버(Authoritative Name Server)의 주소를 알고 있습니다. 예를 들어, 'example.com'에 대한 질의가 들어오면 루트 DNS 서버는 '.com' TLD 서버의 주소를 알려주고, 이후 질의는 '.com' TLD 서버로 전달됩니다.

권한 있는 DNS 서버는 특정 도메인 이름(예: 'example.com')에 대한 최종적인 정보를 소유하고 제공하는 서버입니다. 이 서버는 해당 도메인의 A 레코드, AAAA 레코드, MX 레코드 등 모든 DNS 레코드의 정확한 데이터를 저장하고 있습니다. TLD 서버로부터 질의를 받으면, 권한 있는 서버는 저장된 레코드 정보를 응답하여 최종적인 IP 주소나 기타 정보를 제공합니다. 하나의 도메인은 보통 두 개 이상의 권한 있는 서버를 설정하여 가용성과 안정성을 높입니다.

TLD 서버와 권한 있는 서버의 관계는 다음과 같은 계층 구조로 설명할 수 있습니다.

서버 유형

담당 범위

예시

응답 내용

TLD 서버

특정 최상위 도메인 전체

.com, .kr

해당 도메인의 권한 있는 서버 목록(NS 레코드)

권한 있는 서버

특정 도메인(및 그 하위 도메인)

example.com

해당 도메인의 최종 IP 주소(A/AAAA 레코드) 및 기타 설정

이 두 계층의 서버는 DNS 질의 과정에서 핵심적인 역할을 수행합니다. 리졸버는 루트 DNS 서버에서 시작하여 TLD 서버를 거쳐, 최종적으로 권한 있는 서버에 도달함으로써 사용자가 요청한 도메인 이름에 대한 정확한 정보를 얻을 수 있습니다.

6.3. 리졸버(재귀 DNS 서버)

리졸버는 클라이언트의 요청을 대신 받아 DNS 질의 과정을 완료하는 서버이다. 재귀적 질의를 수행한다는 특징 때문에 재귀 DNS 서버라고도 불린다. 일반 사용자의 컴퓨터나 라우터에 설정된 DNS 서버 주소는 바로 이 리졸버를 가리킨다. 리졸버의 주요 임무는 클라이언트로부터 받은 도메인 이름을 최종적으로 IP 주소로 변환해 답변하는 것이다.

리졸버는 클라이언트에게서 질의를 받으면, 필요한 경우 루트 DNS 서버부터 시작해 TLD 서버, 그리고 최종적으로 해당 도메인의 권한 있는 네임 서버에 차례대로 반복적 질의를 수행한다. 이 과정에서 리졸버는 각 단계에서 얻은 정보를 DNS 캐싱하여, 동일한 질의가 다시 들어올 경우 더 빠르게 응답할 수 있다. 대부분의 인터넷 서비스 제공자는 자체 리졸버를 운영하여 사용자에게 제공한다.

리졸버는 공개적으로 사용 가능한 서비스로도 존재한다. 대표적인 공개 DNS 리졸버로는 구글 퍼블릭 DNS(8.8.8.8), 클라우드플레어 DNS(1.1.1.1) 등이 있다. 이러한 공개 리졸버는 종종 응답 속도 개선, 개인정보 보호 강화, 보안 필터링 추가 등의 기능을 내세운다. 모든 DNS 질의는 최종적으로 리졸버를 통해 해석되므로, 그 신뢰성과 성능은 전체 인터넷 사용 경험에 직접적인 영향을 미친다.

7. 실무 적용

실무에서 DNS는 도메인을 등록하고 필요한 DNS 레코드를 설정하는 과정부터 시작한다. 도메인 등록자는 레지스트라를 통해 원하는 도메인 이름을 등록하고, 해당 도메인의 권한을 관리할 네임 서버를 지정한다. 이후 도메인 소유자는 관리 패널을 통해 A 레코드나 AAAA 레코드를 설정하여 도메인을 특정 IP 주소에 연결하거나, CNAME 레코드로 별칭을 지정하며, MX 레코드를 통해 이메일 서버를 구성한다. TXT 레코드는 도메인 소유권 확인이나 SPF, DKIM 같은 이메일 보안 정책을 설정하는 데 사용된다.

DNS 성능 최적화는 사용자 경험과 서비스 가용성에 직접적인 영향을 미친다. 주요 방법은 다음과 같다.

최적화 방법

설명 및 목적

TTL(Time To Live) 값 조정

레코드의 캐시 유지 시간을 설정하여 리졸버의 재질의 빈도를 관리한다. 변경이 잦은 레코드는 짧은 TTL, 안정적인 레코드는 긴 TTL을 적용한다.

DNS 캐싱 활용

재귀 리졸버와 클라이언트 측 캐시를 통해 응답 시간을 줄이고 상위 서버의 부하를 감소시킨다.

Anycast 라우팅 적용

지리적으로 분산된 여러 서버가 동일한 IP 주소를 사용하여, 사용자에게 가장 가까운 서버가 응답하도록 한다. 이는 루트 DNS 서버나 상용 공개 DNS 서비스에서 흔히 사용된다.

DNS 서버의 이중화 및 분산

권한 있는 네임 서버를 여러 대 구성하여 단일 장애점(SPOF)을 제거하고 신뢰성을 높인다.

또한, 글로벌 서비스의 경우 지리적 위치에 따라 다른 IP 주소를 반환하는 지리적 DNS(GeoDNS)를 구현하여 지연 시간을 최소화하고 로컬 규정을 준수할 수 있다. 모니터링 도구를 이용해 DNS 쿼리 응답 시간과 해결률을 지속적으로 점검하고, DDoS 공격에 대비한 보안 대책을 마련하는 것도 실무에서 필수적이다.

7.1. 도메인 등록 및 설정

도메인 등록은 인터넷 상에서 특정 도메인 이름을 소유하고 사용할 수 있는 권리를 얻는 과정이다. 일반적으로 도메인 등록기관을 통해 이루어지며, 등록자는 원하는 도메인 이름의 사용 가능 여부를 확인한 후 일정 기간(보통 1년 단위) 등록 비용을 지불하고 등록한다. 등록 과정에서 등록자는 자신의 연락처 정보와 도메인을 관리할 네임 서버 정보를 제공해야 한다.

도메인 설정의 핵심은 DNS 레코드를 올바르게 구성하는 것이다. 가장 기본적인 설정은 A 레코드나 AAAA 레코드를 통해 도메인 이름을 서버의 IP 주소에 연결하는 것이다. 예를 들어, 웹사이트를 운영하려면 'example.com'을 호스팅 서버의 IP 주소를 가리키는 A 레코드로 설정한다. 이메일 수신을 위해서는 해당 도메인의 메일 교환 서버를 지정하는 MX 레코드 설정이 필수적이다.

다른 서비스나 도메인으로의 리디렉션을 설정할 때는 CNAME 레코드가 자주 사용된다. 이 레코드는 한 도메인 이름을 다른 도메인 이름에 별칭으로 연결한다. 예를 들어, 'www.example.com'을 'example.com'으로 연결하는 데 사용될 수 있다. 또한, 도메인의 소유권을 증명하거나 이메일 보안 정책(SPF, DKIM)을 설정하기 위해 TXT 레코드가 추가되기도 한다.

도메인 설정 변경은 DNS 전파 시간이 소요된다. 이는 전 세계의 DNS 캐시 서버가 변경된 정보를 갱신하는 데 필요한 시간으로, TTL 값에 영향을 받는다. 설정 오류는 웹사이트 접속 불가 또는 이메일 수신 실패로 이어질 수 있으므로, 변경 후에는 온라인 DNS 조회 도구를 이용해 정상적으로 적용되었는지 반드시 확인해야 한다.

7.2. DNS 성능 최적화

DNS 성능 최적화는 웹사이트와 애플리케이션의 응답 속도를 높이고, 사용자 경험을 개선하며, 시스템의 신뢰성을 강화하는 중요한 과정이다. 주요 전략으로는 TTL 값의 적절한 설정, DNS 캐싱의 효율적 활용, 지리적 분산을 통한 로드 밸런싱, 그리고 최신 DNS 프로토콜의 도입이 포함된다.

TTL 값을 설정하는 것은 핵심적인 최적화 요소이다. 짧은 TTL(예: 300초)은 레코드 변경이 빠르게 전파되도록 하지만, 리졸버 서버의 캐시 적중률을 낮추고 원본 서버에 대한 질의 부하를 증가시킨다. 반면, 자주 변경되지 않는 정적 리소스에 대해 긴 TTL(예: 86400초)을 설정하면 캐시 효율이 극대화되어 응답 시간이 단축되고 상위 서버의 부하가 감소한다. 변경이 예정된 경우, 롤링 업데이트를 위해 TTL을 사전에 낮추는 방법도 일반적으로 사용된다.

지리적 위치에 따른 서비스 제공은 CDN과 지리적 DNS를 통해 구현된다. 이 방법은 사용자의 위치를 기반으로 가장 가까운 또는 부하가 적은 서버의 IP 주소를 반환한다. 이는 네트워크 지연 시간을 최소화하고 트래픽을 분산시킨다. 또한, Anycast 라우팅 기술을 DNS 서버 자체에 적용하면, 전 세계에 분산된 동일한 IP 주소의 서버들 중 가장 가까운 서버가 요청을 처리하게 되어 DNS 질의 자체의 성능과 내결함성이 향상된다.

최신 보안 프로토콜의 도입도 간접적으로 성능에 기여한다. DNS over HTTPS나 DNS over TLS는 질의를 암호화하여 중간자 공격을 방지함으로써, 스푸핑으로 인한 리다이렉션 지연이나 보안 사고로 인한 다운타임 가능성을 줄인다. 다만, 암호화 오버헤드와 추가적인 연결 설정 시간은 고려해야 할 요소이다. 성능 모니터링 도구를 이용해 평균 해결 시간, 캐시 적중률, 각 권한 서버의 응답 시간 등을 지속적으로 추적하고 분석하는 것이 최적화의 기초가 된다.

8. 관련 기술 및 프로토콜

DNS는 기본적으로 평문 UDP 패킷을 사용하는 프로토콜이므로, 사용자의 질의 내용이 제3자에 의해 감청되거나 조작될 수 있다는 보안 및 프라이버시 문제가 제기되어 왔다. 이를 해결하기 위해 DNS 트래픽을 암호화하는 표준 프로토콜이 개발되었다.

DoH(DNS over HTTPS)는 DNS 질의와 응답을 HTTPS 프로토콜을 통해 암호화하여 전송하는 방식이다. 일반적인 웹 트래픽(포트 443)과 동일한 포트와 프로토콜을 사용하기 때문에, 네트워크 관리자가 DNS 트래픽을 감시하거나 차단하기 어렵고, 방화벽을 우회하기 쉬운 특징이 있다. 주로 웹 브라우저에 구현되어 사용된다. 반면, DoT(DNS over TLS)는 DNS 전용 포트(853)를 사용하여 TLS 암호화 터널을 통해 통신하는 방식이다. 네트워크 관리자가 암호화된 DNS 트래픽을 식별하고 관리할 수 있다는 점에서 DoH와 차별점을 가진다.

두 프로토콜은 모두 중간자 공격으로부터 DNS 트래픽을 보호하고 사용자의 쿼리 프라이버시를 향상시킨다는 공통된 목표를 공유한다. 그러나 구현 방식과 네트워크 관리성에 대한 논쟁이 있다. 다음 표는 두 기술의 주요 차이점을 비교한 것이다.

비교 항목

DoH (DNS over HTTPS)

DoT (DNS over TLS)

사용 포트

HTTPS 포트 (TCP 443)

전용 포트 (TCP 853)

트래픽 식별

일반 HTTPS 트래픽과 구분 어려움

포트를 통해 DNS 트래픽으로 식별 가능

주요 적용처

웹 브라우저, 일부 운영체제

운영체제 수준, DNS 서버 간 통신

네트워크 관리

관리 및 감시가 상대적으로 어려움

포트 차단 등을 통한 관리가 가능

이 외에도, DNSCrypt와 같은 다른 암호화 프로토콜도 존재하지만, DoH와 DoT가 IETF 표준으로 더 널리 채택되고 있는 추세이다.

8.1. DoH(DNS over HTTPS)

DNS over HTTPS는 기존의 평문 DNS 질의 및 응답을 HTTPS 프로토콜을 통해 암호화하여 전송하는 보안 기술이다. 이는 사용자의 DNS 트래픽을 가로채거나 감청하는 것을 방지하여 개인정보 보호와 보안을 강화하는 것을 목표로 한다. 기존 DNS는 일반적으로 UDP 포트 53을 사용하는 평문 통신이기 때문에, 네트워크 경로 상의 공격자에 의해 질의 내용이 쉽게 노출되거나 조작될 위험이 있었다.

DoH는 표준 HTTPS 포트인 443번 포트를 사용하여 DNS 메시지를 암호화된 HTTP/2 또는 HTTP/3 세션 내에 캡슐화한다. 이를 통해 DNS 트래픽은 일반적인 웹 트래픽과 구분하기 어려워지며, 중간자 공격이나 DNS 스푸핑으로부터 보호받을 수 있다. 클라이언트(예: 웹 브라우저 또는 운영체제)는 특별히 구성된 DoH 리졸버 서버의 URL(예: https://dns.example.com/dns-query)에 JSON 형식 또는 DNS 메시지를 그대로 담은 HTTP 요청을 보내게 된다.

특성

설명

암호화

TLS를 통해 전체 DNS 트랜잭션을 암호화한다.

포트

표준 HTTPS 포트(443)를 사용한다.

프로토콜

HTTP/2 또는 HTTP/3 위에서 동작한다.

주요 목적

사용자 프라이버시 보호 및 DNS 트래픽 조작 방지.

이 기술의 도입은 네트워크 관리 측면에서 논란을 일으키기도 했다. 기업이나 인터넷 서비스 제공자(ISP)가 내부 네트워크의 DNS 트래픽을 모니터링하거나 정책을 적용하기 어려워질 수 있기 때문이다. 또한, DNS over TLS와는 포트와 프로토콜 계층에서 차이를 보인다. 주요 웹 브라우저와 모바일 운영체제는 DoH를 점차 표준 기능으로 채택하고 있으며, Cloudflare나 Google과 같은 공공 DoH 리졸버 서비스를 제공하기도 한다.

8.2. DoT(DNS over TLS)

DoT(DNS over HTTPS)와 마찬가지로 DNS 쿼리와 응답의 기밀성과 무결성을 보호하기 위해 설계된 프로토콜이다. DoT는 TLS(전송 계층 보안) 암호화 프로토콜을 사용하여 DNS 통신을 보호한다. 기본적으로 853번 포트를 사용하며, 클라이언트(예: 리졸버(재귀 DNS 서버))와 DNS 서버 간에 전용 TLS 터널을 구축하여 모든 DNS 트래픽을 암호화된 채널을 통해 전송한다.

DoT의 주요 동작 방식은 다음과 같다. 먼저 클라이언트는 DNS 서버의 853번 포트에 연결을 시도하고 TLS 핸드셰이크를 수행한다. 성공적으로 암호화된 연결이 수립되면, 모든 DNS 질의와 응답은 이 TLS 터널 내에서 평문이 아닌 암호화된 형태로 교환된다. 이는 네트워크 경로 상의 중간자로부터 도청이나 변조를 방지한다.

DoT와 DoH(DNS over HTTPS)는 암호화를 통한 DNS 보안을 제공한다는 공통점을 가지지만, 몇 가지 차이점이 존재한다. 다음 표는 두 프로토콜의 주요 차이점을 보여준다.

특성

DoT(DNS over TLS)

DoH(DNS over HTTPS)

사용 포트

전용 포트(853)

HTTPS 포트(443)

트래픽 식별

포트 번호로 식별 가능

일반 HTTPS 트래픽과 혼합되어 식별 어려움

프로토콜

DNS over TLS

DNS 메시지를 HTTP/2 또는 HTTP/3에 캡슐화

차단/감시

전용 포트 차단으로 비교적 용이

일반 웹 트래픽에서 분리하기 어려움

적용 범위

주로 시스템 또는 네트워크 수준

주로 애플리케이션(브라우저) 수준

DoT는 네트워크 관리자가 시스템 전체의 DNS 트래픽을 명시적으로 암호화하고 관리하기에 적합한 구조를 제공한다. 그러나 전용 포트를 사용하기 때문에, 일부 제한적인 네트워크 환경에서는 포트 차단으로 인해 사용이 제한될 수 있다는 점이 DoH(DNS over HTTPS)에 비해 가지는 단점으로 지적된다.

9. 관련 문서

  • Wikipedia - Domain Name System

  • Wikipedia - 도메인 네임 시스템

  • KISA - DNS 기본 동작 원리

  • IETF - RFC 1034: Domain Names - Concepts and Facilities

  • IETF - RFC 1035: Domain Names - Implementation and Specification

  • Cloudflare - What is DNS?

  • Google Developers - Web Fundamentals: How DNS Works

  • ICANN - Domain Name System (DNS)

리비전 정보

버전r1
수정일2026.02.14 15:00
편집자노스 플라이트
편집 요약새 문서 생성