전공 공부/컴퓨터네트워크

DNS: 인터넷의 주소록

튼튼발자 2024. 9. 24. 10:14
728x90

인터넷을 사용하는 동안 도메인 이름(www.example.com)과 IP 주소(192.168.0.1) 간의 변환이 어떻게 이루어지는지 궁금했던 적 있나요? 그 답은 바로 DNS(Domain Name System)에 있습니다. 이번 포스팅에서는 DNS의 기본 개념과 구조에 대해 알아보겠습니다.


🗂️ DNS란 무엇인가?

DNS는 인터넷의 분산된 데이터베이스로, 도메인 이름을 IP 주소로 변환하는 역할을 합니다. 마치 전화번호부처럼, 사용자가 기억하기 쉬운 도메인 이름을 입력하면 해당 서버의 IP 주소로 변환해 웹사이트에 접근할 수 있게 해줍니다.

 

🏛️ DNS의 계층 구조

DNS는 중앙 집중화된 시스템이 아닌, 계층 구조로 이루어진 분산 시스템입니다. 이렇게 분산된 구조 덕분에 트래픽 분산과 빠른 응답이 가능하며, 단일 장애 지점이 생기더라도 전체 시스템이 마비되지 않습니다.

  1. Root DNS 서버: 최상위 계층으로, 도메인 이름을 .com, .net, .org와 같은 최상위 도메인(TLD) 서버로 연결해 줍니다.
  2. TLD 서버: 각 도메인에 대한 정보를 가지고 있는 서버로, 예를 들어 .com, .net, .kr과 같은 도메인의 IP 주소를 관리합니다.
  3. 권한 있는 DNS 서버: 실제 도메인 이름에 대한 IP 주소 정보를 보유한 서버입니다. 예를 들어, www.amazon.com 대한 IP 주소 정보를 제공합니다.

 

📍 DNS 질의 과정

웹사이트에 접속할 때 클라이언트는 DNS 서버를 통해 IP 주소를 요청합니다. 이 과정에는 두 가지 질의 방식이 있습니다:

  1. 반복적 질의(Iterated Query): 클라이언트가 각 서버에 질의하며, 서버는 다음 질의할 서버 정보를 제공합니다.
  2. 재귀적 질의(Recursive Query): DNS 서버가 클라이언트 대신 모든 작업을 처리하고 최종 IP 주소를 반환합니다.

 

🛡️ DNS 보안

DNS는 DDoS(Distributed Denial of Service) 공격에 취약할 수 있습니다. 이는 악의적인 사용자가 다량의 요청을 보내 특정 서버를 과부하 상태로 만들어 시스템을 다운시키는 공격입니다. 이 외에도 DNS 스푸핑(DNS Spoofing)과 같은 보안 위협이 존재합니다. 이를 방지하기 위해 DNSSEC와 같은 보안 프로토콜이 사용됩니다.

 

🔐 DNS와 캐싱

DNS는 캐싱을 통해 성능을 최적화합니다. 한 번 질의한 도메인 정보는 로컬 DNS 서버에 캐시되며, 이후 동일한 도메인 요청 시 더 빠르게 응답할 수 있습니다. 그러나 캐시가 오래되면 실제 IP 주소와 맞지 않을 수 있어 TTL(Time To Live) 설정을 통해 일정 시간이 지나면 캐시된 정보가 자동으로 갱신되도록 합니다.

728x90