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

DNS와 IP 주소 체계 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.13 07:11

DNS와 IP 주소 체계

한글명

DNS와 IP 주소 체계

영문명

DNS and IP Address System

분류

컴퓨터 과학, 네트워크

핵심 개념

도메인 이름 시스템(DNS), IP 주소

주요 목적

사람이 읽기 쉬운 도메인 이름과 기계가 사용하는 IP 주소 간의 변환 및 체계적 주소 관리

관련 프로토콜

DNS 프로토콜, IP(IPv4, IPv6)

상세 정보

DNS 정의

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

DNS 구성 요소

루트 DNS 서버, TLD 서버, 권한 있는 네임 서버, 리졸버

DNS 동작 방식

재귀적 질의, 반복적 질의

IP 주소 정의

인터넷 프로토콜(IP)에서 네트워크 상의 장치를 식별하는 고유한 주소

IP 주소 체계 버전

IPv4(32비트, 점으로 구분된 10진수), IPv6(128비트, 16진수)

IP 주소 클래스 (IPv4)

클래스 A, 클래스 B, 클래스 C, 클래스 D, 클래스 E

[[서브넷팅]]

IP 주소 공간을 효율적으로 분할하는 방법

[[CIDR]]

클래스 없는 도메인 간 라우팅, IP 주소 할당의 유연성을 높임

DNS 레코드 유형

A 레코드, AAAA 레코드, CNAME 레코드, MX 레코드, NS 레코드, TXT 레코드 등

[[도메인 등록]]

ICANN이 승인한 레지스트라 및 레지스트리를 통해 관리

[[DHCP]]

동적 IP 주소 할당 프로토콜

[[NAT]]

네트워크 주소 변환, 사설 IP 주소와 공인 IP 주소 간 변환

1. 개요

DNS는 도메인 이름을 IP 주소로 변환하는 분산형 데이터베이스 시스템이다. 인터넷은 컴퓨터와 네트워크 장치가 서로 통신하기 위해 고유한 숫자 주소인 IP 주소를 사용하지만, 이 숫자 조합은 사람이 기억하고 사용하기 어렵다. DNS는 'www.example.com'과 같은 사람이 읽을 수 있는 도메인 이름을 '192.0.2.1'과 같은 기계가 읽을 수 있는 IP 주소로 변환하는 '인터넷의 전화번호부' 역할을 한다.

IP 주소 체계는 인터넷에 연결된 모든 장치에 고유한 주소를 부여하는 체계이다. 현재 주로 사용되는 두 가지 버전은 IPv4와 IPv6이다. IPv4 주소는 32비트 길이로, 약 43억 개의 고유 주소를 제공하지만 인터넷의 급격한 성장으로 인해 주소가 고갈되었다. 이를 해결하기 위해 도입된 IPv6는 128비트 길이로, 거의 무한에 가까운 수의 주소를 제공하며 보안과 효율성 측면에서도 개선되었다.

DNS와 IP 주소 체계는 인터넷의 근간을 이루는 두 가지 핵심 요소로, 서로 긴밀하게 연동되어 작동한다. 사용자가 웹 브라우저에 도메인 이름을 입력하면, DNS는 그 이름에 대응하는 IP 주소를 찾아내고, 해당 IP 주소를 가진 서버와의 통신이 시작된다. 이 과정 없이는 인터넷을 통한 대부분의 서비스 이용이 불가능하다.

이 체계는 중앙 집중식이 아닌, 전 세계에 분산된 서버들이 계층 구조를 이루어 관리하는 방식으로 운영된다. 이는 단일 장애점을 방지하고, 효율성을 높이며, 확장성을 보장한다. DNS의 해석 과정과 IP 주소의 할당 및 라우팅 원리를 이해하는 것은 현대 네트워크 기술을 이해하는 데 필수적이다.

2. DNS의 개념과 역할

도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(예: www.example.com)을 컴퓨터가 통신에 사용하는 IP 주소(예: 192.0.2.1)로 변환하는 역할을 하는 분산형 데이터베이스 시스템이다. 인터넷의 전화번호부에 비유되곤 하며, 사용자가 복잡한 숫자 조합인 IP 주소를 기억할 필요 없이 직관적인 도메인 이름을 통해 웹사이트, 이메일 서버 등 네트워크 자원에 접근할 수 있게 한다.

DNS의 주요 기능은 이름 해석(네임 리졸루션)이다. 웹 브라우저에 도메인 이름을 입력하면, 시스템은 먼저 DNS 서버에 질의하여 해당 도메인 이름에 대응하는 IP 주소를 얻는다. 그 후 획득한 IP 주소를 사용해 실제 서버와 통신을 시작한다. 이 과정은 사용자에게 투명하게 이루어진다. 또한 DNS는 이메일 전송(MX 레코드), 서버 별명 지정(CNAME 레코드), 도메인 소유권 검증(TXT 레코드) 등 다양한 목적으로도 사용된다.

DNS가 필요한 근본적인 이유는 인터넷 프로토콜의 설계 방식에 있다. 네트워크 상의 모든 장치는 고유한 IP 주소를 가지고 통신하지만, 숫자로 된 주소는 인간이 기억하고 사용하기 어렵다. DNS는 이러한 추상화 계층을 제공함으로써 인터넷 사용성을 극대화했다. DNS가 없다면, 사람들은 모든 웹사이트 주소를 일련의 숫자로 기억해야 하는 불편함을 겪게 된다.

기능

설명

이름 해석

도메인 이름을 IP 주소로 변환하는 핵심 기능이다.

분산 관리

전 세계의 DNS 서버가 계층적으로 분산되어 도메인 정보를 관리한다.

레코드 저장

IP 주소 변환 외에 이메일 라우팅, 서비스 검증 등 다양한 정보를 저장한다.

리다이렉션

하나의 도메인 이름을 다른 주소로 연결하거나, 부하 분산을 가능하게 한다.

2.1. 도메인 이름 시스템의 정의

도메인 이름 시스템(Domain Name System)은 사람이 읽을 수 있는 도메인 이름(예: www.example.com)을 컴퓨터가 통신에 사용하는 IP 주소(예: 192.0.2.1)로 변환하는 분산형 데이터베이스 시스템이다. 인터넷의 전화번호부에 비유되며, 사용자가 복잡한 숫자 주소를 외울 필요 없이 직관적인 이름으로 웹사이트나 서비스에 접근할 수 있게 한다.

이 시스템은 1983년 폴 모카페트리스(Paul Mockapetris)와 존 포스텔(Jon Postel)에 의해 제안되었으며, 기존의 단일 호스트 파일(HOSTS.TXT) 관리 방식의 비효율성과 확장성 문제를 해결하기 위해 개발되었다[1]. DNS는 클라이언트-서버 모델을 기반으로 하여, 전 세계에 분산된 서버들이 계층 구조를 이루며 도메인 이름과 IP 주소의 매핑 정보를 저장하고 관리한다.

도메인 이름 시스템의 핵심은 이름 공간(namespace)을 계층적 트리 구조로 구성하는 것이다. 트리의 각 노드는 0개 이상의 리소스 레코드(Resource Record)를 보유하며, 최상위에는 루트 도메인(.)이 위치한다. 그 아래로 최상위 도메인(TLD, 예: .com, .org, .kr), 두 번째 수준 도메인(SLD, 예: example), 그리고 하위 호스트 이름(예: www) 등이 계층을 형성한다. 이 구조는 관리의 분권화와 책임 소재의 명확화를 가능하게 한다.

2.2. DNS의 주요 기능과 필요성

