상세 컨텐츠

본문 제목

[CentOS 8] 캐싱 전용 네임서버 구축 방법

Linux

by mp.jamong 2021. 1. 1. 08:01

본문

 

CentOS 8 에서 캐싱 전용 네임서버 구축하는 방법에 대해 소개드리겠습니다. 네임서버는 DNS 서버로 불리기도 하며, 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다. 캐싱 전용 네임서버는 보통 내부망에 구축하여 사용하기 때문에 로컬 네임서버라고도 불립니다.

 

 

캐싱 전용 네임서버 개념

 

캐싱 전용 네임 서버는 PC에서 URL로 IP 주소를 얻고자 할 때, 해당하는 URL의 IP 주소를 알려주는 네임 서버를 의미합니다.

 

▷ 캐싱 전용 네임서버를 내부망에 구축하여 사용하면 내부망에서 요청하는 도메인 질의와 비정상 질의에 대해 확인이 가능합니다. 이런 경우는 보통 내부 보안을 강화하기 위해 악성코드 유포지와의 통신 확인 목적으로 설치하여 사용 합니다.

 

▷ 캐싱 전용 네임서버 구축 후 사용자가 DNS 쿼리를 질의하는 과정은 아래 그림과 같습니다.

 

 

캐싱 전용 네임서버 구축

 

캐싱 전용 네임서버 구축은 아래와 같이 진행 합니다.

 


# 네임서버 설치
[root@localhost ~]# yum install bind bind-chroot bind-utils

# 네임서버 설정 수정
[root@localhost ~]# vi /etc/named.conf

options {
        listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { localhost; };

->

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };



# 네임서버 설정 적용을 위한 서비스 재시작
[root@localhost ~]# systemctl restart named

# 네임서버 서비스 상태 확인
[root@localhost ~]# systemctl status named

# 서버 부팅시 네임서버 서비스 자동 실행 등록
[root@localhost ~]# systemctl enable named

# 테스트를 위한 리눅스 방화벽 중지
[root@localhost ~]# systemctl stop firewalld


# 네임서버 동작 테스트 (방법 : dig @네임서버IP 조회대상URL)
[root@localhost ~]# dig @10.0.2.4 www.naver.com

 

▷ 캐싱 전용 네임서버 구축 후 질의한 쿼리와 에러를 남기는 로깅은 아래와 같이 진행합니다.

 


# 네임서버 로깅 설정
[root@localhost ~]# vi /etc/named.conf

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

->

logging {
        channel default_debug {
                print-time yes;
                print-category yes;
                print-severity yes;
                file "data/named.run";
                severity dynamic;
        };
        channel queries_log {
                print-time yes;
                print-category yes;
                print-severity yes;
                file "data/queries" versions 10 size 20M;
                severity info;
        };
        channel query-errors_log {
                print-time yes;
                print-category yes;
                print-severity yes;
                file "data/query-errors" versions 10 size 20M;
                severity dynamic;
        };

        category queries { queries_log; };
        category query-errors { query-errors_log; };
};


# DNS 로그 파일 생성 확인
[root@localhost data]# ls -al

-rw-r--r--. 1 named named 59567 Dec 31 13:50 named.run
-rw-r--r--. 1 named named   916 Dec 31 13:50 queries
-rw-r--r--. 1 named named     0 Dec 31 13:50 query-errors

 

 

캐싱 전용 네임서버 테스트

 

내부 사용자 PC의 DNS 설정을 캐싱 전용 네임서버 IP로 설정 합니다. 본 포스팅에서 구축한 네임서버 IP는 10.0.2.4 이므로, 해당 IP로 설정하였습니다.

 

 

DNS 설정 후 [명령 프롬프트]를 실행 후 아래 그림과 같이 네이버 URL을 질의하면 캐싱 전용 DNS를 통해 DNS 쿼리가 진행되는 것을 확인할 수 있습니다. 웹으로 접속시 원활하게 접속이 잘 됩니다.

 

 

 

