웹사이트 검색

RHEL/CentOS 7에서 '바운드 해제'를 사용하여 '캐시 전용 DNS 서버'를 설치하고 구성하는 방법


'언바운드'(검증, 재귀 및 캐싱 DNS 서버 소프트웨어)를 사용하여 이름 서버를 캐싱하고 RHEL/CentOS 6.x(x는 버전 번호)에서 bind를 사용했습니다. DNS 서버를 구성하는 소프트웨어입니다.

이 문서에서는 '언바운드' 캐싱 소프트웨어를 사용하여 RHEL/CentOS 7 시스템에 DNS 서버를 설치하고 구성합니다.

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. '언바운드' 패키지를 설치하기 전에 시스템을 최신 버전으로 업데이트해야 언바운드 패키지를 설치할 수 있습니다.

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이므로 이 인터페이스에서는 바인딩되지 않은 상태를 사용하겠습니다.

Interface 192.168.0.50
IPv4 및 프로토콜 지원 활성화

다음 문자열을 검색하여 ''로 설정하세요.

do-ip4: yes
do-udp: yes
do-tcp: yes
로깅 활성화

로그를 활성화하려면 아래와 같이 변수를 추가하세요. 그러면 바인딩되지 않은 모든 활동이 기록됩니다.

logfile: /var/log/unbound
ID 및 버전 숨기기

id.serverhostname.bind 쿼리를 숨기려면 다음 매개변수를 활성화하세요.

hide-identity: yes

version.serverversion.bind 쿼리를 숨기려면 다음 매개변수를 활성화하세요.

hide-version: yes
액세스 제어

그런 다음 access-control을 검색하여 허용하세요. 이는 바인딩되지 않은 서버에 쿼리할 수 있는 클라이언트를 허용하기 위한 것입니다.

여기서는 0.0.0.0을 사용했습니다. 이는 누구나 이 서버에 쿼리를 보낸다는 의미입니다. 특정 범위의 네트워크에 대한 쿼리를 거부해야 하는 경우 바인딩되지 않은 쿼리를 거부해야 하는 네트워크를 정의할 수 있습니다.

access-control: 0.0.0.0/0 allow

참고: 허용 대신 allow_snoop으로 대체할 수 있습니다. 이렇게 하면 dig 및 재귀적 및 비재귀적을 모두 지원합니다.

도메인이 안전하지 않음

그런 다음 도메인 안전하지 않음을 검색하세요. 우리 도메인이 DNS sec 키와 작동하는 경우 도메인 비보안에 사용할 수 있는 서버를 정의해야 합니다. 여기서 우리 도메인은 안전하지 않은 것으로 취급됩니다.

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 india.com @192.168.0.50

위 출력에서 첫 번째 쿼리는 해결하는 데 거의 262밀리초가 걸렸고 두 번째 쿼리는 도메인(india.com을 해결하는 데 0밀리초이 걸렸습니다. 비>).

즉, 첫 번째 쿼리가 DNS 캐시에 캐시되므로 로컬 DNS 캐시에서 제공되는 쿼리를 두 번째로 '드릴' 실행하면 웹사이트의 로딩 속도를 향상시킬 수 있습니다.

4단계: IPtables 플러시 및 방화벽 규칙 추가

9. 동일한 시스템에서 iptablesfirewalld를 동시에 사용할 수 없습니다. 그렇게 하면 둘 다 서로 충돌하게 됩니다. ipables 규칙을 제거하는 것이 좋습니다. iptables를 제거하거나 플러시하려면 다음 명령을 사용하십시오.

iptables -F

10. iptables 규칙을 영구적으로 제거한 후 이제 DNS 서비스를 방화벽 목록에 영구적으로 추가합니다.

firewall-cmd --add-service=dns
firewall-cmd --add-service=dns --permanent

11. DNS 서비스 규칙을 추가한 후 규칙을 나열하고 확인합니다.

firewall-cmd --list-all

5단계: 언바운드 관리 및 문제 해결

12. 현재 서버 상태를 확인하려면 다음 명령을 사용하세요.

unbound-control status

DNS 캐시 덤핑

13. DNS 캐시 정보를 텍스트 파일로 덤프하려는 경우 나중에 사용할 수 있도록 아래 명령을 사용하여 일부 파일로 리디렉션할 수 있습니다.

 # unbound-control dump_cache > /tmp/DNS_cache.txt

14. 덤프된 파일에서 캐시를 복원하거나 가져오려면 다음 명령을 사용할 수 있습니다.

unbound-control dump_cache < /tmp/DNS_cache.txt

DNS 레코드 플러시

15. 언바운드 캐시 서버에서 특정 주소가 당사 포워더에 의해 확인되었는지 확인하려면 아래 명령을 사용하십시오.

unbound-control lookup google.com

16. DNS 캐시 서버가 쿼리에 응답하지 않는 경우에는 캐시를 플러시하여 A, AAA와 같은 정보를 제거할 수 있습니다. , NS, SO, CNAME, MX, PTR 등 .. DNS 캐시의 레코드입니다. flush_zone을 사용하여 모든 정보를 제거할 수 있습니다. 이렇게 하면 모든 정보가 제거됩니다.

unbound-control flush linux-console.net
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를 기본 DNS로 삽입하세요. 하지만 여기서는 기본보조<를 모두 사용했습니다. 다른 DNS 서버가 없기 때문입니다.

Primary DNS	: 192.168.0.50
Secondary DNS	: 192.168.0.50

확인 –> 저장 및 종료 –> 종료를 클릭하세요.

19. 기본 및 보조 DNS IP 주소를 추가한 후 이제 다음 명령을 사용하여 네트워크를 다시 시작할 차례입니다.

/etc/init.d/network restart

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

elinks aol.com
dig aol.com

결론

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