도메인 이름 시스템(DNS)의 핵심 기능은 사람이 읽을 수 있는 도메인 이름(예: www.example.com)을 컴퓨터가 통신에 사용하는 IP 주소(예: 192.0.2.1)로 변환하는 것이다. 이 변환 과정을 '이름 해석' 또는 '리졸루션'이라고 한다. 사용자가 웹 브라우저에 도메인 이름을 입력하면, DNS는 이를 해당 서버의 실제 숫자 형식의 IP 주소로 변환하여 통신이 가능하게 한다. 이는 전화번호부에서 이름을 검색하여 해당 전화번호를 찾는 과정에 비유할 수 있다.

DNS의 필요성은 사용 편의성과 시스템 유연성에서 비롯된다. 사람은 www.google.com과 같은 문자 주소를 기억하기 쉽지만, 142.250.206.238과 같은 숫자 조합을 일일이 기억하는 것은 거의 불가능하다. DNS는 이러한 기억 부담을 덜어준다. 더 중요한 것은, DNS는 물리적인 IP 주소가 변경되더라도 사용자가 동일한 도메인 이름을 계속 사용할 수 있게 한다는 점이다. 예를 들어, 웹사이트 서버의 IP 주소가 바뀌어도 DNS 기록만 업데이트하면 사용자는 아무런 변화를 느끼지 못하고 같은 도메인 이름으로 접속할 수 있다.

DNS는 단순한 변환기를 넘어 인터넷 인프라의 핵심 조정자 역할을 한다. 주요 기능은 다음과 같이 요약할 수 있다.

기능

설명

이름 해석

도메인 이름을 IP 주소로 변환하는 기본 기능이다.

이메일 라우팅

MX 레코드를 통해 이메일을 수신하는 메일 서버의 주소를 찾는다.

부하 분산

하나의 도메인 이름에 여러 IP 주소를 연결하여 트래픽을 분산시킬 수 있다.

서비스 발견

특정 서비스(예: 메일, VoIP)를 제공하는 서버의 위치를 알려준다.

이러한 기능 덕분에 DNS는 현대 인터넷이 단순성, 확장성, 유연성을 유지하며 작동할 수 있는 기반을 제공한다. DNS가 없다면, 인터넷은 모든 서비스 접근에 복잡한 숫자 주소를 직접 입력해야 하는 불편하고 경직된 공간이 될 것이다.

3. IP 주소 체계

IP 주소는 인터넷 또는 로컬 네트워크에 연결된 각 장치를 고유하게 식별하는 숫자 라벨이다. 이 주소 체계는 네트워크상에서 데이터 패킷의 출발지와 목적지를 정확히 지정하여 통신을 가능하게 한다. 초기에는 IPv4 주소 체계가 주로 사용되었으나, 주소 고갈 문제로 인해 확장된 IPv6 주소 체계가 도입되어 현재는 두 체계가 공존하며 운영된다.

IPv4 주소는 32비트로 구성되며, 일반적으로 점으로 구분된 네 개의 10진수(0~255)로 표현된다(예: 192.168.1.1). 주소 공간의 효율적 관리를 위해 과거에는 클래스 기반 할당(Classful Addressing) 방식을 사용했다. 이 방식은 주소 범위를 네트워크 규모에 따라 A, B, C, D, E 클래스로 구분했다[2]. 그러나 이 방식은 주소 낭비가 심해, 현재는 CIDR(Classless Inter-Domain Routing) 방식이 표준으로 사용된다. CIDR는 접두어 길이(예: /24)를 통해 네트워크와 호스트 부분을 유연하게 구분한다.

IPv6 주소는 IPv4의 주소 고갈 문제를 근본적으로 해결하기 위해 설계되었다. 128비트로 구성되어 훨씬 더 큰 주소 공간(약 3.4×10^38개)을 제공한다. 주소는 콜론으로 구분된 8개의 16비트 16진수 필드로 표현된다(예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334). 연속되는 0 필드는 '::'로 축약할 수 있다. IPv6의 주요 특징은 다음과 같다.

특징

설명

거대한 주소 공간

사실상 무한에 가까운 주소를 제공하여 모든 장치에 고유 주소 할당이 가능해졌다.

단순한 헤더 구조

IPv4 헤더보다 단순화되어 라우터의 처리 효율이 향상되었다.

자동 구성 기능

SLAAC(Stateless Address Autoconfiguration)을 통해 장치가 네트워크 접두어를 이용해 자동으로 주소를 생성할 수 있다.

내장된 보안

IPsec 프로토콜이 표준으로 채택되어 종단 간 보안 통신 구현이 용이하다.

두 체계는 상호 배타적이지 않으며, 듀얼 스택, 터널링, 전환 기술 등을 통해 장기간에 걸쳐 공존하고 점진적으로 전환될 것으로 예상된다.

3.1. IPv4 주소 구조와 클래스

IPv4 주소는 인터넷 프로토콜 버전 4에서 사용되는 32비트 길이의 논리적 주소이다. 이 주소는 네트워크 상의 각 장치를 고유하게 식별하는 역할을 한다. 주소는 일반적으로 사람이 읽기 쉽도록 점으로 구분된 네 개의 10진수로 표현되며, 각 10진수는 0부터 255 사이의 값을 가진 8비트 옥텟을 나타낸다. 예를 들어, 192.168.1.1과 같은 형태이다.

초기 네트워크 설계에서는 주소 공간을 효율적으로 할당하고, 네트워크 규모에 따라 구분하기 위해 클래스 기반 주소 체계(Classful Addressing)를 도입했다. 이 체계는 주소의 첫 번째 옥텟의 상위 비트 패턴에 따라 A, B, C, D, E 다섯 개의 클래스로 나뉜다.

클래스

첫 옥텟 범위 (10진수)

네트워크 ID 비트

호스트 ID 비트

용도

A

1 - 126[3]

8비트

24비트

대규모 네트워크

B

128 - 191

16비트

16비트

중규모 네트워크

C

192 - 223

24비트

8비트

소규모 네트워크

D

224 - 239

-

-

멀티캐스트

E

240 - 255

-

-

실험용 (예약)

클래스 A는 최대 1600만 개 이상의 호스트를 수용할 수 있는 대형 네트워크에, 클래스 B는 약 6만 5천 개의 호스트를 위한 중형 네트워크에, 클래스 C는 254개의 호스트를 위한 소형 네트워크에 할당되었다. 클래스 D는 멀티캐스트 그룹 통신에, 클래스 E는 미래 사용을 위해 예약되었다.

그러나 이 클래스 기반 체계는 주소 공간의 낭비가 심하고 유연성이 부족하다는 단점이 있었다. 예를 들어, 클래스 B 네트워크 하나를 할당받은 조직이 수만 개의 주소 중 일부만 사용하면 나머지 주소는 사용되지 못하고 낭비되었다. 이러한 비효율성은 IPv4 주소의 고갈을 가속화하는 요인 중 하나가 되었다. 이 문제를 해결하기 위해 이후 CIDR(Classless Inter-Domain Routing)과 서브넷 마스크를 활용한 클래스리스 주소 체계가 표준으로 자리 잡았다.

3.2. IPv6 주소 구조와 특징

IPv6 주소는 128비트 길이를 가지며, 16비트씩 8개의 그룹으로 나뉘어 콜론(:)으로 구분하여 표기한다. 각 그룹은 4개의 16진수로 표현된다. 예를 들어, 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 형태를 가진다. 선행하는 0은 생략할 수 있으며, 연속된 0으로만 이루어진 하나의 그룹은 ::로 압축하여 표기할 수 있다. 그러나 이러한 압축은 주소당 한 번만 사용할 수 있다[4].

