Recursive DNS servers as a growing DDoS problem

hi guys.

we discussed recursive dns servers before (servers which allow to query anything – including what they are not authoritative for, through them).

the attack currently in the wild is a lot bigger and more complicated than this, but to begin, here is an explanation (by metaphor) of that part:

spoofed icmp attacks have been around for a while. how many of us still get quite a bit of icmp echo replies stopped at our borders? these replies come to us due to spoofed attacks using our addresses.

now, imagine it – only bigger:

introduce an amplification effect.

as bigger udp packets will be fragmented by the servers, and udp obviously does not do any handshake and can easily be spoofed…
the server receives a large packet, breaks it down to several fragments and moves the query on.
that’s where the amplification effect starts.

both the attacked server and the unwilling participant in the attack, the recursive servers, experience a serious dns denial of service that keeps getting amplified considerably.

one of the problems is obviously the spoofing. let us, metaphorically and wrongly treat it for a minute as the remote exploit.

the second part of this problem is the recursive server, which for the moment we will wrongly treat as the local exploit.

obviously both need to be fixed. which is easier i am not so sure.

in the past, most network operators refused to implement best practices such as bcp38 (go fergie!) because they saw no reason for the hassle. returning back to: “if it isn’t being exploited right now, why should i worry about it?”

well, it is being exploited now, and will be further exploited in the future. combating spoofing on the internet is indeed important and now becoming critical.

removing the spoofing part for a second, the attack vector for this can easily be replaced, as one example, with a botnet.

a million trojaned hosts sending in even one packet a minute would cause quite a buzz – and do. now amplify the effect by the recursive servers and…

so, putting the spoofing aside, what do we do about our recursive servers?

there are some good url’s for that, here are some:

the recursive behaviour is necessary for some authoritative servers, but not for all. as a best practice for organizations, as an example, the server facing the world should not also be the one facing your organization (your users/clients). limiting this ability to your network space is also a good idea.

if you would like to check for yourselves, here is a message from duane wessels [1] to the dns-operations [2] mailing list where this is currently being discussed:

if anyone has the need to test particular addresses for the presence of open resolvers, please feel free to use this tool:

it will send a single “recursion desired” query to a target address.
if that query is forwarded to our authoritative server, the host has an open resolver running at that address.

dan (da man) kaminsky and mike schiffman have done some impressive work on this subject, outlined in dan’s latest shmoocon talk.
they found ~580k open resolvers:,

i suggest those of us who need more information or help go to the dns-operations mailing list from oarc (see below) and ask the experts there, now that this is finally public.


full technical details on how the attack works at:

gadi evron,

[1] duane wessels – dns genius and among other accomplishments the author of dns top.
[2] dns-operations –

[changed title from: recursive dns servers ddos as a growing ddos problem]

  • The Black Hacker

    Diasbling recursion is pontless. DNS is one of the zillion services that can be used as amplifiers because can send a reply-packet bigger than the request-packet, with of without recursion:

    dig @A.ROOT-SERVERS.NET -t ANY it.


    10:09:18.919901 ethertype IPv4 (0×0800), length 62: IP (tos 0×0, ttl 64, id 53084, offset 0, flags [none], length: 48) > [udp sum ok] 30530+ ANY? it. (20)
    10:09:19.060477 ethertype IPv4 (0×0800), length 535: IP (tos 0×0, ttl 49, id 7025, offset 0, flags [none], length: 517) > 30530- 7/7/10 it. NS, it.[|domain]

    62 bytes of request and 535 bytes of reply, that’s a 9/1 amplification, and we cannot for sure tell the root servers to stop answering the TLD nameservers… (and any DNS of the world to stop answering IN ANY on the zone, or the list of aliases for a large dns load-balancer, just to give some examples).

    Use any of these “amplifiers” (and again DNS is only one of them, essentially anything not using TCP but UDP instead can be one..), send a 256kiolbit flood from your DSL spoofing the source address and you can put on knees a 2mbit linked site.

    The only viable option is written in RFC 2837. Hopefully IANA, RIPE and company will start having the implementation of RFC2837 as a requirement to have AS numbers and IPs assigned.

    And hopefully will also start having as a requrement that AS are able to identify the (physical, real, with name and surname) user of an IP address.



  • yodave

    I think you mean RFC 2827, Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing

  • sunshine

    Full technical details on how the attack works at: