본문 바로가기

소프트웨어-이야기/프로그래밍 언어와 프레임워크

개발자를 위한 최소한의 DNS 지식 (1): 기초편

DNS resolver이란?

Dns의 원리를 사용해 IP를 찾아내는 역할을 하는 클라이언트로 볼 수 있다.

 

hosts.conf 파일이란?

특정 도메인에 대한 IP를 찾을 때, 주소 값을 어디에서 찾을지 결정하는 파일이다. 

 

resolve.conf 파일이란?

OS에서 DNS resolver를 구성할 때 사용하는 파일이다. 사용하고자 하는 네임서버를 기록해둔다. 

resolv 파일이 다음과 같이 구성되어있다고 상상해보자. 

$cat /etc/resolv.conf
search americano.com cafelatte.com cappuccino.com

여기서 search는 순차적으로 조회해볼 name server를 말한다. name server는 도메인에 맞는 ip 주소를 찾을 때 사용하는 서버를 말한다. 

resolv 파일이 실제로 어떻게 동작해보는지 순서를 이해해보자. 

front라고 지어진 도메인을 호출한다고 가정하면 이해가 수월하다. 

front를 호출하면, DNS resolver는 search에 기록된 name server에 순서대로 질의한다.

  • front.americano.com
  • front.cafelatte.com
  • front.cappuccino.com
  • ...

이렇게 호스트 이름과 name server를 붙여서, fqdn을 만든다. 그리고 순차적으로 질의해서, ip 주소를 찾아낸다. 

나는 non-fqdn으로 엔드포인트를 사용할 때, ip 주소를 찾아내는 방법으로 이해했다.

 

FQDN vs Non-FQDN

FQDN (Fully Qualified Domain Name)이란, 호스트 이름과 도메인 이름을 합한 전체 도메인을 말한다. 주소의 마지막에 . (점)이 붙은 경우도 FQDN으로 볼 수 있다. 그러나 . (점)은 생략이 가능하다. 

Non-FQDN은 FQDN의 반대되는 개념이다. PQDN(Partially Qualified Domain Name)이라고도 부른다. FQDN의 가장 왼쪽에 위치한 레이블을 말한다. 

 

예를 들어, item.americano.com이라는 주소가 있다고 생각해보자.

item.americano.com은 FQDN이다.

item은 Non-FQDN, PQDN이다. 

 

그래서 애플리케이션에서 Non-FQDN인 item이라는 엔드포인트만으로 통신을 하려면, DNS resolver가 이 주소를 item.americano.com으로 바꿔서, IP를 찾아내는 작업이 필요하다. 

그 역할을 resolve.conf 파일이 돕는다.

reverse DNS

일반적으로 DNS를 조회한다는 것은, 도메인으로 ip를 찾아내는 과정을 말한다. reverse DNS은 그 반대이다. 

IP 주소로 DNS를 찾아내는 것을 말한다. 

주로 이메일이 스팸 메일인지 판단하는 기능에로 사용된다. 

DNS의 동작 순서 

https://www.researchgate.net/figure/Domain-resolution-process-with-a-recursive-resolver_fig1_330006223

americano.com이라는 주소를 찾아가는 여정을 대략.. 다음과 같이 이해해보자. 

-> 브라우저는 도메인을 입력 받으면 캐시에 저장되어있는지 확인하고

-> 없으면 OS의 resolver에게 물어보고 

-> OS 캐시에도 없으면 resolver는 IP를 찾기위해 여정을 떠난다.

-> 일단, root 서버에게 주소를 물어보고, 주소의 마지막에 붙은 TLD 서버 주소를 응답받는다. (ex. com)

-> 그다음 resolver는 TLD 서버한테 주소를 다시 물어본다. 그러면 TLD 서버는 authoritative name server IP 주소를 알려준다. (ex. americano)

-> resolver는 이렇게 americano.com이라는 도메인 주소의 IP를 알아낸다.

 

<끝> 

 

참고

https://www.baeldung.com/linux/etc-resolv-conf-file

https://www.lifewire.com/what-does-fqdn-mean-2625883