IPv6의 가장 두드러진 특징은 거의 무한에 가까운 주소 공간을 제공한다는 점이다. 이는 IPv4 주소 고갈 문제를 근본적으로 해결한다. 또한, 주소 자동 구성 기능이 강화되어, 장비가 네트워크에 연결되면 라우터로부터 접두어 정보를 받아 자동으로 IP 주소를 생성할 수 있다. 보안 측면에서는 IPsec 프로토콜의 사용이 표준 사양에 포함되어, 데이터 인증과 암호화를 기본적으로 지원한다.

IPv4와 비교했을 때 IPv6의 주요 구조적 차이점은 다음과 같다.

특징

IPv4

IPv6

주소 길이

32비트

128비트

주소 표기법

10진수 점분할 (예: 192.168.0.1)

16진수 콜론분할 (예: 2001:db8::1)

주소 자동 구성

DHCP에 크게 의존

SLAAC[5] 등 강화된 자동 구성

헤더 구조

복잡하고 옵션 포함 가능

단순화되고 고정 길이, 확장 헤더 방식

보안

별도 프로토콜 (IPsec)

IPsec 통합 (표준 사양)

이러한 변화로 인해 IPv6는 향상된 성능, 간소화된 라우팅, 그리고 모바일 장치 지원의 용이성을 제공한다. 그러나 기존 IPv4 인프라와의 호환성 문제로 인해 전 세계적인 전환은 점진적으로 이루어지고 있다.

4. DNS 동작 원리

DNS는 사용자가 입력한 도메인 이름을 IP 주소로 변환하기 위해 계층적 질의 과정을 거친다. 이 과정을 DNS 해석이라고 한다. 사용자의 컴퓨터(DNS 리졸버)는 먼저 로컬 DNS 캐시를 확인하고, 캐시에 정보가 없으면 설정된 DNS 서버(일반적으로 ISP가 제공하는 재귀적 리졸버)에 질의를 보낸다.

재귀적 리졸버는 질의를 해결하기 위해 루트 DNS 서버부터 시작하는 반복적 질의를 수행한다. 루트 서버는 해당 최상위 도메인(TLD, 예: .com, .net)을 관리하는 TLD 네임서버의 주소를 알려준다. TLD 네임서버는 다시 해당 도메인의 권한 있는 네임서버(Authoritative Name Server)의 주소를 응답한다. 마지막으로 권한 있는 네임서버에 질의하여 최종적인 IP 주소(A 레코드 또는 AAAA 레코드)를 얻어 사용자에게 전달한다.

이러한 계층적 구조는 전 세계적인 분산 관리를 가능하게 한다. 주요 구성 요소는 다음과 같다.

서버 유형

역할

예시

루트 DNS 서버

전 세계에 13개 군데(논리적) 존재하며, TLD 네임서버의 주소를 제공한다.

a.root-servers.net

TLD 네임서버

.com, .org, .kr 등 최상위 도메인을 관리하며, 해당 도메인의 권한 있는 서버 목록을 안내한다.

gtld-servers.net (for .com)

권한 있는 네임서버

특정 도메인(예: example.com)의 DNS 레코드(IP 주소 등)를 최종적으로 저장하고 제공하는 서버이다.

ns1.example.com

전체 과정은 효율성을 위해 광범위하게 캐싱이 활용된다. 각 단계의 서버와 리졸버는 응답받은 정보를 일정 시간(TTL) 동안 저장하여, 동일한 질의가 반복될 때 빠르게 응답할 수 있다. 이로 인해 대부분의 질의는 루트 서버까지 도달하지 않고 중간 단계에서 해결된다.

4.1. DNS 질의와 응답 과정

DNS 질의는 사용자가 웹 브라우저에 도메인 이름을 입력할 때 시작된다. 이 과정은 일반적으로 재귀적 질의와 반복적 질의의 조합으로 이루어진다. 사용자의 컴퓨터(호스트)는 먼저 로컬 DNS 캐시를 확인하고, 정보가 없으면 설정된 로컬 DNS 서버(보통 ISP가 제공)에 재귀적 질의를 보낸다.

로컬 DNS 서버는 이 요청을 받고, 자신의 캐시에 해당 정보가 없으면 루트 DNS 서버에 반복적 질의를 시작한다. 루트 서버는 질의된 도메인 이름의 최상위 도메인(TLD)을 관리하는 서버(예: .com, .net 서버)의 주소를 알려준다. 로컬 DNS 서버는 그 TLD 서버에 다시 질의하고, TLD 서버는 해당 도메인의 권한 있는 네임 서버(Authoritative Name Server)의 주소를 응답한다.

단계

질의 대상

응답 내용

1

로컬 DNS 캐시

캐시에 정보가 있으면 즉시 응답, 없으면 다음 단계

2

로컬 DNS 서버 (재귀적)

캐시 확인 후, 루트 서버에 반복 질의 시작

3

루트 DNS 서버

해당 TLD 서버의 IP 주소 반환

4

TLD 서버 (예: .com)

해당 도메인의 권한 있는 네임 서버 주소 반환

5

권한 있는 네임 서버

최종 도메인에 대한 A 레코드 또는 AAAA 레코드(IP 주소) 반환

로컬 DNS 서버는 최종적으로 권한 있는 네임 서버로부터 얻은 IP 주소를 사용자 컴퓨터에 응답하고, 이 정보를 자신의 캐시에 일정 시간(TTL) 동안 저장한다. 사용자 컴퓨터는 받은 IP 주소를 사용하여 해당 웹 서버에 직접 연결한다. 이 전체 과정은 밀리초 단위로 매우 빠르게 이루어지며, 대부분의 단계는 캐싱 덕분에 생략된다.

4.2. DNS 서버의 계층 구조 (루트, TLD, 권한 있는 서버)

DNS 서버는 단일 중앙 집중식 구조가 아닌, 전 세계적으로 분산된 계층적 구조로 운영된다. 이 계층 구조는 크게 루트 DNS 서버, 최상위 도메인 서버, 권한 있는 네임 서버로 구분된다. 각 계층은 자신이 담당하는 도메인 정보의 일부만을 관리하며, 질의 요청을 하위 계층으로 전달하거나 최종 응답을 제공하는 역할을 한다.

루트 DNS 서버는 계층 구조의 최상위에 위치한다. 전 세계에 13개의 루트 서버 그룹(A부터 M)이 존재하며, 각 그룹은 Anycast 기술을 통해 여러 물리적 서버로 구성되어 가용성을 높인다. 루트 서버는 최상위 도메인 목록(예: .com, .net, .kr 등)을 관리하는 서버들의 주소 정보만을 알고 있다. 클라이언트의 질의가 루트 서버에 도달하면, 해당 질의의 TLD를 담당하는 서버의 주소를 안내한다.

TLD 서버는 .com, .org, .kr 같은 최상위 도메인을 관리하는 서버이다. 이 서버들은 해당 TLD 아래에 등록된 모든 2차 도메인의 권한 있는 네임 서버 주소 정보를 보유한다. 예를 들어, example.com에 대한 질의가 .com TLD 서버에 전달되면, example.com 영역을 실제로 관리하는 권한 있는 네임 서버의 주소를 응답한다.

권한 있는 네임 서버는 특정 도메인 이름 영역(예: example.com)에 대한 최종 책임을 지는 서버이다. 이 서버는 해당 도메인에 속하는 호스트 이름과 IP 주소 매핑 정보를 담은 DNS 레코드를 직접 저장하고 관리한다. 최종적으로 이 서버가 www.example.com에 대한 A 레코드나 AAAA 레코드와 같은 실제 IP 주소 정보를 응답한다. 하나의 도메인 영역에는 보통 주 서버와 보조 서버가 쌍을 이루어 운영되어 신뢰성을 확보한다.

