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] 네임서버 named.conf 파일 설명 (8) | 2021.01.06 |
---|---|
[CentOS 8] 마스터 네임서버 구축 방법 (4) | 2021.01.05 |
[CentOS 8] 네트워크 관리 명령어 (0) | 2020.10.26 |
[CentOS 8] 시스템 시간 동기화 chrony (0) | 2020.10.16 |
[CentOS 8] 작업 예약 스케줄러 (cron, at) (2) | 2020.10.15 |
댓글 영역