RHEL / CentOS 7에서 'Unbound'로 'Cache Only DNS Server'를 설치하고 구성하는 방법
RHEL/CentOS 6.x (여기서 x는 버전 번호)로 돌아가 ' Unbound '(유효성 검사, 재귀 및 캐싱 DNS 서버 소프트웨어 임)를 사용하여 네임 서버를 캐싱하고 bind를 사용했습니다. 소프트웨어를 사용하여 DNS 서버를 구성하십시오.
이 기사에서는 '언 바운드'캐싱 소프트웨어를 사용하여 RHEL/CentOS 7 시스템에 DNS 서버를 설치하고 구성 할 것입니다.

DNS 캐시 서버는 수신하는 모든 DNS 쿼리를 해결하는 데 사용됩니다. 서버가 쿼리를 캐시하고 나중에 클라이언트가 요청한 동일한 쿼리가 DNS‘ 바인딩되지 않은 ‘캐시에서 전달되는 경우이 작업은 처음 해결 될 때보 다 밀리 초 내에 수행 될 수 있습니다.
캐싱은 전달자 중 하나에서 클라이언트의 쿼리를 해결하는 에이전트 역할 만합니다. 캐싱 서버를 사용하면 캐시 데이터베이스를 언 바운드 서버에 유지하여 웹 페이지의 로딩 시간을 줄일 수 있습니다.
데모 용으로 두 가지 시스템을 사용합니다. 첫 번째 시스템은 마스터 (기본) DNS 서버로 작동하고 두 번째 시스템은 로컬 DNS 클라이언트로 작동합니다.
Operating System : CentOS Linux release 7.0.1406 (Core) IP Address : 192.168.0.50 Host-name : ns.tecmintlocal.com
Operating System : CentOS 6 IP Address : 192.168.0.100 Host-name : client.tecmintlocal.com
1 단계 : 시스템 호스트 이름 및 IP 확인
1. 캐싱 DNS 서버를 설정하기 전에 시스템 고정 IP 주소를 설정하지 않은 경우 올바른 호스트 이름을 추가하고 시스템에 올바른 고정 IP 주소를 구성했는지 확인하십시오.
2. 올바른 호스트 이름과 고정 IP 주소를 설정 한 후 다음 명령을 사용하여 확인할 수 있습니다.
# hostnamectl # ip addr show | grep inet

2 단계 : 언 바운드 설치 및 구성
3. 'Unbound'패키지를 설치하기 전에 시스템을 최신 버전으로 업데이트해야합니다. 그런 다음 Unbound 패키지를 설치할 수 있습니다.
# yum update -y # yum install unbound -y

4. 패키지를 설치 한 후 원본 파일을 변경하기 전에 바인딩되지 않은 구성 파일의 복사본을 만듭니다.
# cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.original
5. 다음으로 자주 사용하는 텍스트 편집기를 사용하여‘unbound.conf‘구성 파일을 열고 편집합니다.
# vim /etc/unbound/unbound.conf

편집을 위해 파일이 열리면 다음과 같이 변경하십시오.
인터페이스 를 검색하고 사용할 인터페이스를 활성화하거나 서버에 여러 인터페이스가있는 경우 인터페이스 0.0.0.0 을 활성화해야합니다.
여기서 우리의 서버 IP는 192.168.0.50 이므로이 인터페이스에서는 unbound를 사용하겠습니다.
Interface 192.168.0.50
다음 문자열을 검색하여‘ 예 ‘로 만드십시오.
do-ip4: yes do-udp: yes do-tcp: yes
로그를 활성화하려면 아래와 같이 변수를 추가하면 바인딩되지 않은 모든 활동이 기록됩니다.
logfile: /var/log/unbound
id.server 및 hostname.bind 쿼리를 숨기려면 다음 매개 변수를 사용 설정하세요.
hide-identity: yes
version.server 및 version.bind 쿼리를 숨기려면 다음 매개 변수를 사용 설정하세요.
hide-version: yes
그런 다음 허용 할 access-control 을 검색합니다. 이는이 바인딩되지 않은 서버를 쿼리 할 수있는 클라이언트를 허용하기위한 것입니다.
여기서는 0.0.0.0 을 사용했습니다. 즉, 누구나이 서버에 쿼리를 보내는 것을 의미합니다. 특정 네트워크 범위에 대한 쿼리를 거부해야하는 경우 바인딩되지 않은 쿼리에서 거부해야하는 네트워크를 정의 할 수 있습니다.
access-control: 0.0.0.0/0 allow
참고 : allow 대신 allow_snoop 로 바꿀 수 있습니다. 이렇게하면 dig 와 같은 일부 추가 매개 변수가 활성화되며 재귀 및 비 재귀를 모두 지원합니다.
그런 다음 안전하지 않은 도메인 을 검색합니다. 도메인이 DNS 보안 키 로 작동하는 경우 비보안 도메인 에 사용할 수있는 서버를 정의해야합니다. 여기서 우리 도메인은 안전하지 않은 것으로 취급됩니다.
domain-insecure: "tecmintlocal.com
그런 다음 요청 된 쿼리에 대한 전달자 를이 서버에서 수행하지 않고 변경하면 루트 도메인 (. )으로 전달되고 쿼리가 해결됩니다.
forward-zone: name: "." forward-addr: 8.8.8.8 forward-addr: 8.8.4.4
마지막으로 wq! 를 사용하여 구성 파일을 저장하고 종료합니다.
6. 위의 구성을 만든 후 이제 다음 명령을 사용하여 오류가 있는지 unbound.conf 파일을 확인합니다.
# unbound-checkconf /etc/unbound/unbound.conf