5. DNS 레코드 유형

DNS 레코드는 도메인 이름을 다양한 유형의 데이터와 연결하는 데 사용되는 지시자입니다. 가장 기본적인 레코드는 A 레코드와 AAAA 레코드입니다. A 레코드는 도메인 이름을 IPv4 주소로 매핑합니다. 예를 들어 'example.com'을 '93.184.216.34'라는 IP 주소로 변환합니다. 반면, AAAA 레코드는 동일한 기능을 IPv6 주소에 대해 수행합니다.

CNAME 레코드는 한 도메인 이름을 다른 '정규' 도메인 이름으로 연결하는 별칭(Canonical Name)을 생성합니다. 이는 여러 서비스가 하나의 IP 주소를 공유하거나, 서비스 제공업체가 변경될 때 유용합니다. 예를 들어 'www.example.com'이 'example.com'을 가리키도록 설정할 수 있습니다. 이 경우 'example.com'의 A 레코드만 관리하면 'www' 서브도메인도 자동으로 따라갑니다.

메일 교환을 담당하는 레코드는 MX 레코드입니다. 이 레코드는 해당 도메인으로 전송된 이메일을 수신할 메일 서버의 호스트명과 우선순위를 지정합니다. 우선순위 값이 낮을수록 높은 우선순위를 가지며, 주 메일 서버에 장애가 발생하면 다음 우선순위의 서버로 메일이 전달됩니다.

도메인에 대한 권한을 위임하거나 기타 텍스트 정보를 제공하는 레코드도 있습니다. NS 레코드는 해당 도메인에 대한 권한 있는 네임서버가 무엇인지를 지정합니다. TXT 레코드는 임의의 텍스트 정보를 도메인에 연결할 수 있으며, 주로 이메일 발신자 정책 프레임워크(SPF), 도메인키 식별 메일(DKIM)과 같은 이메일 인증 설정이나 도메인 소유권 확인에 사용됩니다.

레코드 유형

목적

데이터 예시

A

호스트명을 IPv4 주소로 매핑

192.0.2.1

AAAA

호스트명을 IPv6 주소로 매핑

2001:db8::1

CNAME

별칭(호스트명)을 정규 도메인명으로 매핑

www.example.com → example.com

MX

도메인의 메일 교환 서버 지정

10 mail.example.com

TXT

임의의 텍스트 정보 (SPF, DKIM 등) 저장

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

NS

도메인에 대한 권한 있는 네임서버 지정

ns1.example-ns.com

5.1. A, AAAA, CNAME 레코드

DNS 레코드는 도메인 이름을 다양한 정보에 매핑하는 데 사용되는 지시문입니다. 이 중 가장 기본적이고 필수적인 레코드 유형은 A 레코드와 AAAA 레코드, 그리고 별칭을 지정하는 CNAME 레코드입니다.

A 레코드는 "Address"의 약자로, 도메인 이름을 IPv4 주소로 직접 연결합니다. 이는 호스트 이름을 32비트 숫자로 구성된 IPv4 주소로 변환하는 가장 일반적인 방법입니다. 예를 들어, example.com이라는 도메인이 192.0.2.1이라는 IP 주소를 가리키도록 설정하는 데 사용됩니다. 하나의 도메인 이름은 여러 개의 A 레코드를 가질 수 있으며, 이를 통해 로드 밸런싱이나 리던던시를 구현할 수 있습니다.

AAAA 레코드는 "Quad-A"라고 불리며, 도메인 이름을 IPv6 주소로 연결합니다. IPv4 주소 고갈 문제를 해결하기 위해 도입된 128비트 주소 체계인 IPv6를 지원하기 위한 레코드입니다. A 레코드가 IPv4를 처리한다면, AAAA 레코드는 IPv6를 처리합니다. 동일한 도메인 이름에 대해 A 레코드(IPv4)와 AAAA 레코드(IPv6)를 모두 설정하여 이중 스택 환경을 구성할 수 있습니다.

CNAME 레코드는 "Canonical Name"의 약자로, 한 도메인 이름을 다른 '정규' 도메인 이름에 대한 별칭으로 만듭니다. IP 주소를 직접 가리키지 않고, 다른 도메인 이름을 가리키는 포인터 역할을 합니다. 예를 들어, www.example.com에 대한 CNAME 레코드를 example.com으로 설정하면, www.example.com에 대한 조회는 최종적으로 example.com의 A 레코드나 AAAA 레코드가 가리키는 IP 주소를 반환합니다. 서브도메인을 관리하거나 CDN 서비스를 연결할 때 자주 사용되지만, CNAME 레코드는 루트 도메인(example.com)에는 일반적으로 설정할 수 없으며, 다른 CNAME 레코드를 가리키는 순환 참조를 만들지 않도록 주의해야 합니다.

레코드 유형

목적

매핑 대상

예시 값

A

IPv4 주소 확인

도메인 이름 → IPv4 주소

192.0.2.1

AAAA

IPv6 주소 확인

도메인 이름 → IPv6 주소

2001:0db8:85a3::8a2e:0370:7334

CNAME

정규 이름 별칭

도메인 별칭 → 정규 도메인 이름

www.example.com. → example.com.

5.2. MX, TXT, NS 레코드

MX 레코드(Mail Exchanger Record)는 도메인의 이메일 수신을 담당하는 메일 서버를 지정하는 데 사용되는 DNS 레코드이다. 이 레코드는 메일 전송 프로토콜인 SMTP가 발신자의 메일을 정확한 수신 서버로 라우팅할 수 있도록 안내하는 역할을 한다. MX 레코드에는 우선순위 값이 포함되어 있으며, 이 값이 낮을수록 높은 우선순위를 가진다. 주 메일 서버가 장애를 일으킬 경우, 우선순위가 더 높은(숫자가 더 큰) 백업 서버로 메일 전송을 시도하게 된다[6].

TXT 레코드(Text Record)는 도메인에 대한 임의의 텍스트 정보를 제공하는 데 사용된다. 초기에는 단순한 메모 용도로 사용되었지만, 현재는 주로 도메인 소유권 확인, 이메일 보안 정책 설정, 스팸 방지 등 다양한 검증 목적으로 활용된다. 가장 대표적인 사용 사례는 SPF(Sender Policy Framework), DKIM(DomainKeys Identified Mail), DMARC(Domain-based Message Authentication, Reporting & Conformance)와 같은 이메일 인증 메커니즘을 구성하는 것이다. 이러한 정책은 TXT 레코드에 특정 형식의 텍스트로 저장되어, 수신 메일 서버가 해당 도메인에서 발송된 메일의 진위를 판별하는 데 도움을 준다.

NS 레코드(Name Server Record)는 특정 도메인이나 서브도메인에 대한 권한 있는 DNS 서버(Authoritative Name Server)가 무엇인지를 지정하는 가장 근본적인 레코드이다. 이 레코드는 DNS 계층 구조에서 특정 도메인 영역의 관리 책임을 어느 서버에게 위임했는지를 정의한다. 일반적으로 도메인 등록 시, 등록 기관(Registrar)의 네임서버가 기본적으로 설정되며, 사용자가 별도의 DNS 호스팅 서비스를 이용할 경우 해당 서비스 제공자의 네임서버 주소로 NS 레코드를 변경한다. NS 레코드는 도메인 자체에 대한 질의를 해결할 수 있는 최종적인 서버의 주소를 가리키므로, DNS 해석 과정의 정상적인 출발점이 된다.

레코드 유형

주요 목적

사용 예시 (값 형식)

MX

메일 교환 서버 지정 및 우선순위 관리

10 mail.example.com. (우선순위 10, 호스트명)

TXT

