<div dir="ltr">Hi,<div><br></div><div>I've picked up a strange issue in 1.4 where the </div><div><br></div><div>dbr:setRCodeRate(DNSRCode.NXDOMAIN, 5, 10, "Exceeded NXD rate", 120)<br></div><div><br></div><div>rate limit seems to be ignored if the packet cache is enabled and only the dbr:setQueryRate triggers.</div><div>The moment I disable the packet cache, the NXDOMAIN rate limiting works.</div><div><br></div><div>Here is my config (please excuse anything looking odd, I'm new to this dnsdist)</div><div><br></div><div>---------------</div><div>addLocal('xxx.xxx.xxx.110:53')<br><br>newServer({address="<a href="http://10.10.216.112:5300/" target="_blank">10.10.216.112:5300</a>", qps=5000})<br>setServerPolicy(firstAvailable)<br><br>setACL({'<a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a>', '::/0'})<br><br><br>whitelisted = newNMG()<br>whitelisted:addMask("xxx.xxx.xxx.0/22")<br>whitelisted:addMask("xx.xxx.xx.0/24")<br>addAction(NetmaskGroupRule(whitelisted), AllowAction())<br><br>addAction(AndRule({QTypeRule(DNSQType.ANY), TCPRule(false)}), TCAction())<br><br>local dbr = dynBlockRulesGroup()<br>dbr:excludeRange({"xxx.xxx.xxx.0/22", "xx.xxx.xx.0/24", "xxxx:xxxx:x::/48" })<br><br>dbr:setQueryRate(30, 10, "Exceeded query rate", 120)<br>dbr:setRCodeRate(DNSRCode.NXDOMAIN, 5, 10, "Exceeded NXD rate", 120)<br>dbr:setRCodeRate(DNSRCode.SERVFAIL, 20, 10, "Exceeded ServFail rate", 120)<br>dbr:setQTypeRate(DNSQType.ANY, 5, 10, "Exceeded ANY rate", 120)<br>dbr:setResponseByteRate(10000, 10, "Exceeded resp BW rate", 120)<br><br>function maintenance()<br>  dbr:apply()<br>end<br><br>addAction(MaxQPSIPRule(25, 32, 64), TCAction())<br><br><br>pc = newPacketCache(1000000, {maxTTL=120, minTTL=0, temporaryFailureTTL=60, staleTTL=60, maxNegativeTTL=60, dontAge=false})<br>getPool(""):setCache(pc)<br></div><div>-------------</div><div><br></div><div>Is this an issue or is this by design?<br></div><div><br></div><div>thanks</div><div>Dave</div></div>