Hi,

Sorry, please ignore question 2, as suddenly these rules 6-7 appeared in the 
web server view also. :)

Mart

Mart Pirita via dnsdist wrote:
> Hi,
> 
> Our 2 x public authoritative DNS servers (vmware, 8 CPU, 16G RAM, BIND 
> 9.18.28, about 700 zones) are constantly getting DDOS attacks. Despite 
> allkind (increasing buffers, disabling firewall port 53 in/out tracking etc) 
> BIND still gives during attack about 50K udp errors, even CPU and RAM usage 
> are normal, so I'm currently testing dnsdist 1.9.6. 
> 
> I've browsed the last 2 years of mailing list archives and read the official 
> docs, but still haven't figured out the best addLocal/newServer combination. 
> 
> So few questions:
> 
> 1) What amount of  addLocal/newServer I should use? First I tried 8 x 
> addLocal/newServer for ipv4 and 8 x addLocal/newServer for ipv6, but CPU 
> usage was very high, when using instead of using 2 x addLocal/newServer for 
> ipv4 and 2 x addLocal/newServer for ipv6, then CPU usage is much lower, 
> however the qps was same in both cases?
> 
> 2) I'm using 3 in a row MaxQPSIPRules, but the first one is listed (as the 
> last rule) on the web server:
> 5        (IP (/32, /64) match for QPS over 5 burst 5) && (UDP)    tc=1 answer
> 
> How can I see also the others there, as I’d like view there their matches 
> also on the web server?
> 
> Rules are there:
> 
> showRules()
> 5                                     814105 (IP (/32, /64) match for QPS 
> over 5 burst 5) && (UDP)    tc=1 answer
> 6                                     254988 (IP (/32, /64) match for QPS 
> over 10 burst 10) && (TCP)  delay by 10 ms
> 7                                      45472 (IP (/32, /64) match for QPS 
> over 20 burst 20) && (TCP)  drop
> 
> And getting hits:
>> topRules()
> #   Name                             Matches Rule                             
>                         Action
> 0                                     805888 (IP (/32, /64) match for QPS 
> over 5 burst 5) && (UDP)    tc=1 answer
> 1                                     251769 (IP (/32, /64) match for QPS 
> over 10 burst 10) && (TCP)  delay by 10 ms
> 2                                      45387 (IP (/32, /64) match for QPS 
> over 20 burst 20) && (TCP)  drop
> 
> 
> 3) Can you give any tuning/configuration hints based my current config:
> 
> setACL({'0.0.0.0/0', '::/0'})
> addLocal('127.0.0.1:53', { reusePort=true, tcpFastOpenQueueSize=100 })
> addLocal('x.x.x.x:53', { reusePort=true, tcpFastOpenQueueSize=100 })
> addLocal('[::1]:53', { reusePort=true, tcpFastOpenQueueSize=100 })
> addLocal('[x::1]:53', { reusePort=true, tcpFastOpenQueueSize=100 })
> newServer({address="127.0.0.1:5353", tcpFastOpen=true, maxCheckFailures=5"})
> newServer({address="127.0.0.1:5353", tcpFastOpen=true, maxCheckFailures=5"})
> newServer({address="[::1]:5353", tcpFastOpen=true, maxCheckFailures=5"})
> newServer({address="[::1]:5353", tcpFastOpen=true, maxCheckFailures=5"})
> setSecurityPollSuffix("")
> pc = newPacketCache(10000000, {maxTTL=86400, minTTL=0, 
> temporaryFailureTTL=60, staleTTL=60, dontAge=false})
> getPool(""):setCache(pc)
> setRingBuffersSize(1000000, 100)
> setMaxTCPClientThreads(20)
> setMaxUDPOutstanding(65535)
> local secondaryServersACL = newNMG()
> secondaryServersACL:addMask("x.x.x.x")
> secondaryServersACL:addMask("x.x.x.x")
> addAction(AndRule({QTypeRule(DNSQType.AXFR), 
> NetmaskGroupRule(secondaryServersACL)}), AllowAction())
> addAction(AndRule({QTypeRule(DNSQType.IXFR), 
> NetmaskGroupRule(secondaryServersACL)}), AllowAction())
> addAction(NetmaskGroupRule(secondaryServersACL), AllowAction())
> addAction(OrRule({OpcodeRule(DNSOpcode.Notify), OpcodeRule(DNSOpcode.Update), 
> QTypeRule(DNSQType.AXFR), QTypeRule(DNSQType.IXFR)}), 
> RCodeAction(DNSRCode.REFUSED))
> addAction(QTypeRule(DNSQType.ANY), RCodeAction(DNSRCode.SERVFAIL))
> addAction(AndRule{MaxQPSIPRule(5), TCPRule(false)}, TCAction())
> addAction(AndRule{MaxQPSIPRule(10), TCPRule(true)}, DelayAction(10))
> addAction(AndRule{MaxQPSIPRule(20), TCPRule(true)}, DropAction())
> controlSocket("127.0.0.1")
> setKey('xxxx')
> webserver("x.x.x.x:8083")
> setWebserverConfig({password="xxxx"})
> 
> 
_______________________________________________
dnsdist mailing list
dnsdist@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/dnsdist

Reply via email to