도메인 검증 및 이메일 보안 정책 정의

"v=spf1 include:_spf.google.com ~all" (SPF 레코드)

NS

도메인에 대한 권한 있는 네임서버 지정

ns1.hostingprovider.com. (네임서버 호스트명)

6. IP 주소 할당과 관리

IP 주소는 네트워크 상의 각 장치를 식별하는 고유한 번호이다. 이 주소의 할당과 관리는 크게 공인(공인 IP)과 사설(사설 IP)로 구분되며, 할당 방식에는 DHCP에 의한 동적 할당과 수동 설정에 의한 정적 할당이 있다.

공인 IP 주소는 인터넷 상에서 전 세계적으로 중복되지 않아야 하며, ICANN과 같은 국제 기구의 관리 하에 지역별 RIR을 통해 인터넷 서비스 제공업체(ISP)나 대규모 조직에 블록 단위로 할당된다. 반면, 사설 IP 주소는 RFC 1918에 정의된 특정 대역(예: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)을 사용하여 조직 내부의 LAN에서만 독립적으로 사용된다. 사설 IP를 사용하는 장치가 인터넷과 통신하려면 NAT 기술을 통해 하나의 공인 IP로 변환되어야 한다.

IP 주소 할당의 주요 방법은 다음과 같다.

할당 방식

설명

주요 사용처

동적 할당 (DHCP)

DHCP 서버가 IP 주소, 게이트웨이, DNS 서버 정보 등을 클라이언트에 임대하는 방식. 주로 유효 기간(TTL)이 있다.

일반 가정이나 기업 네트워크의 대부분의 클라이언트 장치(PC, 스마트폰 등).

정적 할당

관리자가 각 장치의 네트워크 설정에 IP 주소를 직접 입력하여 고정적으로 할당하는 방식.

서버, 네트워크 프린터, 게이트웨이 등 항상 고정된 주소가 필요한 장치.

자동 사설 IP 할당 (APIPA)

DHCP 서버를 찾지 못했을 때 운영체제가 169.254.0.0/16 대역에서 자동으로 임시 주소를 할당하는 방식[7].

DHCP 서버 장애 시 임시 통신을 위해 사용된다.

효율적인 IP 주소 관리는 네트워크의 안정성과 확장성의 기초가 된다. 대규모 네트워크에서는 DHCP를 통한 중앙 집중식 관리가 필수적이며, 서버 인프라 등 특정 장치에는 정적 할당을 적용하여 접근성을 보장한다. 또한, 공인 IP 주소의 고갈 문제는 IPv6의 도입과 NAT의 광범위한 사용으로 완화되었다.

6.1. 공인 IP와 사설 IP

공인 IP 주소는 인터넷 상에서 전 세계적으로 고유하게 식별되는 주소입니다. IANA와 같은 기관이 관리하며, 인터넷 서비스 제공자를 통해 사용자에게 할당됩니다. 이 주소는 인터넷에 직접 연결된 모든 장치(예: 웹 서버, 라우터)에 필요하며, 외부에서 해당 장치를 찾아갈 수 있는 실제 주소 역할을 합니다. 공인 IP 주소의 수는 제한되어 있어, 특히 IPv4 체계에서는 부족 현상이 두드러집니다.

사설 IP 주소는 로컬 영역 네트워크이나 기업망과 같은 폐쇄된 네트워크 내부에서만 사용되는 주소입니다. RFC 1918 표준에 의해 다음의 주소 대역이 사설 IP로 예약되어 있습니다.

주소 대역

네트워크 클래스

10.0.0.0 – 10.255.255.255

클래스 A

172.16.0.0 – 172.31.255.255

클래스 B

192.168.0.0 – 192.168.255.255

클래스 C

이 주소들은 서로 다른 내부 네트워크에서 중복해서 사용될 수 있지만, 인터넷으로는 직접 라우팅되지 않습니다.

사설 IP를 사용하는 내부 네트워크의 장치가 인터넷과 통신하려면 네트워크 주소 변환 기술이 필요합니다. NAT 장비(보통 라우터나 게이트웨이)는 내부 장치의 사설 IP 주소와 포트를 자신의 공인 IP 주소로 변환하여 외부와 통신합니다. 이를 통해 하나의 공인 IP 주소로 여러 대의 사설 IP 장치가 인터넷에 접속할 수 있어, 공인 IP 주소 고갈 문제를 완화하고 네트워크 보안을 강화하는 효과가 있습니다[8].

6.2. DHCP와 정적 할당

IP 주소를 네트워크 장치에 할당하는 방법은 크게 동적 할당과 정적 할당으로 구분된다. 동적 호스트 구성 프로토콜(DHCP)은 네트워크에 접속하는 장치에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등의 네트워크 설정 정보를 자동으로 할당하는 프로토콜이다. DHCP 서버는 미리 정의된 주소 풀(IP Pool)에서 사용 가능한 주소를 클라이언트에게 임대(Lease)하며, 임대 기간(TTL)이 지나면 해당 주소는 회수되어 풀로 돌아간다. 이 방식은 대규모 네트워크에서 장치의 추가, 이동, 제거가 빈번할 때 관리 부담을 크게 줄여준다.

반면 정적 할당(Static Allocation)은 네트워크 관리자가 각 장치에 고정된 IP 주소를 수동으로 설정하는 방식이다. 주로 서버, 네트워크 프린터, 라우터, 방화벽 등 항상 고정된 주소로 접근해야 하는 중요한 네트워크 장비에 사용된다. 정적 할당은 주소가 변하지 않아 DNS 레코드 설정이나 방화벽 규칙 관리가 용이하지만, 네트워크 규모가 커질수록 주소 충돌을 방지하기 위한 관리 작업이 복잡해질 수 있다.

두 방식의 주요 특징을 비교하면 다음과 같다.

특성

DHCP (동적 할당)

정적 할당

할당 방식

서버에 의한 자동 할당

관리자에 의한 수동 설정

관리 편의성

높음 (중앙 집중식 관리)

낮음 (개별 장치 관리)

주소 변경

임대 기간에 따라 변할 수 있음

고정됨

적합한 환경

클라이언트 PC, 모바일 기기 등 일반 단말

웹/메일 서버, 네트워크 인프라 장비

주소 충돌 위험

서버가 관리하여 낮음

수동 관리 오류 시 발생 가능

현대 네트워크에서는 이 두 방식을 혼합하여 사용하는 것이 일반적이다. 예를 들어, 대부분의 사용자 단말은 DHCP를 통해 주소를 받고, 중요한 서버나 네트워크 장비는 정적 IP를 할당한다. 또한 DHCP 서버 자체에서 특정 MAC 주소를 가진 장치에게 항상 같은 IP를 할당하는 'DHCP 예약'(Reservation) 기능을 제공하기도 한다. 이는 정적 할당의 관리적 이점과 DHCP의 자동화 이점을 결합한 방식이다.

7. DNS와 IP의 상호작용

도메인 이름 해석은 DNS와 IP 주소 체계가 협력하는 핵심 과정이다. 사용자가 웹 브라우저에 'www.example.com'과 같은 도메인 이름을 입력하면, 시스템은 먼저 로컬 호스트 파일과 DNS 캐시를 확인한다. 캐시에 정보가 없으면, 미리 설정된 로컬 DNS 서버(일반적으로 ISP가 제공)에 재귀적 질의를 보낸다. 로컬 DNS 서버는 이어서 루트 DNS 서버, 해당 최상위 도메인(TLD) 서버(예: .com 관리 서버), 그리고 최종적으로 'example.com'을 관리하는 권한 있는 네임 서버에 대해 반복적 질의를 수행하여 IP 주소를 찾아낸다.

