DNS

2025. 2. 10. 16:07네트워크

 Domain Name


Domain Name, DN은 인터넷에서 사용되는 IP 주소와 매핑된 문자열 주소다. IP 주소는 숫자열로 이루어져 있어서 사람이 기억하기 어렵기 때문에 문자열로 이루어진 쉬운 주소를 실제 IP 주소와 연결한 것이다.

전화번호부를 생각해보자.
전화번호에 이름을 저장하는 거 처럼 168.126.63.1라는 IP 주소와 symbbad.com이라는 문자열 주소를 매핑시켜 저장하는 것이다.

 

 

⁉️ Domain Name 대여

만일 웹 사이트를 운영하기로 했다면 도메인 이름을 고려해야한다. 물론 도메인 이름을 사용하지 않고 IP 주소로만 웹 사이트 운영이 가능하다. 그러나 도메인 이름 사용 시 얻을 수 있는 이점을 포기하기에는 그 이점이 좀 크다.

  • 웹 사이트 접근성
  • SEO(검색 최적화)
  • 브랜드 보호 측면

도메인 이름을 사용하려면 인증 받은 기관을 통해 도메인 이름을 등록해야 한다. 대표적으로 가비아와 같은 사이트에서 등록할 수 있다.

도메인 이름을 한 번 등록했다고 영구적으로 소유권을 보장하는 것은 아니다. 등록(Registration)하고, 일정 기간 갱신(Renewal)해야 하는 구조이다. 만료된 도메인은 제3자가 다시 등록할 수 있다. 

 

 

 

  Domain Name Structure


도메인 이름(Domain Name, DN)을 보면 그 형태가 다양하다는 것을 알 수 있다.

www.blog.symbbad.com

 

위 도메인을 예로 도메인 이름의 구조를 파악해보자.

먼저 도메인 이름을 파악할 때 알고 있어야 하는 특징을 보자.

 

✔️도메인 이름의 구조는 계층적이다.

정확히 말하자면 도메인 이름은 DNS의 계층적 메커니즘을 표현한 것이다.

 

✔️도메인 이름의 처리 순서는 뒤에서 부터 이루어 진다.

우리가 도메인 이름을 읽을 때 앞에서 부터 읽는다. 그런데 이 도메인 이름이 처리될 때는 맨 뒤에서 부터 처리된다.

 

아래 그림을 보면 맨 뒤에 점( . )이 표현되어 있는데 일반적으로 이 점은 생략된다.

1️⃣ 루트 도메인 (Root Domain)
점(`.`)으로 표시되면, 일반적으로 생략한다

2️⃣ 최상위 도메인 (Top Level Domain, TLD)
도메인이 서비스 목적을 알려준다.
* 일반 TLD(gTLD): com(상업), .org(비영리), .edu(교육) 등 국가 코드
* TLD(ccTLD).kr, .jp, .us 등 특정 국가를 나타냄
* 새롭게 도입된 TLD.app, .tech 등 특정 산업이나 관심사에 맞춘 gTLD
현대에서 도메인은 단순 식별을 넘어선 브랜딩이나 창의적인 활용도 이루고 있다.

3️⃣ 2차 도메인 (Second Level Domain, SLD)
Domain Name의 고유한 이름

4️⃣ 서브 도메인 (Subdomain)
2차 도메인의 아래로 추가된 계층인데, 특정 서비스나 섹션을 표현할 수 있다.
예를 들어 symbbad.com이라는 도메인 이름을 구입했다고 하자. 이 도메인 이름을 기준으로 blog.symbbad.com이나 portfolio.symbbad.com와 같은 서브 도메인을 생성할 수 있다.

5️⃣ 호스트명 (Hostname)
`Domain Name` 구조에서 가장 왼쪽(첫번째)에 위치하고 특정 장치나 서버를 지칭한다. 호스트명이 생략될 수 있다.
예로는 `www`, `ftp`, `mail`과 같은 것들이 사용된다.

 



DNS (Domain Name System)


➡️ Domain Name을 IP 주소로 바꿔주는 역할을 수행한다. Domain Name - IP 주소를 매핑한 데이터를 갖고 있는 분산 네트워크 시스템이다. 

 

 

 DNS Strucuture


DNS는 요청을 받으면, 요청 받은 도메인 이름을 IP 주소로 반환해 준다.

이 작동 구조가 계층적 구조로 설계 되어 있다.

1️⃣ 루트 계층 (Root Level)
DNS 계층에서 최상위 계층에 해당한다. 인터넷 도메인 시스템의 시작점이다.
Root DNS가 이 계층에 존재하고 모든 DNS 쿼리는 루트 계층에서 시작한다.

Domain Name 구조 중 .com, .org, .net, .kr와 같은 최상위 도메인을 관리하는 DNS Server로 쿼리를 전달한다.
2️⃣ 최상위 도메인 계층 (Top Level Domain DNS)
루트 계층 (Root Level) 바로 아래 위치하며 .com, .org, .net, .kr와 같은 최상위 도메인을 관리한다.
3️⃣ 2차 도메인 계층 (Second Domain Level)
최상위 도메인 계층의 아래에 위치하고, 고유한 이름의 도메인을 관리한다.
> `blog.symbbad.com`의 `symbbad` 부분을 관리

하위 도메인이나 특정 서비스로 트래픽을 분배한다.
도메인 소유자가 설정한 DNS 레코드를 저장하고 관리한다.
4️⃣ 서브 도메인 계층 (Subdomain Level)
2차 도메인 아래에 위치하고, 2차 수준 도메인의 특정 섹션이나 서비스를 관리한다.
> `blog.symbbad.com`의 `blog` 부분을 관리

