웹사이트 검색

Ubuntu Server 14.04에서 캐싱 DNS 서버 설정


도메인 이름 서비스(DNS)는 IP 주소와 정규화된 도메인 이름을 서로 매핑하는 이름 지정 서비스입니다. DNS를 실행하는 컴퓨터를 이름 서버라고 합니다.

여기에서는 전달자, 정방향 조회 및 예약 조회를 사용하여 캐시 서버를 설치하고 구성했습니다. 대부분의 경우 예비 조회가 필요합니다. 캐싱 서버는 도메인 이름을 보유하지 않으며 포인팅 서버로만 작동합니다. 심층적으로 들어가기 전에 DNS 서버와 작동 방식을 알아야 합니다.

DNS란 무엇입니까?

DNS와 작동 방식을 이해하는 쉬운 방법은 다음과 같습니다.

브라우저에서 linux-console.net에 액세스해야 하는 경우 시스템은 linux-console.net을 찾습니다. 여기 .com 끝에 (.)가 있는데 이것은 무엇입니까?.

(.)는 네임스페이스 루트 서버를 나타내며, 전역적으로 사용할 수 있는 루트 서버는 총 13개입니다. linux-console.net에 액세스하는 동안 운영 체제 구성에 따라 서버 이름을 지정하라는 메시지가 표시됩니다. Ubuntu에서는 /etc/resolv.conf에서 이름 서버를 구성했는데, linux-console.net에 액세스하는 동안 루트 이름 서버가 그렇지 않은 경우 내 브라우저는 루트 이름 서버를 묻습니다. 내가 요청한 도메인 정보가 있으면 요청한 정보를 캐시하고 내 요청을 (TLD) 최상위 도메인 이름 서버로 전달합니다. TLD 이름 서버에서도 내 요청은 그렇지 않습니다. 사용 가능한 경우 캐시되어 신뢰할 수 있는 이름 서버로 전달됩니다.

도메인을 등록하는 동안 도메인 등록자는 도메인에서 사용할 권한 있는 이름 서버를 정의합니다. 따라서 권한 있는 이름 서버에는 도메인 정보가 있으며, 요청이 ANS에 도달하는 동안 linux-console.net111.111.222.1이 있는 쿼리에 대해 동시에 응답합니다. 신뢰할 수 있는 이름 서버에 캐시되어 요청을 다시 브라우저로 보냅니다. 위의 모든 단계는 밀리초 내에 완료됩니다.

이제 DNS가 무엇인지, 그리고 그것이 어떻게 작동하는지 이해하셨기를 바랍니다. 이제 Ubuntu Server 14.04 LTS에서 캐싱 DNS 서버를 설정해 보겠습니다.

1단계: DNS 서버 설치

먼저 이 글의 목적으로 사용되는 고정 IP 주소, 호스트 이름 등 내 로컬 DNS 서버 정보를 살펴보세요.

IP Address:	192.168.0.100
Hostname:	dns.tecmintlocal.com

위의 설정이 올바른지 확인하려면 'hostnamectl' 및 'ifconfig' 명령을 사용할 수 있습니다.

hostnamectl
ifconfig eth0 | grep inet

다음으로 DNS 캐시 서버를 설정하기 전에 기본 리포지토리를 업데이트하고 시스템 업그레이드를 수행합니다.

sudo apt-get update && sudo apt-get upgrade -y

이제 다음 명령을 사용하여 DNS 패키지 binddnsutils를 설치합니다.

sudo apt-get install bind9 dnsutils -y

DNS가 설치되면 /etc/bind 아래의 바인딩 구성 디렉터리로 이동합니다.

/etc/bind/
ls -l

2단계: DNS 캐시 서버 설정

우선 여기서는 캐싱 서버를 설정하고 구성합니다. vim 편집기를 사용하여 named.conf.options 파일을 열고 편집하세요.

sudo vim named.conf.options