이 과정의 효율성을 높이는 핵심 요소가 캐싱과 TTL(Time To Live)이다. DNS 서버는 질의 결과로 얻은 도메인 이름과 IP 주소의 매핑 정보를 일정 시간 동안 메모리에 저장한다. 이후 동일한 질의가 들어오면 캐시된 정보를 즉시 응답하여 네트워크 트래픽과 지연 시간을 줄인다. 각 DNS 레코드에는 TTL 값이 설정되어 있으며, 이는 캐시에 저장될 수 있는 최대 시간(초 단위)을 정의한다. TTL이 만료되면 캐시에서 해당 레코드는 삭제되고, 다음 질의 시에는 다시 권한 있는 서버로부터 최신 정보를 가져온다.

구성 요소

역할

상호작용 예시

도메인 이름

사람이 인지하기 쉬운 주소

사용자가 'www.example.com' 입력

DNS 서버 계층

이름을 IP 주소로 변환하는 분산 데이터베이스

로컬 → 루트 → TLD → 권한 있는 서버 순서로 질의

IP 주소

네트워크 상의 기기 식별 번호

최종 응답으로 '93.184.216.34' (IPv4) 반환

DNS 캐시

조회 결과를 임시 저장하는 메모리

로컬 PC 또는 DNS 서버가 이전 조회 결과를 저장

TTL

캐시된 데이터의 유효 시간

A 레코드의 TTL이 300초로 설정됨[9]

이 상호작용은 인터넷의 사용자 친화성과 확장성의 기반이 된다. 사용자는 복잡한 숫자 열인 IP 주소 대신 기억하기 쉬운 도메인 이름을 사용하고, DNS 시스템이 이를 올바른 IP 주소로 실시간으로 변환해 준다. 동시에 분산 캐싱 메커니즘은 전 세계적인 질의 부하를 분산시키고 응답 속도를 획기적으로 향상시킨다.

7.1. 도메인 이름 해석 과정

도메인 이름 해석 과정은 사용자가 웹 브라우저에 도메인 이름을 입력했을 때, 해당 이름에 대응하는 IP 주소를 찾아내는 일련의 절차이다. 이 과정은 DNS 질의를 시작으로 여러 계층의 DNS 서버를 거쳐 최종적인 IP 주소를 얻을 때까지 진행된다.

일반적인 해석 과정은 재귀적 질의와 반복적 질의가 결합된 방식으로 이루어진다. 사용자의 컴퓨터(DNS 리졸버)는 먼저 자신의 로컬 캐시를 확인한다. 캐시에 정보가 없으면, 사전에 설정된 로컬 DNS 서버(대개 ISP가 제공)에 재귀적 질의를 보낸다. 로컬 DNS 서버는 자신의 캐시를 확인한 후, 정보가 없으면 루트부터 탐색을 시작한다. 이때 로컬 DNS 서버는 클라이언트 대신 질의를 수행하는 재귀 리졸버 역할을 한다.

로컬 DNS 서버는 다음과 같은 순서로 반복적 질의를 통해 최종 답변을 찾아낸다.

1. 루트 DNS 서버에 질의하여 해당 최상위 도메인(TLD, 예: .com)을 관리하는 서버의 주소를 얻는다.

2. 획득한 TLD 네임서버에 질의하여 해당 도메인(예: example.com)의 권한 있는 네임서버 주소를 얻는다.

3. 마지막으로 해당 권한 있는 네임서버에 질의하여 원하는 호스트(예: www.example.com)에 대한 A 레코드 또는 AAAA 레코드(IP 주소)를 최종적으로 받아온다.

로컬 DNS 서버는 이 최종 IP 주소를 클라이언트에게 응답하고, 동시에 자신의 캐시에 저장하여 향후 같은 질의에 빠르게 응답할 수 있도록 한다. 클라이언트는 받은 IP 주소를 사용하여 해당 웹 서버와 직접 TCP/IP 연결을 수립하고 데이터를 주고받는다. 이 전체 과정은 대부분 수 밀리초 내에 완료되며, TTL(Time To Live) 값은 캐시에 저장된 정보의 유효 기간을 제어하여 네트워크 효율성과 정보의 신선도를 유지하는 데 기여한다.

7.2. 캐싱과 TTL

DNS 캐싱은 네트워크 효율성을 극대화하기 위한 핵심 메커니즘이다. 사용자가 도메인 이름을 입력하면, 해당 질의는 최종 권한 있는 네임 서버에 도달하기 전에 여러 단계의 서버를 거친다. 이 과정에서 각 DNS 서버(재귀 리졸버, ISP의 서버 등)는 받은 응답을 일정 시간 동안 임시로 저장한다. 이후 동일한 도메인 이름에 대한 질의가 들어오면, 서버는 저장된 정보를 즉시 응답하여 불필요한 외부 질의를 생략한다. 이는 네트워크 트래픽을 줄이고, 사용자에게 더 빠른 응답 시간을 제공한다.

캐싱의 지속 시간은 TTL 값에 의해 제어된다. TTL은 'Time To Live'의 약자로, DNS 레코드에 설정된 초 단위의 숫자 값이다. 이 값은 해당 레코드 정보가 캐시에 유효하게 보관될 수 있는 최대 시간을 정의한다. TTL이 만료되면, 캐시에 저장된 정보는 폐기되며, 다음 동일 질의 시에는 권한 있는 네임 서버로부터 새로운 정보를 다시 조회해야 한다.

TTL 값은 도메인 관리자가 DNS 레코드를 설정할 때 정의한다. 값의 설정은 상황에 따라 전략적으로 이루어진다. 예를 들어, 자주 변경되지 않는 안정적인 서비스의 A 레코드는 긴 TTL(예: 86400초, 24시간)을 설정하여 캐시 효율을 높인다. 반면, 서버 IP 주소를 자주 변경해야 하거나, 긴급한 장애 조치가 필요한 경우에는 짧은 TTL(예: 300초, 5분)을 설정하여 변경 내용이 빠르게 전 세계 캐시에 반영되도록 한다.

TTL 설정 전략

일반적인 값 (초)

주요 목적

장기 캐싱 (안정적 서비스)

86400 (24시간) 이상

캐시 히트율 증가, 리졸버 부하 감소

중기 캐싱

3600 (1시간)

변경 가능성을 고려한 균형 유지

단기 캐싱 (빈번한 변경/장애 조치)

300 (5분) ~ 1800 (30분)

DNS 정보 변경의 빠른 전파

캐싱과 TTL은 DNS 시스템의 확장성과 안정성의 기반이지만, 설정값이 부적절할 경우 문제를 일으킬 수 있다. 너무 긴 TTL은 정보 변경 시 전파 지연을 유발하여 서비스 중단 시간을 길게 만들 수 있다. 반대로, 너무 짧은 TTL은 권한 있는 서버에 대한 질의 빈도를 과도하게 높여 서버 부하를 증가시킨다. 따라서 도메인 관리자는 서비스 특성과 운영 요구사항에 맞춰 최적의 TTL 값을 결정해야 한다.

8. 보안 이슈

DNS 시스템은 인터넷의 핵심 인프라이지만, 설계 초기에는 보안이 고려되지 않아 여러 취약점을 내포하고 있다. 가장 대표적인 공격 방식으로 DNS 스푸핑(DNS Spoofing) 또는 DNS 캐시 포이즈닝(DNS Cache Poisoning)이 있다. 이 공격은 공격자가 위조된 DNS 응답 패킷을 DNS 리졸버의 캐시에 주입하여, 사용자가 정상적인 IP 주소 대신 공격자가 통제하는 악성 서버의 IP 주소로 연결되도록 유도한다. 결과적으로 사용자는 피싱 사이트로 이동하거나, 중간자 공격(Man-in-the-Middle attack)에 노출될 수 있다.

