전달 영역에서만 Bind9 캐시 줄이기

전달 영역에서만 Bind9 캐시 줄이기

Bind9을 실행하는 캐싱 재귀 DNS 서버가 있습니다. 단일 로컬 영역의 경우 type forward전달자를 사용하고 설정했는데 forward only훌륭하게 작동했습니다. 전달 영역의 캐싱을 5초(긍정적 및 부정적 응답)로 제한하고 싶습니다. 내가 전달하는 서버는 로컬이고 조작할 수 없으며 불행히도 동적으로 생성하는 레코드의 캐시된 TTL 등에 대한 유용한 값이 덜합니다(본질적으로 모든 것에 대한 캐싱 확인자라고 가정합니다).

내가 아는 한 나는 그것을 사용 max-cache-ttl하고 저장한 다음 전역적으로나 뷰에만 적용할 것입니다.max-ncache-ttlmax-cache-ttlmax-ncache-ttl

내 구성은 다음과 같습니다.

zone "example.local." {
     type forward;
     forward only;
     // max-cache-ttl 5;   <--- does not work here
     // max-ncache-ttl 5;  <--- does not work here
     forwarders {
          192.200.1.10;   // on same LAN
     };
};

이상적으로는 캐싱을 끄고 싶지 않습니다.완전히하지만 그것이 내가 할 수 있는 유일한 일이라면 그것은 선택이 될 것이다.

어떤 아이디어가 있나요?

답변1

구성만으로는 이 작업을 수행하는 쉬운 방법이 없다고 생각합니다.이 문제서버 오류에 관한 장단점을 논의하고 BIND 소스 패치를 포함하는 권장 사항을 제시합니다(그러나 패치는 단일 영역에 대해서만 이 작업을 수행하도록 허용하지 않습니다).

또 다른 방법은 전달하려는 서버에서 영역을 전송하고 TTL을 수정한 다음 해당 영역에 대해 권한을 부여하도록 로컬 BIND를 구성하는 것입니다. 예, 해킹이지만 스크립트 작성이 쉽고 작동합니다.

BIND를 바인딩하지 않으면 원하는 작업을 다음을 통해 수행할 수 있습니다.구속되지 않음- 보다cache-max-ttl옵션:

캐시에 있는 RRset 및 메시지의 최대 수명입니다. 기본값은 86400초(1일)입니다. 최대값에 도달하면 클라이언트에 대한 응답에서는 원래(더 큰) 값을 기준으로 TTL이 계속 감소합니다. 내부 TTL이 만료되면 캐시 항목이 만료됩니다. (매우 큰) TTL 값을 신뢰하지 않고 파서가 데이터를 자주 쿼리하도록 강제하려면 더 낮게 설정할 수 있습니다.

관련 정보