캐싱 전용 네임서버 로그를 아래와 같이 확인할 수 있습니다.

 


# DNS 쿼리 로그 확인
[root@localhost data]# cat queries

31-Dec-2020 13:49:55.738 queries: info: client @0x7fb8400a2b40 10.0.2.15#50467 (config.edge.skype.com): query: config.edge.skype.com IN A + (10.0.2.4)
31-Dec-2020 13:49:56.030 queries: info: client @0x7fb842ed7000 10.0.2.15#50467 (config.edge.skype.com): query: config.edge.skype.com IN A + (10.0.2.4)
31-Dec-2020 13:49:57.039 queries: info: client @0x7fb842eebd90 10.0.2.15#50467 (config.edge.skype.com): query: config.edge.skype.com IN A + (10.0.2.4)
31-Dec-2020 13:49:58.649 queries: info: client @0x7fb842ed7000 10.0.2.15#49946 (gms.ahnlab.com): query: gms.ahnlab.com IN A + (10.0.2.4)
31-Dec-2020 13:49:58.972 queries: info: client @0x7fb842eebd90 10.0.2.15#49946 (gms.ahnlab.com): query: gms.ahnlab.com IN A + (10.0.2.4)
31-Dec-2020 13:50:02.048 queries: info: client @0x7fb8400a2b40 10.0.2.15#59272 (tsfe.trafficshaping.dsp.mp.microsoft.com): query: tsfe.trafficshaping.dsp.mp.microsoft.com IN A + (10.0.2.4)
31-Dec-2020 13:50:12.252 queries: info: client @0x7f3a8c0a2b40 10.0.2.15#54669 (tile-service.weather.microsoft.com): query: tile-service.weather.microsoft.com IN A + (10.0.2.4)
31-Dec-2020 13:50:12.566 queries: info: client @0x7f3a8eed5070 10.0.2.15#54669 (tile-service.weather.microsoft.com): query: tile-service.weather.microsoft.com IN A + (10.0.2.4)
31-Dec-2020 13:50:13.574 queries: info: client @0x7f3a8eef9900 10.0.2.15#54669 (tile-service.weather.microsoft.com): query: tile-service.weather.microsoft.com IN A + (10.0.2.4)
31-Dec-2020 13:50:15.620 queries: info: client @0x7f3a8eed5070 10.0.2.15#58182 (www.naver.com): query: www.naver.com IN A + (10.0.2.4)


# DNS 쿼리 에러 로그 확인
[root@localhost data]# cat query-erros

31-Dec-2020 13:50:26.454 query-errors: info: client @0x7f3a8c0a2b40 10.0.2.15#56078 (www.daum.ne): query failed (SERVFAIL) for www.daum.ne/IN/A at ../../../bin/named/query.c:9385
31-Dec-2020 13:52:01.969 query-errors: info: client @0x7f3a8eef9900 10.0.2.15#55650 (a1.api.bbc.co.uk): query failed (SERVFAIL) for a1.api.bbc.co.uk/IN/A at ../../../bin/named/query.c:9385

 

 

 

▽ 같이 보면 더 좋은 블로그 글 

 

[CentOS 8] 시스템 시간 동기화 chrony

시스템 시간 동기화는 간단하지만 중요한 부분입니다. 대부분의 시스템은 시스템에서 발생하는 이벤트 또는 로그를 시간과 함께 기록해 놓습니다. 이렇게 하는 이유는 해당 시간에 발생한 문제

mpjamong.tistory.com

 

[CentOS 8] 네트워크 관리 명령어

예전 포스팅에서 리눅스 설치 후 초기 설정으로 네트워크 설정 방법(nmcli 명령어를 이용한 설정)에 대해 소개드렸습니다. 이전 포스팅 내용이 궁금하신 분은 아래 링크를 클릭하시면 됩니다. [Cen

mpjamong.tistory.com

관련글 더보기

댓글 영역