From: Remi Gacogne Date: Thu, 10 Jul 2025 08:35:29 +0000 (+0200) Subject: dnsdist: Add a Dynamic block rcode rate test using YAML X-Git-Tag: rec-5.4.0-alpha0~36^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24691dd78daa343d17280dc8b44b54770430affc;p=thirdparty%2Fpdns.git dnsdist: Add a Dynamic block rcode rate test using YAML Signed-off-by: Remi Gacogne --- diff --git a/regression-tests.dnsdist/test_DynBlocksServFail.py b/regression-tests.dnsdist/test_DynBlocksServFail.py index fa142c8fbd..ec3bb830e4 100644 --- a/regression-tests.dnsdist/test_DynBlocksServFail.py +++ b/regression-tests.dnsdist/test_DynBlocksServFail.py @@ -112,3 +112,40 @@ class TestDynBlockGroupServFails(DynBlocksTest): """ name = 'servfailrate.group.dynblocks.tests.powerdns.com.' self.doTestRCodeRate(name, dns.rcode.SERVFAIL) + +class TestDynBlockGroupServFailsYAML(DynBlocksTest): + + _yaml_config_template = """--- +dynamic_rules: + - name: "Block client generating too many ServFails" + mask_ipv4: 24 + mask_ipv6: 128 + exclude_ranges: + - "192.0.2.1/32" + - "192.0.2.2/32" + include_ranges: + - "127.0.0.0/24" + exclude_domains: + - "unused." + rules: + - type: "rcode-rate" + rate: %d + seconds: %d + action_duration: %d + comment: "Exceeded query rate" + action: "Drop" + rcode: "2" + +backends: + - address: "127.0.0.1:%d" + protocol: Do53 +""" + _config_params = [] + _yaml_config_params = ['_dynBlockQPS', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort'] + + def testDynBlocksServFailRate(self): + """ + Dyn Blocks (group / YAML): Server Failure Rate + """ + name = 'servfailrate.group.dynblocks.tests.powerdns.com.' + self.doTestRCodeRate(name, dns.rcode.SERVFAIL)