도구 및 기타/개발상식

DNS (Domain Name System)

tero1115 2024. 11. 12. 16:55

DNS(Domain Name System)란?

인터넷을 사용하다 보면 누구나 www.example.com 같은 도메인 이름을 입력하게 됩니다. 그런데 컴퓨터는 이런 도메인 이름을 이해하지 못하고, 실제로는 IP 주소를 통해 통신합니다. 여기서 DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환해주는 시스템입니다. 쉽게 말해, 사람이 이해하기 쉬운 도메인 이름을 입력하면, DNS는 해당 서버의 IP 주소로 변환해 줍니다. DNS는 우리가 인터넷을 쉽게 사용할 수 있게 도와주는 핵심적인 역할을 합니다.

 

DNS의 주요 역할

  1. 도메인 이름을 IP 주소로 변환: 사용자가 브라우저에 www.example.com을 입력하면, DNS는 이를 해당 서버의 IP 주소(예: 192.168.1.1)로 변환합니다. 이 덕분에 사용자는 복잡한 숫자 대신 도메인 이름만 기억하면 됩니다.
  2. 네트워크 경로 최적화: DNS는 사용자가 위치한 지역에 따라 가장 가까운 서버의 IP 주소로 연결해 줍니다. 이를 통해 사용자는 더 빠르고 효율적인 연결을 경험할 수 있습니다.
  3. 부하 분산: 대형 웹사이트의 경우 여러 서버를 운영하며, DNS를 통해 부하를 분산시켜 서버 성능을 최적화할 수 있습니다. 이를 통해 사이트의 안정성과 속도를 유지할 수 있습니다.

 

DNS의 동작 방식

  1. 사용자가 도메인 입력: 사용자가 브라우저에 www.example.com을 입력하면, 브라우저는 먼저 로컬 DNS 캐시에서 IP 주소를 찾습니다.
  2. 로컬 DNS 서버 문의: 캐시에 정보가 없으면, 로컬 DNS 서버에 도메인 이름의 IP 주소를 요청하게 됩니다.
  3. DNS 계층 탐색: 로컬 DNS 서버가 해당 주소를 모르면, 최상위 도메인 서버(TLD, 예: .com)로 요청을 전달하며, 점차적으로 정확한 IP 주소를 찾습니다.
  4. 결과 반환 및 접속: 최종적으로 IP 주소가 반환되면, 브라우저는 이 IP 주소로 해당 서버에 연결하여 웹사이트를 표시합니다.

 

DNS의 구성 요소

  • 도메인 네임(Domain Name): 사람이 읽기 쉬운 주소입니다. 예를 들어, example.com이 도메인 네임입니다.
  • IP 주소: 실제 서버 위치를 나타내는 주소입니다. 예를 들어, 192.168.1.1과 같은 숫자가 IP 주소입니다.
  • 네임서버(Name Server): 도메인 이름과 IP 주소를 매칭하는 서버로, DNS 질의에 응답합니다.
  • DNS 레코드: 도메인과 연결된 정보입니다. A 레코드(IPv4), AAAA 레코드(IPv6), CNAME(별칭), MX(메일 서버) 등 다양한 유형이 있습니다.

 

DNS 캐싱

DNS는 검색 속도를 높이기 위해 캐싱을 사용합니다. 한 번 조회한 도메인-IP 정보는 일정 시간 동안 로컬에 저장됩니다. 이렇게 하면 같은 요청이 있을 때 빠르게 응답할 수 있습니다. 그러나 이 캐시 때문에 도메인 정보를 변경한 후, 새로운 정보가 모든 네트워크에 퍼지기까지 시간이 걸릴 수 있는데, 이를 DNS 전파 시간이라 부릅니다.

 

DNS 사용 시 주의할 점

  • DNS 전파 시간: 도메인 정보가 변경되면 모든 네트워크에 새로운 정보가 퍼지기까지 시간이 걸립니다. 이 때문에 도메인이나 서버 IP를 변경할 때 잠시 동안 구버전 정보로 접속될 수 있습니다.
  • DNS 보안: DNS를 변조하는 공격(DNS 스푸핑)으로 인해 사용자가 악의적인 사이트로 연결될 위험이 있습니다. 이를 방지하기 위해 DNSSEC 같은 보안 기술을 사용할 수 있습니다.