7. 오류없이 파일을 확인한 후 '바인딩 해제'서비스를 안전하게 다시 시작하고 시스템 시작시 활성화 할 수 있습니다.
# systemctl start unbound.service # sudo systemctl enable unbound.service

3 단계 : 로컬에서 DNS 캐시 테스트
8. 이제 하나의‘india.com’도메인을‘드릴’(쿼리)하여 DNS 캐시를 확인할 차례입니다. 처음에는‘india.com‘도메인에 대한‘drill‘명령 결과에 몇 밀리 초가 걸립니다. 그런 다음 두 번째 드릴을 수행하고 두 드릴 모두에 걸리는 쿼리 시간 에 대해 메모합니다.
drill india.com @192.168.0.50

위 출력에서 보셨나요? 첫 번째 쿼리는 해결하는 데 거의 262msec 가 걸리고 두 번째 쿼리는 도메인 ( india.com )을 해결하는 데 0msec 가 걸립니다. "b>).
즉, 첫 번째 쿼리가 DNS 캐시에 캐시되므로 로컬 DNS 캐시에서 쿼리를 제공 할 때 두 번째로 '드릴'을 실행하면 웹 사이트로드 속도를 향상시킬 수 있습니다.
4 단계 : Iptables 플러시 및 방화벽 규칙 추가
9. 동일한 컴퓨터에서 iptables와 firewalld를 동시에 사용할 수 없습니다. 둘 다 사용하면 서로 충돌하므로 ipables 규칙을 제거하는 것이 좋습니다. iptables를 제거하거나 플러시하려면 다음 명령을 사용하십시오.
# iptables -F
10. iptables 규칙을 영구적으로 제거한 후 이제 DNS 서비스를 firewalld 목록에 영구적으로 추가합니다.
# firewall-cmd --add-service=dns # firewall-cmd --add-service=dns --permanent
11. DNS 서비스 규칙을 추가 한 후 규칙을 나열하고 확인합니다.
# firewall-cmd --list-all

5 단계 : 언 바운드 관리 및 문제 해결
12. 현재 서버 상태를 확인하려면 다음 명령을 사용합니다.
# unbound-control status

13. 만약 당신이 텍스트 파일에 DNS 캐시 정보의 덤프를 갖고 싶다면, 당신은 나중에 사용하기 위해 아래 명령을 사용하여 그것을 어떤 파일로 리디렉션 할 수 있습니다.
# unbound-control dump_cache > /tmp/DNS_cache.txt

14. 덤프 된 파일에서 캐시를 복원하거나 가져 오려면 다음 명령을 사용할 수 있습니다.
# unbound-control dump_cache < /tmp/DNS_cache.txt

15. 언 바운드 캐시 서버의 포워더가 특정 주소를 확인했는지 확인하려면 아래 명령을 사용하십시오.
# unbound-control lookup google.com

16. DNS 캐시 서버가 쿼리에 응답하지 않는 경우, 그 동안 캐시를 플러시하여 A , AAA , NS , SO , CNAME , MX , PTR 등. DNS 캐시의 레코드. " flush_zone 을 사용하여 모든 정보를 제거 할 수 있습니다. 그러면 모든 정보가 제거됩니다.
# unbound-control flush www.digitalocean.com # unbound-control flush_zone tecmintlocal.com
17. 현재 해결에 사용되는 전달을 확인합니다.
# unbound-control list_forwards

6 단계 : 클라이언트 측 DNS 구성
18. 여기에서는 클라이언트 컴퓨터로 CentOS 6 서버를 사용했습니다.이 컴퓨터의 IP는 192.168.0.100 이며 바인딩되지 않은 DNS 서버 IP를 사용하겠습니다. "(즉, 기본 DNS) 인터페이스 구성에 있습니다.
클라이언트 컴퓨터에 로그인하고 기본 DNS 서버 IP 를 바인딩 해제 된 서버의 IP로 설정합니다.
설정 명령을 실행하고 TUI 네트워크 관리자에서 네트워크 구성을 선택합니다.
그런 다음 DNS 구성을 선택하고 바인딩되지 않은 DNS 서버의 IP를 Primary DNS 로 삽입합니다.하지만 여기서는 Primary 와 Secondary <에서 모두 사용했습니다. "/ b> 다른 DNS 서버가 없기 때문입니다.
Primary DNS : 192.168.0.50 Secondary DNS : 192.168.0.50



확인 –> 저장 및 종료 –> 종료 를 클릭합니다.
19. Primary 및 Secondary DNS IP 주소를 추가했으면 이제 다음 명령을 사용하여 네트워크를 다시 시작할 차례입니다.
# /etc/init.d/network restart

20. 이제 클라이언트 컴퓨터에서 웹 사이트 중 하나에 액세스하고 바인딩되지 않은 DNS 서버의 캐시를 확인할 시간입니다.
# elinks aol.com # dig aol.com


결론
이전에는 RHEL 및 CentOS 시스템에서 바인드 패키지를 사용하여 DNS 캐시 서버를 설정하는 데 사용되었습니다. 이제 언 바운드 패키지를 사용하여 DNS 캐시 서버를 설정하는 방법을 살펴 보았습니다. 이것이 bind pacakge보다 빨리 쿼리 요청을 해결하기를 바랍니다.