기본 재귀 캐싱 DNS 서버 설정 및 도메인을 위한 존 구성

상상해보세요. 만약 우리가 일상적으로 사용하는 모든 웹사이트의 IP 주소를 기억해야 한다면 어떨지 생각해보세요. 기억력이 뛰어나더라도 웹사이트로 이동하는 과정은 매우 느리고 시간이 많이 걸릴 것입니다.

또한, 동일한 장치나 가상 호스트에 있는 여러 웹사이트를 방문하거나 여러 애플리케이션을 사용해야 한다면 어떨까요? 그것은 제가 생각할 수 있는 최악의 두통 중 하나가 될 것입니다. IP 주소가 사전 공지 없이 변경될 수도 있다는 가능성을 언급하지 않아도 되겠네요.

그런 생각만으로도 얼마간의 시간이 지난 후에는 인터넷이나 내부 네트워크를 사용하지 않게 되는 충분한 이유가 될 것입니다.

그것이 바로 도메인 이름 시스템 (DNS으로도 알려짐) 없는 세상이 될 것입니다. 다행히도, 이 서비스는 위에서 언급한 모든 문제를 해결해 줍니다 – IP 주소와 이름 간의 관계가 변경되더라도요.

그 이유로 본 기사에서는 간단한 DNS 서버를 구성하고 사용하는 방법을 배워보겠습니다. 이 서비스는 도메인 이름을 IP 주소로 변환하거나 그 반대로 변환할 수 있게 해줍니다.

DNS 이름 해석 소개

변동이 적은 소규모 네트워크에 대해서는 /etc/hosts 파일을 도메인 이름을 IP 주소로 변환하는 기본적인 방법으로 사용할 수 있습니다.

매우 간단한 문법으로, 이 파일을 사용하여 다음과 같이 이름(또는 별칭)과 IP 주소를 연결할 수 있습니다:

[IP address] [name] [alias(es)]

예를 들어,

192.168.0.1 gateway gateway.mydomain.com
192.168.0.2 web web.mydomain.com

이렇게 하면 웹 기기에 대해 이름, web.mydomain.com 별칭 또는 IP 주소로 접속할 수 있습니다.

대규모 네트워크나 변경이 빈번한 네트워크의 경우 /etc/hosts 파일을 사용하여 도메인 이름을 IP 주소로 변환하는 것은 적합한 해결책이 아닐 수 있습니다. 여기서 전용 서비스의 필요성이 발생합니다.

하부에서는 DNS 서버가 트리 형식의 큰 데이터베이스를 쿼리합니다. 이 트리는 루트 (“.”) 존에서 시작됩니다.

다음 이미지를 통해 설명하겠습니다:

DNS Name Resolution Diagram

위 이미지에서 루트 (.) 존에는 com, edu, 그리고 net 도메인이 포함되어 있습니다. 각 도메인은 다른 조직이 관리하므로 대형 중앙화된 하나에 의존하지 않아도 됩니다. 이는 계층적 방식으로 요청을 적절하게 분산하는 것을 가능하게 합니다.

하부에서 어떤 일이 벌어지는지 살펴보겠습니다:

1. 클라이언트가 web1.sales.me.com에 대한 쿼리를 DNS 서버에 보내면, 서버는 최상위(루트) DNS 서버에 쿼리를 보내고, 해당 쿼리를 .com 존의 이름 서버로 전달합니다.

이는 다시 다음 수준의 이름 서버(me.com 존의)로 쿼리를 전달하고, 그 다음에는 sales.me.com으로 전달됩니다. 이 프로세스는 해당 FQDN(이 예제에서는 FQDN (Fully Qualified Domain Name), web1.sales.me.com)이 속한 존의 이름 서버에 의해 반환될 때까지 필요한만큼 반복됩니다.

2.이 예에서 sales.me.com.의 이름 서버는 web1.sales.me.com 주소에 응답하고 원하는 도메인 이름-IP 연관 및 다른 정보도 반환합니다(구성되어 있다면).

이 모든 정보는 원래의 DNS 서버로 전송되고, 그 서버는 처음에 요청한 클라이언트에게 다시 전달합니다. 미래에 동일한 쿼리를 위해 동일한 단계를 반복하는 것을 피하기 위해 쿼리 결과가 DNS 서버에 저장됩니다.

이러한 이유로 이러한 종류의 설정을 재귀적 캐싱 DNS 서버라고 일반적으로 알려지게 됩니다.

Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/