이러한 보안 위협에 대응하기 위해 개발된 표준이 DNSSEC(DNS Security Extensions)이다. DNSSEC은 디지털 서명과 공개 키 암호 방식을 이용해 DNS 응답의 무결성과 인증을 보장한다. DNSSEC이 적용된 도메인은 질의 응답에 암호화된 서명이 함께 제공되며, 리졸버는 이 서명을 검증하여 응답이 신뢰할 수 있는 권한 있는 서버로부터 왔고, 전송 중 변조되지 않았음을 확인할 수 있다.

공격 유형

설명

주요 대응 기술

DNS 스푸핑 / 캐시 포이즈닝

위조된 DNS 레코드를 캐시에 주입해 트래픽을 악성 사이트로 유도하는 공격

DNSSEC, 임의의 출발 포트 사용, 트랜잭션 ID 검증

DNS 증폭 공격

작은 질의 패킷으로 큰 응답을 유발해 타겟을 DDoS하는 공격

응답률 제한(Rate Limiting), 재귀 질의 제한

그러나 DNSSEC도 완벽한 해결책은 아니다. DNSSEC은 데이터의 위변조를 방지하지만, 데이터 자체의 기밀성(암호화)을 제공하지는 않는다[10]. 또한, 복잡한 키 관리와 배포 문제, 그리고 루트 도메인부터 모든 계층에서의 일관된 적용 필요성으로 인해 전 세계적인 보급에는 한계가 있다. 이러한 기밀성 문제를 해결하기 위해 DNS over HTTPS(DoH)나 DNS over TLS(DoT)와 같은 추가적인 보안 프로토콜이 개발되고 있다.

8.1. DNS 스푸핑과 캐시 포이즈닝

DNS 스푸핑은 공격자가 위조된 DNS 응답을 사용자에게 전달하여, 정상적인 도메인 이름(예: www.example.com)을 공격자가 통제하는 악성 서버의 IP 주소로 연결되도록 조작하는 공격 기법이다. 사용자는 자신이 접속하려는 합법적인 사이트에 들어갔다고 믿지만, 실제로는 외관이 유사한 피싱 사이트나 악성 코드를 배포하는 서버에 접속하게 된다. 이 공격은 주로 로컬 네트워크에서 ARP 스푸핑과 결합하거나, 취약한 DNS 서버를 대상으로 수행된다.

DNS 캐시 포이즈닝은 DNS 스푸핑의 한 유형으로, 공격 대상이 최종 사용자보다는 DNS 서버의 캐시에 초점을 맞춘다. 공격자는 권한 없는 서버임에도 불구하고, DNS 서버가 특정 도메인에 대한 질의를 했을 때 위조된 권한 응답을 보내어 서버의 캐시를 오염시킨다. 성공하면, 해당 DNS 서버를 이용하는 모든 사용자들이 오염된 캐시 기록을 조회하게 되어 장기간에 걸쳐 악성 사이트로 유도될 수 있다. 이 공격은 DNS 프로토콜의 설계적 취약점, 특히 트랜잭션 ID와 포트 번호의 예측 가능성을 이용한다.

두 공격의 주요 차이점과 영향을 비교하면 다음과 같다.

공격 유형

주요 대상

영향 범위

목적

DNS 스푸핑

최종 사용자

개별 사용자 또는 소규모 그룹

피싱, 세션 하이재킹, 즉각적인 정보 탈취

DNS 캐시 포이즈닝

DNS 서버 (재귀 리졸버)

해당 서버를 사용하는 모든 클라이언트

대규모 사용자 유도, 악성 콘텐츠 배포, 장기적 영향

이러한 공격을 방어하기 위한 기본적인 조치로는 DNS 쿼리에 대한 예측 불가능한 트랜잭션 ID와 출발 포트 번호 사용, DNSCurve 같은 암호화 프로토콜 도입, 그리고 가장 근본적인 해결책으로 DNSSEC의 채택이 있다.

8.2. DNSSEC (DNS 보안 확장)

DNSSEC(DNS 보안 확장)은 도메인 이름 시스템의 취약점을 해결하기 위해 설계된 보안 확장 기능 세트이다. 기존 DNS 프로토콜은 데이터의 무결성과 출처 인증을 보장하지 않아, DNS 스푸핑이나 캐시 포이즈닝과 같은 공격에 취약했다. DNSSEC은 공개 키 암호 방식을 사용하여 DNS 응답에 디지털 서명을 추가함으로써, 클라이언트가 받은 응답이 신뢰할 수 있는 권한 있는 서버로부터 왔으며 전송 중 변조되지 않았음을 검증할 수 있게 한다.

DNSSEC의 핵심 작동 원리는 암호화된 서명과 공개 키의 계층적 신뢰 체인에 있다. 각 권한 있는 네임 서버는 자신이 관리하는 DNS 존의 레코드 집합(예: RRset)에 대해 디지털 서명을 생성한다. 이 서명은 해당 존의 개인 키로 생성되며, 응답과 함께 전송된다. 수신자는 존의 공개 키를 사용하여 이 서명의 유효성을 확인할 수 있다. 공개 키의 신뢰성은 상위 계층으로부터의 서명을 통해 검증되며, 최상위인 루트 존의 공개 키는 신뢰의 근원(Trust Anchor)으로 사전에 알려져 있다.

주요 구성 요소와 레코드 유형은 다음과 같다.

레코드 유형

설명

RRSIG 레코드

RRset에 대한 디지털 서명을 담는다.

DNSKEY 레코드

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

DS 레코드

자식 존의 KSK에 대한 해시를 담아 상위 존에 등록되어 신뢰 체인을 형성한다.

NSEC/NSEC3 레코드

특정 도메인 이름이 존재하지 않음을 암호화적으로 증명한다(영역 거부 증명).

DNSSEC의 도입은 보안성을 크게 향상시켰지만, 몇 가지 제약 사항도 존재한다. 첫째, DNSSEC은 DNS 데이터의 기밀성을 보호하지 않으며, 오직 무결성과 인증만을 제공한다. 둘째, 서명 생성과 검증으로 인해 DNS 응답 패킷의 크기가 증가하고, 서버와 리졸버의 계산 부하가 늘어난다. 마지막으로, DNSSEC의 성공적인 배포는 루트 존부터 최종 권한 서버까지의 전체 계층 구조가 일관되게 지원해야 하므로, 복잡한 운영과 조정이 필요하다.

9. 관련 기술 및 프로토콜

이 섹션에서는 DNS와 IP 주소 체계와 관련된 주요 보안 및 성능 향상 기술들을 다룬다. 특히 전통적인 DNS의 취약점을 해결하고 효율성을 높이기 위해 개발된 프로토콜과 기법을 설명한다.

DNS 쿼리의 프라이버시와 무결성을 강화하기 위한 프로토콜로 DNS over HTTPS(DoH)와 DNS over TLS(DoT)가 등장했다. 둘 다 DNS 요청과 응답을 암호화하여 제3자가 엿듣거나 조작하는 것을 방지한다. DoH는 HTTPS 프로토콜(포트 443)을 사용하여 DNS 트래픽을 일반 웹 트래픽과 구분하기 어렵게 만드는 반면, DoT는 DNS 전용 포트(853)를 사용하여 명시적으로 암호화된 연결을 수립한다. 이 기술들은 중간자 공격과 같은 DNS 스푸핑 공격을 완화하는 데 기여한다.

