DNS(Domain Name System) 정의
DNS(Domain Name System)는 인터넷상에서 목적지를 찾을 수 있도록 도와주는 길잡이 또는 전화번호부 같은 역할은 한다. 도메인 이름을 IP 주소로 변환 또는 역변환도 가능한 시스템입니다.
예를 들어 사용자가 구글 웹 페이지 접속을 위해 'google.com' 도메인을 입력하는 경우, 컴퓨터는 숫자로 구성된 IP 주소로 변환합니다. 이 과정으로 복잡한 네트워크 환경에서 사용자가 요청한 데이터는 컴퓨터가 이해하고 정확하게 목적지로 전송할 수 있습니다.
사용자는 복잡한 IP 주소를 기억하지 않고도 인터넷 쉽게 사용할 수 있고, DNS는 인터넷 환경에서 편리성과 효율성을 증가했습니다.
DNS 필요성
DNS(Domain Name System) 필요성은 도메인을 IP 주소로 변환하여 사용자가 웹사이트에 쉽게 사용하고 복잡한 숫자의 IP 주소를 기억할 필요 없이 웹에 접속할 수 있도록 하여 효율성과 편리성 모두 제공합니다.
도메인에서 IP 주소 변환 과정은 인터넷 사용을 극대화하고, 네트워크상에서 데이터를 빠르고 쉽게 찾을 수 있도록 합니다. DNS 없이는 인터넷 접근은 사용자에게 불편함을 증가시키고, 디지털 환경에서 효율성이 감소할 것입니다.
DNS 구성 요소
DNS 구성 요소에는 루트 서버, TLD(Top-Level Domain) 서버, 권한 있는 네임 서버(Authoritative DNS Server)가 있습니다. DNS 조회 과정에서 각 구성요소들의 상호 작용으로 사용자는 원하는 웹 사이트에 접근할 수 있습니다.
루트 서버는 총 13개의 루트 서버로 구성되어 있으며, DNS 계층 구조에서 최상단의 위치합니다. 도메인 조회 과정에서 요청을 받아 TLD 서버로 전달하는 역할을 합니다. 예를 들어, 사용자가 'google.com'을 요청하면 루트 서버는 '.com' 도메인을 전달받아 TLD 서버에서 조회할 수 있도록 가이드합니다.
TLD 서버는 최상위 도메인을 관리하며, '.org, .com, .net, .kr' 같은 국가 최상위 도메인(ccTLDs) 및 일반 최상위 도메인(GTLDs)을 관리합니다. TLD 서버는 해당 최상위 도메인 내의 특정 도메인에 대한 조회 요청을 받아 권한 있는 네임 서버의 주소를 알려줍니다.
DNS 이해를 위해 국가 최상위 도메인(ccTLDs)과 일반 최상위 도메인(GTLDs)에 대하여 간단하게 추가 설명합니다.
국가 최상위 도메인(ccTLDs)은 특정 국가 또는 지역을 나타내는 두 글자 코드(kr, .uk)로, 국가별 규제 기관이 별도로 있습니다.
일반 최상위 도메인(gTLDs)은 국가 또는 지역에 상관없이 세 글자 이상의 도메인(.net, .com, .org)으로, ICANN 관리 및 상업적, 비영리적 목적 또는 특정 산업을 대표합니다.
권한 있는 네임 서버는 특정 도메인의 DNS 레코드를 관리하고 도메인의 IP 주소 정보를 저장하고 있습니다. 사용자가 'google.com'에 대하여 권한 있는 네임 서버는 해당 웹사이트의 IP 주소를 알고 있으며, DNS 조회 요청이 들어오면 특정 주소를 안내합니다. 최종적으로 사용자는 웹사이트에 접속할 수 있게 됩니다.
이러한 DNS 시스템의 구성 요소들은 인터넷 사용의 편리성과 효율성을 가능하게 하는 핵심적인 기술입니다. 루트 서버부터 시작해 TLD 서버를 거쳐, 권한 있는 네임 서버에 이르기까지, 각 단계는 인터넷의 동작 방식을 이해하는 데 중요한 역할을 합니다. 이들 간의 상호 작용을 통해, 우리는 복잡한 IP 주소를 기억하지 않고도, 도메인 이름을 통해 원하는 웹 사이트를 쉽게 찾을 수 있습니다.
DNS 동작방식
DNS 동작방식은 7단계로 세분화하여 설명합니다.
1. 사용자의 요청
사용자가 웹 브라우저에 도메인으로 'google.com'을 검색하면 DNS 조회가 진행됩니다. 로컬 DNS 서버 조회: 브라우저는 사용자의 장치가 설정된 로컬 DNS 서버에 도메인의 IP 주소를 요청합니다. 이 로컬 DNS 서버는 일반적으로 인터넷 서비스 제공업체(ISP)에 의해 운영됩니다.
2. 루트 DNS 쿼리
로컬 DNS 서버가 요청된 도메인의 IP 주소를 캐시에 저장하고 있지 않는 경우, 루트 DNS 서버에 질문을 전달합니다. 루트 서버는 전 세계에 13개가 있으며, 도메인 이름의 최상위 레벨(TLD)에 대한 정보를 가지고 있습니다.
추가로 DNS 쿼리는 재귀적 쿼리(Recursive Query) 와 반복적 쿼리(Iterative Query)로 분류됩니다.
재귀적 쿼리(Recursive Query) | 반복적 쿼리(Iterative Query) |
재귀적 쿼리는 사용자 응답을 받을때까지 기다리는 특징이 있습니다. 사용자 환경에 설정된 DNS 서버가 다른 DNS 서버에 도메인에 대하여 IP 주소를 요청 후 답변을 기다린다. 대부분 ISP의 DNS 서버가 사용자를 대신하여 모든 DNS 서버에 요청하고 IP 주소를 응답 받습니다. |
반복적 쿼리는 최선의 답을 찾는 특징이 있습니다. 요청한 DNS 서버가 적절한 데이터를 가지고 있지 않다면, 요청을 보낼 수 있는 다른 서버의 주소를 사용자에게 답변해줍니다. 사용자는 다른 DNS 서버에 쿼리를 보내 도메인의 IP 주소에 대한 응답을 받거나, 없는 경우 다시 다른 서버로부터 답변을 받을때까지 반복 시도합니다. |
3. TLD 서버 조회
루트 서버는 도메인(예: .com, .org, .net 등)에 대한 TLD를 관리하는 TLD 서버의 주소를 로컬 DNS 서버에 알립니다. 로컬 DNS 서버는 TLD 서버에 접속하여 도메인에 대한 권한 있는 이름 서버 주소를 요청합니다.
4. 신뢰할 수 있는 네임서버 조회
TLD 서버는 도메인에 대한 권한 있는 이름 서버 정보를 로컬 DNS 서버에 제공합니다. 신뢰할 수 있는 이름 서버는 도메인에 대한 특정 DNS 레코드를 보유하고 궁극적으로 웹사이트에 IP 주소를 제공합니다.
5. IP 주소 반환 및 캐싱
로컬 DNS 서버는 권한 있는 이름 서버로부터 받은 IP 주소를 컴퓨터에 반환합니다. 또한 효율성을 높이기 위해 이 정보를 일정 기간 동안 캐시에 저장합니다. 이를 통해 동일한 도메인에 대한 향후 요청에 더 신속하게 응답할 수 있습니다.
6. 사용자 접근
브라우저는 반환된 IP 주소를 사용하여 웹 사이트에 액세스하고 웹 콘텐츠를 사용자에게 표시합니다.
'사이버 보안' 카테고리의 다른 글
무선 보안 취약점 식별과 효과적인 대응방법 (0) | 2024.03.28 |
---|---|
디지털 증거 확보를 위한 포렌식 기본 원칙 및 수행 절차 (0) | 2024.03.27 |
재택근무 보안을 위한 VPN 구성 및 보안가이드 (0) | 2024.03.14 |
데이터베이스(DB) 접근제어 정의와 운영 방안 (0) | 2024.03.12 |
DLP(데이터유출방지)로 위협 방지 (0) | 2024.03.12 |