BIND
구성을 통해 CentOS 8 서버에 서비스를 설치했습니다 recursion yes;
. 매우 큰 트래픽(약 8GB)이 내 서버에서 매 시간마다 전송되고 있는 것을 발견했는데 이 트래픽의 소스가 무엇인지 감지할 수 없었습니다. 그런 다음 명명된 구성을 변경하고 재귀를 비활성화했습니다.recursion no;
재귀를 비활성화하고 트래픽을 측정한 후 전송 트래픽이 200MB 미만으로 급격히 감소한 것을 볼 수 있습니다. 이제 내 질문은 이 재귀가 어떻게 그렇게 큰 전송 트래픽을 유발할 수 있는가 하는 것입니다.
답변1
재귀는 네임서버가 자신이 담당하지 않는 영역에 대해서도 모든 쿼리에 최선을 다해 응답한다는 것을 의미합니다.
재귀를 활성화하고 제한 없이 모든 클라이언트에 대한 쿼리에 응답하도록 하는 것은 나쁜 생각입니다. 왜냐하면 다른 공개 네임서버를 사용하거나 심지어 제3자에게 답변을 넘치게 하려고 시도하는 바보가 많이 있기 때문입니다.
재귀는 이 네임서버가 확인자로 승인되어야 하는 클라이언트에 대해서만 활성화되어야 합니다. 그래서 만약 당신이
recursion yes;
다음과 같은 제한 사항도 있어야 합니다.
allow-recursion { 127.0.0.1; x.x.x.x; };
유효한 클라이언트 IP를 모두 나열합니다.
이 네임서버가 도메인 이름에 대한 기본 NS가 아닌 경우 이를 열어서 허용된 클라이언트에 대한 쿼리에만 응답할 수도 있습니다.
allow-query { 127.0.0.1; x.x.x.x; };
allow-query-cache { 127.0.0.1; x.x.x.x };
또한 이 네임서버가 소수의 클라이언트만을 담당하는 경우 방화벽을 사용하여 다른 모든 IP에 대해 UDP 53 및 TCP 53을 닫는 것을 고려해야 합니다.