콘텐츠 전송 성능과 가용성을 높이기 위해 CDN(콘텐츠 전송 네트워크)은 전 세계에 분산된 서버 캐시를 활용한다. CDN은 종종 애니캐스트(Anycast) 라우팅 기술과 결합되어 사용된다. 애니캐스트를 사용하면 동일한 IP 주소가 지리적으로 다른 여러 서버에 할당된다. 사용자의 DNS 쿼리는 네트워크 토폴로지에 따라 가장 가까운(예: 라우팅 홉 수가 가장 적은) 서버로 자동 라우팅된다. 이는 지연 시간을 줄이고, 서버 장애 시 자동으로 다른 노드로 트래픽이 전환되어 DDoS 공격에 대한 복원력을 제공한다.

기술

주요 목적

사용 프로토콜/포트

특징

DNS over HTTPS (DoH)

DNS 트래픽 암호화 및 프라이버시 보호

HTTPS / 443

웹 트래픽과 혼합되어 감시 회피 가능

DNS over TLS (DoT)

DNS 트래픽 암호화

TLS / 853

전용 포트를 사용하여 암호화된 DNS 연결

애니캐스트 (Anycast)

지연 시간 최소화 및 가용성 향상

IP 라우팅 계층

동일 IP로 여러 서버를 광고, 가장 가까운 서버로 연결

이러한 기술들은 인터넷 인프라의 보안, 개인정보 보호, 성능 및 안정성을 지속적으로 진화시키는 핵심 요소이다.

9.1. DNS over HTTPS (DoH) / DNS over TLS (DoT)

DNS over HTTPS(DoH)와 DNS over TLS(DoT)는 기존의 평문 DNS 질의를 암호화하여 사용자의 프라이버시와 보안을 강화하는 프로토콜이다. 두 기술 모두 전송 계층 보안(TLS)을 기반으로 하여, 제3자가 DNS 질의 내용을 엿보거나 변조하는 것을 방지한다. 그러나 구현 방식과 사용하는 네트워크 포트에서 차이를 보인다.

DoH는 DNS 메시지를 HTTP/2 또는 HTTP/3 프로토콜 내에 캡슐화하여, 표준 HTTPS 포트(443)를 통해 전송한다. 이는 일반적인 웹 트래픽과 구분하기 어렵게 만들어, 네트워크 관리자가 DNS 트래픽을 필터링하거나 모니터링하는 것을 어렵게 할 수 있다. 주요 웹 브라우저와 일부 운영체제에서 기본적으로 지원하기 시작했다. 반면, DoT는 DNS 메시지에 TLS 암호화를 적용하지만, 전용 포트(853)를 사용한다. 이는 암호화된 DNS 트래픽을 명확하게 식별할 수 있게 하여, 기업 환경 등에서 정책 기반의 관리가 상대적으로 용이하다.

두 프로토콜의 채택은 보안 향상과 네트워크 관리의 편의성 사이에서 논쟁을 불러일으켰다. DoH는 사용자 수준의 프라이버시를 강력하게 보호하지만, 조직의 보안 정책이나 자녀 보호 필터링을 우회할 가능성이 있다. DoT는 암호화를 제공하면서도 관리 가능성을 일부 유지하는 절충안으로 여겨진다. 표준화 기구인 IETF는 두 프로토콜 모두를 표준으로 승인했다.

특성

DNS over HTTPS (DoH)

DNS over TLS (DoT)

암호화 방식

HTTP 위에 TLS 적용

DNS 프로토콜에 직접 TLS 적용

사용 포트

HTTPS 포트 (443)

전용 포트 (853)

트래픽 식별

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

전용 포트 사용으로 식별 용이

주요 구현처

웹 브라우저 (Firefox, Chrome 등)

운영체제, 라우터, 재귀 확인자 서버

관리성

사용자 단말 중심, 네트워크 수준 관리 어려움

네트워크 수준에서의 정책 적용 상대적 용이

이러한 암호화 DNS 기술의 확산은 DNS 스푸핑이나 중간자 공격(MitM)과 같은 기존 위협을 완화하는 데 기여한다. 그러나 모든 DNS 서버가 이를 지원하는 것은 아니며, 사용자는 신뢰할 수 있는 암호화 DNS 확인자 서버(예: Cloudflare 1.1.1.1, Google 8.8.8.8)를 명시적으로 설정해야 한다.

9.2. CDN과 Anycast

콘텐츠 전송 네트워크(CDN)는 지리적으로 분산된 서버 네트워크를 활용하여 웹 콘텐츠를 사용자에게 더 빠르고 효율적으로 전달하는 기술이다. CDN은 오리진 서버의 부하를 분산시키고, 사용자와 물리적으로 가까운 에지 서버에서 콘텐츠를 제공함으로써 지연 시간을 줄이고 가용성을 높인다. 이 과정에서 DNS는 사용자의 요청을 가장 적합한 CDN 에지 서버로 안내하는 핵심적인 역할을 수행한다. CDN 제공자는 전 세계에 배치된 서버의 상태(부하, 네트워크 정체도 등)와 사용자의 위치 정보를 기반으로 최적의 서버 IP 주소를 DNS 응답으로 제공한다.

애니캐스트(Anycast)는 하나의 IP 주소를 여러 지리적 위치의 서버에 동시에 할당하고, 라우팅 프로토콜을 통해 사용자의 요청을 가장 가까운(일반적으로 라우팅 홉 수가 가장 적은) 서버로 자동으로 연결하는 네트워크 주소 지정 및 라우팅 방법이다. 이는 동일한 서비스를 제공하는 여러 서버가 하나의 IP 주소를 공유하는 방식이다. 애니캐스트는 DDoS 공격에 대한 복원력을 높이고, 지연 시간을 최소화하는 데 효과적이다.

CDN과 애니캐스트는 종결 함께 사용되어 성능과 안정성을 극대화한다. 많은 CDN 업체는 자신의 DNS 서버 인프라나 글로벌 네트워크 내에서 애니캐스트를 구현한다. 예를 들어, CDN의 권한 있는 네임서버 자체에 애니캐스트 IP를 할당하면, 전 세계 어디서나 발생하는 DNS 질의도 가장 가까운 네임서버로 라우팅되어 빠른 응답을 받을 수 있다. 또한, 콘텐츠를 제공하는 에지 서버의 IP 주소를 애니캐스트로 구성하면, 사용자의 최종 콘텐츠 요청 역시 최적의 서버로 연결된다.

기술

핵심 개념

주요 목적

DNS와의 연관성

CDN

분산된 에지 서버 네트워크

콘텐츠 전송 지연 감소, 가용성 향상

DNS를 통해 최적의 에지 서버 IP 주소를 사용자에게 제공

애니캐스트

단일 IP 주소의 다중 서버 할당

요청자와의 거리 기반 최적 라우팅, DDoS 방어

DNS 서버 인프라 자체에 적용되거나, CDN 에지 서버의 IP 주소 체계로 사용됨

이러한 조합은 사용자에게는 단일 도메인 이름(예시: www.example.com)을 요청하더라도, 백엔드에서는 동적으로 최적의 물리적 서버로 연결되는 투명하고 효율적인 서비스 경험을 제공한다.

10. 관련 문서

  • 위키백과 - 도메인 네임 시스템

  • 위키백과 - IP 주소

  • KISA - 인터넷주소자원(DNS, IP주소)

  • 나무위키 - DNS

  • 나무위키 - IP 주소

  • Google Developers - 웹사이트의 DNS 레코드 작동 방식

  • ICANN - Domain Name System (DNS)

  • IETF - Domain Names - Concepts and Facilities (RFC 1034)

  • APNIC - IPv4 주소 체계 소개

리비전 정보

버전r1
수정일2026.02.13 07:11
편집자unisquads
편집 요약AI 자동 생성