이제 여기서 '전달자'라는 단어는 도메인 이름 요청을 캐시하는 데 사용됩니다. 따라서 여기서는 내 라우터를 전달자로 사용하겠습니다. 그림과 같이 줄 앞의 // 주석을 제거하세요.

forwarders {
        192.168.0.1;
        };

wq!를 사용하여 파일을 저장하고 종료합니다. 이제 소규모 테스트를 위해 바인드 서버를 시작할 차례입니다.

sudo /etc/init.d/bind9 start

캐싱이 작동하는지 테스트해야 하는 경우 dig 명령을 사용하여 캐시가 작동하는지 확인할 수 있습니다.

예를 들어, 이제 ubuntu.com을 파헤쳐 보겠습니다. 처음에는 캐시가 아니기 때문에 몇 밀리초가 걸릴 수 있지만 일단 캐시되면 매우 빠른 속도가 됩니다.

dig @127.0.0.1 ubuntu.com

dig 명령은 DNS 조회를 위한 도구입니다. Dig 명령에 대해 자세히 알아보려면 아래 항목을 읽어보세요.

  1. 10가지 유용한 Dig 명령 예

여기에서 위 이미지를 보면 쿼리에 1965밀리초가 걸렸으며 어떤 ipaddress가 ubuntu.com에 바인딩되어 있는지 확인할 수 있습니다.

한 번 더 자세히 살펴보고 쿼리 시간을 확인해 보겠습니다.

좋습니다! 두 번째 시도에서는 5밀리초 내에 쿼리를 받았습니다. 이제 캐싱 서버가 무엇인지 알기를 바랍니다. 위 이미지는 수백만 명의 사람들이 이미 Ubuntu 공식 사이트에 액세스했기 때문에 총 13 루트 서버가 Ubuntu.com을 캐싱하고 있음을 보여줍니다.

3단계: 마스터 DNS 서버 설정

MASTER DNS 서버를 생성합니다. 여기에서는 도메인 이름을 tecmintlocal.com으로 정의하고 vim 편집기를 사용하여 named.conf.local 파일을 편집합니다.

sudo vim /etc/bind/named.conf.local

아래와 같이 DNS-Master 항목을 입력하세요.

zone "tecmintlocal.com" {
        type master;
        file "/etc/bind/db.tecmintlocal.com";
        };
    1. 영역: 도메인의 호스트 세부정보

.

  1. 유형: 마스터 DNS.
  2. 파일: 영역 정보를 저장하는 위치입니다.

db.local에서 복사본을 만들어 영역 파일 db.tecmintlocal.com(정방향 조회)을 만듭니다.

sudo cp db.local db.tecmintlocal.com

이제 vim 편집기를 사용하여 복사된 영역 파일을 열고 편집하세요.

sudo vim db.tecmintlocal.com

