바인드 DNS 비율 제한 및 초당 응답 및 창 값

내 DNS 서버의 named.conf에

    rate-limit {
            responses-per-second 5;
            window 5;
    };

이것이 실제로 무엇을 의미합니까? 그리고 DNS 클라이언트 문제를 일으킬 수 있습니까? 구성이 너무 빡빡합니까?



답변

단일 DNS 클라이언트가 1 초 안에 얻을 수있는 동일한 응답의 수를 제한합니다. 이 window 5옵션은 5 * 5 응답의 버스트를 허용합니다.

“동일한 응답”및 “단일 DNS 클라이언트”는 여기에서 약간 명백한 용어입니다. 자세한 내용은 다음을 참조하십시오. http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

일반적으로 속도를 제한하는 것이 좋습니다. 언젠가 DOS 공격의 경우 도움이 될 수 있습니다. 대부분의 경우 기본값은 정상입니다.


답변

BIND 9.9에 대한 관리자 참조 매뉴얼을 읽어야 합니다 .

기본적으로 responses-per-second초당 하나의 단일 대상으로 보낼 수있는 동일한 회신의 수입니다. 정의는 까다 롭습니다.

단일 대상은 해당 크기로 구성 되거나 적용 가능한 크기의 네트워크 주소 블록 입니다 . (가) 경우에 따라서, (24), 그리고 모두 와는 DNS 서버를 쿼리, 그들은이 할당량을 공유하고 단지 두 사람 사이에 많은 쿼리를 보낼 수 있습니다.ipv4-prefix-lengthipv6-prefix-lengthipv4-prefix-length192.0.2.1192.0.2.2

동일한 응답은 특정 존재 이름 또는 존재하지 않는 이름에 대한 특정 RR 유형에 대한 쿼리에 대한 응답입니다. 다음 쿼리는 모두 고유합니다.

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

그러나 다음과 같은 쿼리는 모두 동일합니다 (예 nonexistent.domain.example.net.: 이름을 따름 ).

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

window조금 더 복잡합니다. 할당량을 뱅킹 할 수있는 시간 (초)입니다. 승산 windowresponses-per-second모든 할당량 포지티브 이상의 염기성 조건 버스트 용량이 될 수있는 최대 값을 제공한다.

포괄적 인 예를 들자면 :

에 대한 재귀없는 정식 네임 서버입니다 example.net.. 지난 10 초 동안 DNS 트래픽이 전혀 보이지 않고 해당 구성이 전 세계적으로 적용된다고 상상해보십시오. 다음과 같은 이벤트가 순차적으로 발생합니다.

  1. 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다 IN NS example.net.. 25는 허용되고 나머지 75는 무시됩니다.
  2. 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다 IN A nonexistent.example.net.. 25는 허용되고 나머지 75는 무시됩니다.
  3. 호스트 198.51.100.1은 1 개의 쿼리를 보냅니다 IN MX nonexistent-domain.example.net. . 존재하지 않는 도메인의 한계에 도달 했으므로 무시됩니다.
  4. 호스트 198.51.100.1은에 대해 1 개의 쿼리를 보냅니다 IN A example.net.. 허용됩니다.
  5. 호스트 192.0.2.1-192.0.2.50은 각각에 대해 단일 쿼리를 보냅니다 IN NS example.net.. 그들 중 25 명은 답장을 받고 나머지 25 명은 무시됩니다. 198.51.100.0/24의 할당량은이 호스트에 적용되지 않지만 192.0.2.0/24의 할당량을 공유합니다.
  6. 1 초
  7. 호스트 192.0.2.26-192.0.2.50은 쿼리를 반복합니다 IN NS example.net.. 할당량은 초당 5 개의 쿼리로만 보충되므로 나머지 5 개는 응답을 받고 나머지 20 개는 무시됩니다.

답변

iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP

IPtables도 잘 작동합니다. 공격이 발견되면 트래픽을 서비스에서 완전히 차단합니다.


답변

나는 속도를 제한하는 것이 좋지 않다고 생각한다. 자신에게 물어보십시오 : 웹 서버 응답도 평가합니까? DNS 응답이 웹 서버 응답보다 덜 중요하다고 생각하는 이유는 무엇입니까?
그리고 당신이 한계를 평가하더라도, 그 5 req / sec 소리는 매우 낮습니다.


답변