1.2. BIND를 캐싱 DNS 서버로 구성
기본적으로 BIND DNS 서버는 성공적으로 확인되고 실패한 조회를 캐시합니다. 그런 다음 서비스는 캐시의 동일한 레코드에 요청을 응답합니다. 이렇게 하면 DNS 조회 속도가 크게 향상됩니다.
사전 요구 사항
- 서버의 IP 주소는 static입니다.
프로세스
bind
및bind-utils
패키지를 설치합니다.dnf install bind bind-utils
# dnf install bind bind-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하려면
bind-chroot
패키지를 설치합니다.dnf install bind-chroot
# dnf install bind-chroot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux가
강제
모드인 호스트에서 BIND를 실행하는 것이 더 안전합니다./etc/named.conf
파일을 편집하고options
문에서 다음과 같이 변경합니다.listen-on
및listen-on-v6
문을 업데이트하여 BIND에서 수신 대기해야 하는 IPv4 및 IPv6 인터페이스를 지정합니다.listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };
listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow allow-query
문을 업데이트하여 클라이언트가 이 DNS 서버를 쿼리할 수 있는 IP 주소 및 범위를 구성합니다.allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow allow-recursion
문을 추가하여 BIND에서 재귀 쿼리를 허용하는 IP 주소 및 범위를 정의합니다.allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의서버의 공용 IP 주소에 대한 재귀를 허용하지 마십시오. 그렇지 않으면 서버가 대규모 DNS 조정 공격의 일부가 될 수 있습니다.
기본적으로 BIND는 루트 서버에서 권한 있는 DNS 서버로 반복적으로 쿼리하여 쿼리를 확인합니다. 또는 공급자와 같은 다른 DNS 서버에 쿼리를 전달하도록 BIND를 구성할 수 있습니다. 이 경우 BIND에서 쿼리를 전달해야 하는 DNS 서버의 IP 주소 목록을 사용하여
forwarders
문을 추가합니다.forwarders { 198.51.100.1; 203.0.113.5; };
forwarders { 198.51.100.1; 203.0.113.5; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역추적 동작으로 BIND는 전달자 서버가 응답하지 않는 경우 쿼리를 재귀적으로 확인합니다. 이 동작을 비활성화하려면
forward only;
문을 추가합니다.
/etc/named.conf
파일의 구문을 확인합니다.named-checkconf
# named-checkconf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
들어오는 DNS 트래픽을 허용하도록
firewalld
규칙을 업데이트합니다.firewall-cmd --permanent --add-service=dns firewall-cmd --reload
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 시작하고 활성화합니다.
systemctl enable --now named
# systemctl enable --now named
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하려면
systemctl enable --now named-chroot
명령을 사용하여 서비스를 활성화하고 시작합니다.
검증
새로 설정된 DNS 서버를 사용하여 도메인을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost
인터페이스의 쿼리에 응답한다고 가정합니다.처음으로 레코드를 쿼리한 후 BIND에서 해당 캐시에 항목을 추가합니다.
이전 쿼리를 반복합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시된 항목으로 인해 항목이 만료될 때까지 동일한 레코드에 대한 추가 요청이 훨씬 더 빨라집니다.