강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

네임서버설정파일(named.conf) 문법검사 유틸리티 : named-checkconf

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

네임서버설정파일(named.conf) 문법검사 유틸리티 : named-checkconf

 

 

 

 

 

 

거의 모든 데몬은 실행하고 작동하면 그에 대한 활동상황을 지정되어있는 로그파일에 기록한다.

 

 

 

 

다른 데몬들과 마찬가지로 named 또한 /var/log/messages파일에 데몬실행에 관한 기록을 남기게 된다.

 

 

 

 

다음은 /var/log/messages파일에 남겨지는 named의 로그내용중 일부이다.

 

 

 

 

 

 

[root@RockyLinux ~]# grep named /var/log/messages

Jul 11 09:56:41 RockyLinux systemd[1]: systemd-hostnamed.service: Deactivated successfully.

Jul 11 10:07:31 RockyLinux systemd[1]: named-setup-rndc.service: Deactivated successfully.

Jul 11 10:07:31 RockyLinux named[1960]: starting BIND 9.16.23-RH (Extended Support Version) <id:fde3b1f>

Jul 11 10:07:31 RockyLinux named[1960]: running on Linux x86_64 5.14.0-162.23.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 11 19:09:37 UTC 2023

Jul 11 10:07:31 RockyLinux named[1960]: built with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-python=/usr/bin/python3' '--with-libtool' '--localstatedir=/var' '--with-pic' '--disable-static' '--includedir=/usr/include/bind9' '--with-tuning=large' '--with-libidn2' '--with-maxminddb' '--with-dlopen=yes' '--with-gssapi=yes' '--with-lmdb=yes' '--without-libjson' '--with-json-c' '--enable-dnstap' '--enable-fixed-rrset' '--enable-full-report' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CC=gcc' 'CFLAGS= -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' 'LT_SYS_LIBRARY_PATH=/usr/lib64:' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Jul 11 10:07:31 RockyLinux named[1960]: running as: named -u named -c /etc/named.conf

Jul 11 10:07:31 RockyLinux named[1960]: compiled by GCC 11.3.1 20221121 (Red Hat 11.3.1-4)

Jul 11 10:07:31 RockyLinux named[1960]: compiled with OpenSSL version: OpenSSL 3.0.7 1 Nov 2022

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:a83e::2:30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:502:1ca1::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:83eb::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:d2d::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:501:b1f9::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:d414::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:500:d937::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:39c1::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:eea3::30#53

Jul 11 10:07:31 RockyLinux named[1960]: network unreachable resolving 'ns2.suidc.com/A/IN': 2001:503:231d::2:30#53

Jul 11 10:07:31 RockyLinux named[1960]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)

Jul 11 10:07:31 RockyLinux named[1960]: resolver priming query complete

Jul 11 10:07:54 RockyLinux systemd[1]: systemd-hostnamed.service: Deactivated successfully.

[root@RockyLinux ~]#

 

 

 

 

위의 예를보면 named가 시작된 기록과 /etc/named.conf파일을 로드한 기록, 그리고  각 도메인의 zone파일을 로드한 기록등을 모두 확인할 수 있다.

 

 

 

 

 

여기서 우리는 /var/log/messages라는 로그파일에 named에 문제점들도 함께 기록된다는 점을 알아야한다.

 

 

 

 

 따라서 named에 문제가 발생하거나 에러가 발생하면 반드시 /var/log/messages파일을 확인해 봐야한다는 점이다.

 

 

 

 

 

 

또한 /etc/named.conf파일에 문제가 발생하였을 때에는 named데몬자체가 아예 실행되지않는다.

 

 

 

 

 그리고 /etc/named.conf파일에 대한 문제점을 /var/log/messages파일에 기록하게 된다.

 

 

 

 

 따라서 당연히 /etc/named.conf파일에 어떤 문제가 발생하였는가를 확인하려면 /var/log/messages파일을 보면 되겠지만 /etc/named.conf파일을 검사해주는 named-checkconf유틸리티가 있다.

 

 

 

 

 /var/log/messages파일에는 문제가 발생한 이후에 기록이 되지만 named-checkconf유틸리티를 이용하면 /etc/named.conf파일의 문법을 검사하여 어떤 문제점이 있는가를 사전에 알 수가 있다.

 

 

 

 

 

 

사용형식 : named-checkconf [-v]  [-t directory]  filename

 

named-checkconf유틸리티는 /etc/named.conf파일의 문법을 검사하여 이상유무를 점검해주는 유용한 툴이다.

 

 

 

 

 특히 호스팅서비스나 DNS서비스만을 주로하는 서버에서는 수많은 도메인을 DNS에 설정한다.

 

 

 

 

 이 경우에 /etc/named.conf파일에는 많은 도메인에 대한 zone설정들이 들어가게 되는데 /etc/named.conf파일의 특성상 글자한자만 틀려도 에러를 발생한다.

 

 

 

 

 

 

따라서 다음과 같이 named-checkconf유틸리티를 이용하여 주기적으로 /etc/named.conf 파일을 점검해야만 한다.

 

 

 

 

 

 

[root@sulinux named]#named-checkconf /etc/named.conf

/etc/named.conf:67: unknown option 'allow-updated'

/etc/named.conf:70: unknown option 'z'

[root@sulinux named]#

 

 

 

 

위의 결과를 보면 /etc/named.conf파일의 67행과 70행에 각각 설정문제가 있음을 알려주고 있다.

 

 

 

 

 위에서 알려주는 대로 67행과 70행을 각각 수정한 다음 아래와 같이 다시 검사를 수행하였다.

 

 

 

 

 

 

[root@sulinux named]#named-checkconf /etc/named.conf

[root@sulinux named]#

 

 

 

 

named-checkconf는 이상이 있을 때에만 이상내용을 출력하고 정상일 경우에는 아래와 같이 아무런 출력값이 없다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  109 명