DNS(Domain Name System)

2024. 2. 7. 13:36

 

DNS는 UDP를 사용한다 =? 왜?

 

DNS란 인터넷에서 도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 시스템이다. 

우리가 사용하는 웹 브라우저는 사람이 읽을 수 있는 도메인 이름(www.google.com)을 이해할 수 있지만, 인터넷 자체는 이를 이해할 수 없다. 인터넷은 사실상 숫자로 구성된 IP 주소를 통해 서버를 찾고 통신한다.

DNS 서버는 이 도메인 이름을 해당 IP 주소로 변환하는 역할을 한다. 즉 사용자가 웹 브라우저에 도메인 이름을 입력하면, DNS 서버는 해당 도메인 이름을 해당 서버의 IP 주소로 변환해주는 역할을 한다.

이렇게 DNS를 통해 사람이 읽을 수 있는 도메인 이름과 기계가 이해할 수 있는 IP 주소 사이의 매핑이 가능해지므로

우리는 복잡한 IP 주소 대신 도메인 이름을 기억하고 사용할 수 있게 된다.

 

DNS 서버는 이러한 변환 작업을 수행하는 컴퓨터로, 전 세계에 수천 개가 분산 배치되어 있다. DNS 서버 간에는 계층적인 관계가 있어, 특정 도메인 이름에 대한 요청이 들어오면, 그에 대한 정보를 가지고 있는 DNS 서버를 찾아서 응답을 제공한다.

 

DNS 조회 과정

1. 사용자가 웹 브라우저에 www.google.com 같은 도메인 인 이름을 입력하면, 먼저 로컬 DNS 서버(대부분 인터넷 서비스 제공자(ISP)가 제공)에 요청이 전송된다.

2. 로컬 DNS 서버는 요청받은 도메인 이름에 대한 IP 주소를 알고 있으면 바로 응답을 반환한다. 만약 알지 못하는 경우, 루트 DNS 서버로 요청을 전달한다.

3. 루트 DNS 서버는 최상위 도메인(TLD, Top-Level Domain) 서버(예:'.com' 서버)의 주소를 반환한다.

4. 로컬 DNS 서버는 이 TLD 서버로 요청을 전달하고, TLD 서버는 해당 도메인의 권한을 가진 DNS 서버의 주소를 반환한다.

5. 로컬 DNS 서버는 이 권한 있는 DNS 서버로 요청을 전달하고, 이 서버가 최종적인 IP 주소를 반환한다.

6. 로컬 DNS 서버는 이 IP 주소를 웹 브라우저에 전달하고, 웹 브라우저는 이 주소로 웹 페이지에 접속한다.

 

DNS 트래픽의 보안 문제 : DNS는 웹 사이트 이름을 IP 주소로 변환하는 역할을 하지만, 보안 문제가 발생 가능하다.

 예를 들면 DNS 스푸핑 이라는 공격 방식에서 공격자는 사용자가 원하는 사이트가 아닌 다른 사이트로 리다이렉션 하게 만드는 방식을 사용한다. 이를 방지하기 위해서 DNSSEC같은 기술을 사용해 DNS 요청과 응답을 암호화하는 방법이 있따.

 

DNS 서버의 선택 : 일반적으로 ISP는 자동으로 DNS 서버를 제공하지만, 사용자는 다른 DNS 서버를 선택할 수 있다. 예를 들어 구글의 공용 DNS 서버인 8.8.8.8이나 클라우드플레어의 1.1.1.1과 같은 서버를 선택할 수 있다. 선택하는 이유는 보안 뿐만 아니라 속도 향상 목적

 

DNS의 계층 구조 : 사용자가 웹사이트 이름을 입력하면, 로컬 DNS 서버, 루트 DNS 서버, TLD DNS 서버, 그리고 최종적으로 도메인의 DNS 서버로 요청이 전달된다. 이렇게 여러 단계를 거치면서 웹사이트의 IP 주소를 찾게 된다.

 

DNS 캐싱 : DNS 쿼리 결과는 일정 시간 동안 캐시에 저장되어, 동일한 요청에 대해 빠르게 응답할 수 있다. 이는 네트워크 트래픽을 줄이고, DNS 쿼리의 응답 시간을 단축하는 역할을 한다.

'Network' 카테고리의 다른 글

OSI 7계층  (0) 2024.02.21
스위치(Switch)  (0) 2024.02.15
HTTP(S), 소켓  (0) 2024.02.03
TCP/IP  (0) 2024.02.02
웹 소켓(WebSocket)  (0) 2024.01.23

BELATED ARTICLES

more