-
[Network] DNS의 name resolution(이름 풀이)의 모든 것!!Network 2025. 2. 24. 13:57728x90반응형
DNS를 제대로 공부하려면 name resolution을 정확히 이해해야한다.
사실 어떤 주소를 입력했을 때 IP 주소를 받아오는 건 이해는했지만
그 속에서 어떤 동작원리로 진행되는지 모르는 경우가 많았다.
나또한 그냥 그러려니 사용했던 것들인데
이번에는 제대로 깊이 파악해보려고 공부했고 공유해보려한다.

DNS 이름 풀이(name resolution)
인터넷에서 웹사이트에 접속할 때, 보통 www.tistory.com 같은 도메인 이름을 입력한다.
혹시 192.168.1.10 같은 IP 주소를 입력하는 사람이 있는가? 아마 없을 것이다.
하지만, 통신을 하려면 IP 주소에 접근해야한다.
그러면 어떻게 도메인 → IP 주소로 변환할까?
이러한 과정을 name resolution 이라고한다.
이름 풀이인데 말 그대로 우리가 이름을 요청하면 이름을 풀어서 IP주소로 만들어준다는 의미라고 생각하면 좋겠다.
반응형🛠 DNS Name Resolution 과정

그림은 내가 직접 그려본 전체 과정이다.
1. 스터브 리졸버 -> 풀 리졸버에게 IP 요청
웹 브라우저에 www.example.com 을 입력하면, 스터브 리졸버는 풀 리졸버에게 먼저 요청을 한다.
-> 기존의 시스템은 스터브 리졸버가 루트 서버에 직접 요청했는데 맨날 똑같은 주소를 요청하면 너무 불필요한 과정이기에 새로운 리졸버를 만들어 캐시를 저장하고 대신 물어봐주는 리졸버를 만들었고 그것이 바로 풀 리졸버이다.
2. 풀 리졸버 캐시 확인
기존에 요청된 적 있는지 캐시를 확인하여 만약 데이터가 있다면 바로 스터브 리졸버에게 전달한다.
- 평소 사용하는 8.8.8.8 (Google DNS), 1.1.1.1 (Cloudflare DNS) 등이 알려진 풀 리졸버!!
-> 여기서 되게 신기하고 재밌는 사실은 캐시에는 네거티브 캐시가 존재한다. 네거티브 캐시는 존재하지않는 데이터를 저장하는 것이다. 예를 들면, 우리가 www.abcdf.com을 검색해본다. 하지만, 해당 페이지는 아예 존재하지않는 페이지였다면? 그러면 나는 요청할때마다 항상 이름풀이를 해야하는건가? 이런 부분에대한 결과또한 캐시로 남겨두어 시간 효율성을 추구하는 것이다. (개인적으로 너무 재밌었던 개념 중 하나)
3. 풀 리졸버 -> 루트 네임서버에게 IP 요청
만약 캐시에 없다면 루트 네임서버에게 IP 요청을한다.
4. 루트 네임서버 → TLD 네임서버 → 권한 네임서버 조회
루트서버로부터 TLD, 2LD 등 계속 내려가면서 권한 네임서버를 알아낸다.
- 여기서 권한 서버가 하나면 위험할 수 있다. 권한 서버는 여러대를 배치하여 부하 분산을 진행하면서 하나의 서버가 다운되어도 보조가 가능하도록 만들어주는 것이 중요하다.
- 1️⃣ 루트 네임서버(Root DNS):
- "이 도메인은 .com 을 포함하네? .com을 관리하는 TLD 네임서버에 물어봐!
- 보통 child, parent의 개념을 사용하는데 여기서 TLD의 parent는 Root 서버이다.
- Root 서버는 TLD 네임서버의 정보를 꼭 알고있다. (Parent는 child의 네임서버를 알고있어야 풀 리졸버에게 정보 전달 가능)
- 2️⃣ TLD 네임서버(Top-Level Domain DNS):
- ".com 도메인은 example.com을 어떻게 관리하는지 알려줄게!"
- 3️⃣ 권한 네임서버(Authoritative DNS):
- "www.example.com의 IP 주소는 192.168.1.10이야!"
5. 마지막으로 IP 주소 보내기 & 접속!
재규 DNS 서버는 권한 네임서버로부터 받은 IP 주소를 클라이언트(PC, 메일 서버 등)에 전달한다.
- 또한 해당 정보를 캐시에 갱신하여 다음에 매뉴얼 시간을 줄이는데 도움이된다.
728x90"정리"
'스터브 리졸버'는 정보가 필요한 사람, '풀 리졸버'는 의뢰를 받아 이름풀이를 진행하는 사람, '권한있는 서버'는 자기가 알고있는 정보를 관리하고 요청을 수락 or 거부하는 사람
name resolution은 말 그대로 이름을 요청하면 IP주소로 풀이해주는 과정이다.
1️⃣ 스터브 리졸버 -> 풀 리졸버에게 IP 요청
2️⃣ 풀 리졸버 캐시 확인
3️⃣ 풀 리졸버 -> 루트 네임서버에게 IP 요청
4️⃣ 루트 네임서버 → TLD 네임서버 → 권한 네임서버 조회
5️⃣ 마지막으로 IP 주소 보내기 & 접속!
6️⃣ 웹사이트 접속 완료!이 사이에서 스터브 리졸버, 풀 리졸버, 권한있는 서버 등 다양하게 존재하는데 각각의 역할을 잘 알아두는것이 중요하다.
728x90반응형'Network' 카테고리의 다른 글
[Network] DNS의 동작원리를 정말 쉽게 알아가보자 (0) 2025.02.07 [Network] Linux에서 네트워크성능 측정을 위한 iperf 설치 (including method without sudo) (0) 2023.03.13