다음으로 튜토리얼 목적으로 사용한 다음 예제 항목을 추가합니다. 다른 가상 머신 설정에도 동일한 방법을 사용합니다. 귀하의 요구 사항에 따라 아래 항목을 수정하십시오.

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     tecmintlocal.com. root.tecmintlocal.com. (
                     2014082801         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.tecmintlocal.com.
ns      IN      A       192.168.0.100

clt1    IN      A       192.168.0.111
ldap    IN      A       192.168.0.200
ldapc   IN      A       192.168.0.211
mail    IN      CNAME   clt1.tecmintlocal.com.

wq!를 사용하여 파일을 저장하고 종료합니다.

마지막으로 아래 명령을 사용하여 바인딩 DNS 서비스를 다시 시작합니다.

 
sudo service bind9 restart

위의 영역 설정이 작동하는지 확인해야 합니다. dig 명령을 사용하여 확인해 보겠습니다. localhost 쿼리에서 다음과 같이 명령을 실행합니다.

dig @127.0.0.1 mail.tecmintlocal.com

ping하고 clt1.tecmintlocal.com을 테스트해 보겠습니다. 그 전에 DNS 서버 시스템에서 dns-server 항목을 localhost로 변경하고 네트워크를 다시 시작해야 적용됩니다. .

네트워크 인터페이스 설정을 열고 편집한 후 DNS 항목을 입력하세요.

sudo vim /etc/network/interfaces

인터페이스에서 DNS 항목을 아래와 같이 변경합니다.

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        gateway 192.168.0.1
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
	    dns-search tecmintlocal.com

항목을 추가한 후 다음 명령을 사용하여 네트워크를 다시 시작하십시오.

sudo ifdown eth0 && sudo ifup eth0

네트워크를 다시 시작해도 적용되지 않으면 다시 시작해야 합니다. 이제 clt1.tecmintlocal.com을 ping하고 확인해 보겠습니다. 응답하는 동안 호스트 이름 clt1에 대해 정의한 IP 주소를 가져와야 합니다.

ping clt1.tecmintlocal.com -c 3

역방향 DNS 조회 설정

named.conf.local 파일을 다시 열고 편집하세요.

sudo vim /etc/bind/named.conf.local

이제 표시된 대로 다음 역방향 DNS 조회 항목을 추가합니다.

zone "0.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.tecmintlocal192";
        };

wq!를 사용하여 파일을 저장하고 종료합니다. 이제 역방향 조회를 위해 위의 마스터 파일에서 언급한 대로 db.tecmintlocal192 파일을 생성하고 db.127db.tecmintlocal192<에 복사합니다. 다음 명령을 사용합니다.

sudo cp db.127 db.tecmintlocal192

이제 역방향 조회를 설정하기 위해 db.tecmintlocal192 파일을 열고 편집하세요.

sudo vim db.tecmintlocal192

아래와 같이 다음 항목을 입력하고 요구 사항에 따라 아래 항목을 수정하십시오.

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.tecmintlocal.com. root.tecmintlocal.com. (
                        2014082802      ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
100     IN      PTR     ns.tecmintlocal.com.

111     IN      PTR     ctl1.tecmintlocal.com.
200     IN      PTR     ldap.tecmintlocal.com.
211     IN      PTR     ldapc.tecmintlocal.com.

다음을 사용하여 바인드 서비스를 다시 시작하십시오.

이제 예약 조회 항목을 확인합니다.

host 192.168.0.111

위와 같이 IP 주소를 사용하여 역방향 조회를 수행하는 동안 위 이미지와 같이 이름으로 응답하려고 합니다.

dig 명령을 사용하여 확인해 보겠습니다.

dig clt1.tecmintlocal.com

여기에서 도메인 이름 clt1.tecmintlocal.com에 IP 주소가 있으므로 답변 섹션의 쿼리에 대한 답변을 볼 수 있습니다. 192.168.0.111.

4단계: 클라이언트 컴퓨터 설정

클라이언트 시스템의 IP 주소와 DNS 항목을 로컬 DNS 서버 192.168.0.100으로 변경하면 클라이언트 시스템이 로컬 DNS 서버에서 호스트 이름을 할당받게 됩니다.

다음 일련의 명령을 사용하여 클라이언트의 호스트 이름을 확인하겠습니다.

ifconfig eth0 | grep inet
hostname	
dig -x 192.168.0.100

DNS의 영역 파일 항목 이해, 이 이미지는 영역 파일 항목에서 정의한 내용을 간략하게 설명합니다.

그게 다야! 이 기사에서는 사무실이나 가정에서 사용할 수 있도록 로컬 DNS 서버를 설정하는 방법을 살펴보았습니다.

곧 다양한 도구를 사용하여 DNS 서버 문제를 해결하고 수정하는 방법에 대한 기사를 읽을 수 있습니다. DNS 서버 문제를 해결하는 데 사용되는 많은 도구가 있습니다. 몇 가지 문제 해결 팁을 알아보려면 아래 문서를 읽어보세요.

DNS 문제 해결을 위한 8가지 Nslookup 명령