도메인 소유자는 서브 도메인을 자유롭게 생성하고 관리할 수 있다.
5️⃣ 호스트 계층 (Host Layer)
서브 도메인 계층에 위치하고, 특정한 장치나 서버를 지칭한다.

 

 

 

 

DNS 명칭


기능적 역할에 따른 분류


재귀적 DNS (Recursive DNS)
➡️ 사용자의 DNS 요청을 받고 다른 DNS 서버와 통신해서 최종 IP 주소를 가져오는 서버. IP 주소를 갖고 오기 위해 발로 뛰는 요원이라고 생각하자.

권위적 DNS (Authoritative DNS)

➡️ 특정 도메인 이름에 대한 정보를 저장하고 관리하는 서버. 요청에 대해 다른 DNS에 물어보지 않고 바로 대답하는 서버.

캐시 DNS (Cache DNS)

➡️ 처리한 DNS 요청의 결과를 일정 시간 동안 저장하여 동일 요청 시 빠르게 응답하는 서버. 일반적으로 재귀적 DNS에 포함된 기능


 

운영 주체에 따른 분류


공용 DNS (Public DNS)
➡️ 누구나 사용할 수 있는 공용 DNS
➡️ 재귀 DNS / 캐시 DNS

로컬 DNS (Local DNS)
➡️ 사용자 네트워크에서 기본 설정된 DNS
➡️ 가정에서는 보통 사용하는 ISP의 DNS를 로컬 DNS로 사용하게 된다
➡️ 캐시 서버로도 동작해서 요청 성능을 높이는 경우도 있음

ISP DNS (Internet Service Provider DNS)
➡️ ISP가 제공하는 DNS 서버
➡️ 재귀적 DNS 서버 및 캐시 DNS  역학을 수행
➡️ DNS 하이재킹, 피싱 사이트 차단 미흡등의 취약점 존재


 

DNS 메커니즘


사용자가 웹 브라우저에서 Domain Name을 입력하고 접속 시도 시 IP 주소를 받아오는 프로세스


1️⃣ 자기 PC 메모리를 검색한다

DNS Cache를 확인한다.

DNS Cache는 PC가 자체적으로 유지하고 있다


2️⃣ DNS Cache에서 데이터를 찾을 수 없다면, hosts file을 확인한다

hosts file은 수동으로 정의된 도메인과 IP 주소 간의 매핑 정보가 들어있다.


3️⃣ hosts file에서 데이터를 찾을 수 없다면, DNS forwarding 기능이 있는 공유기를 사용하는 경우 공유기에게 IP 주소를 요청하고 공유기는 ISP DNS에게 이 요청을 전달한다.

* 가정 기준으로 Local DNS는 ISP DNS를 사용하는 것이 일반적이므로 ISP DNS라고 표현하겠다. 
* DNS Cache를 지원하는 공유기이면서 해당 IP 주소를 가지고 있는 경우, 바로 IP 주소를 반환한다.


4️⃣ 공유기가 ISP DNS에게 요청을 전달하면, ISP DNS에는 다음 작업이 진행된다.

  • Cache 확인
    • ISP DNS`에 해당 데이터의 해당 도메인 이름의 IP 주소가 존재하면 공유기에게 IP 주소를 반환한다.
    • 공유기는 반환 받은 IP 주소를 `PC`에게 전달한다.
    • DNS Cache를 지원하는 공유기인 경우, 해당 데이터를 TTL 시간 만큼 Caching하여 갖고 있다가 같은 질의를 받으면 바로 IP를 반환함으로서 속도를 높인다
  • Cache 없음
    • ISP DNS는 Root DNS에게 질의 과정을 시작한다.
    • ISP DNS는 `Root DNS`에게 질의 과정을 통해 반환 받은 IP 주소를 `공유기`에게 전달하고 해당 데이터를 TTL 시간 만큼 Caching하여 갖고 있다가 같은 질의를 받으면 바로 IP를 반환함으로서 속도를 높인다.

Root DNS 질의 과정

1️⃣ Root DNS 질의

ISP DNS는 자체 DNS Cache가 있다면 바로 IP 주소를 반환한다.

없다면 `ISP DNS`는 `Root DNS`에게 `.com`에 대한 질의를 한다.

> Root DNS는 ISP DNS`에게 .com을 관리하는 DNS 목록을 반환한다.


2️⃣ TLD DNS 질의

ISP DNS`는 반환 받은 목록 중 최적의(자신에게 제일 가깝거나 응답이 빠른) .com DNS에게 google.com에 대한 질의를 한다.
> .com DNS는 ISP DNS에게 google을 관리하는권한 있는 DNS 목록을 반환한다.


3️⃣ Authoritative DNS 질의

ISP DNS는 반환 받은 목록 중 최적의(자신에게 제일 가깝거나 응답이 빠른) google DNS에게 http://www.google.com 에 대한 질의를 한다.

 

4️⃣ 최정 IP 주소 응답

google DNS는 최종 응답으로 123.123.123.123 IP 주소를 Local DNS`에게 반환하고 PC는 http://www.google.com 에 대한 IP 주소를 획득하게 된다.




💡 참고 자료


 

 

 

 

 

 

'네트워크' 카테고리의 다른 글

Inbound & Outbound  (0) 2025.02.05