Quick answer
DNS amplification is a reflection attack: the attacker sends small DNS queries to public resolvers while forging the victim's address as the source, so every reply is delivered to the victim instead of back to the attacker. Because a DNS response can be dozens of times larger than the query that produced it, a modest connection can generate an enormous flood. The traffic arriving at the victim comes from legitimate servers that were simply answering a question they had no reason to doubt.
01How reflection works
UDP does not verify who sent a packet. The attacker exploits that by putting the victim's address in the source field of a DNS query and sending it to a resolver that answers anyone. The resolver does its job and sends the answer to what it believes is the requester: the victim.
The attacker's own address never appears in the traffic the victim receives. From the victim's perspective, thousands of normal DNS servers around the world have all decided to send them large replies at once.
attacker open resolvers victim
│ small query, │ │
│ forged source ────────▶│ │
│ (60 bytes) │ │
│ │ ── large reply ──────▶│
│ │ (3000+ bytes) │
1 Gbit/s of queries × ~50 amplification = ~50 Gbit/s arriving02Why the factor matters so much
Amplification factor is the ratio between what the attacker sends and what the victim receives. A query for ANY against a zone with many records, or for a large signed record set, can produce a response dozens of times the size of the request, and some protocols are far worse. The figures below are the bandwidth amplification factors CISA published in its alert on UDP-based amplification; the wider family is covered in amplification attacks explained.
| Protocol | Amplification (CISA) | Why it is exposed |
|---|---|---|
| DNS | 28 – 54× | Open resolvers answering recursive queries for anyone |
| NTP (monlist) | 556.9× | A legacy command that returns the last 600 addresses to contact the server |
| CharGEN | 358.8× | An obsolete test service still reachable on some hosts |
| CLDAP | 56 – 70× | Directory services reachable from the internet |
| SSDP | 30.8× | Consumer devices answering discovery requests on the WAN side |
| memcached | 10,000 – 51,000× | Instances exposed to the internet with UDP enabled |
03DNS amplification is not a DNS flood
The two are easy to confuse and need different defences. Cloudflare's report for the first half of 2026 draws the line clearly: a DNS flood aims a botnet's raw request volume directly at a victim's authoritative DNS servers, while DNS amplification sends small spoofed queries to open resolvers, which reply to the victim with much larger records.
Both are common. In the same report DNS-based attacks made up 34.3% of network-layer activity in the first half of 2026, and CLDAP, another reflection vector, rose 580% quarter on quarter to become the third most common vector in the second quarter.
| DNS amplification | DNS flood | |
|---|---|---|
| Who sends the traffic | Innocent resolvers, tricked by spoofed queries | The attacker's own bots |
| What arrives | Large DNS replies you never asked for | Very large numbers of queries |
| Target | Any address, often not a DNS server at all | Your authoritative DNS servers |
| Tell-tale | Inbound traffic from source port 53 | Inbound traffic to destination port 53 |
| Where it is fixed | Upstream, on capacity | DNS capacity, often spread with anycast, plus query filtering |
04Recognising it on the wire
Reflection is unusually easy to recognise, because the victim receives answers to questions it never asked. The filters below isolate the three tells: DNS responses arriving from port 53, oversized responses and fragments. If those replies do not match queries your own resolver sent, you are the target of reflection, and what you capture is only the share that made it through your link.
# DNS responses (QR bit set) arriving from port 53, IPv4 only
tcpdump -ni eth0 -c 100 'udp src port 53 and udp[10] & 0x80 != 0'
# packets from port 53 of 1,000 bytes or more
tcpdump -ni eth0 -c 100 'udp src port 53 and greater 1000'
# IPv4 fragments, which large amplified replies often arrive as
tcpdump -ni eth0 -c 100 'ip[6:2] & 0x3fff != 0'05Defending as the victim
There is nothing you can configure on your own server to stop it: the traffic is already at your uplink, and it comes from thousands of legitimate resolvers. Defence has to happen upstream, on a network with more capacity than the attack.
- Filtering upstream: reflection traffic is recognisable, since it is replies you never asked for
- Enough capacity to absorb the flood while it is being discarded, which is what DDoS mitigation services exist to provide
- An origin address the attacker cannot reach directly, so the filtered path is the only path; see how to hide your origin IP
- Never block by source address: those are innocent servers, and there are far too many
06Not being part of someone else's attack
The other half of the problem is that these attacks depend on misconfigured servers. If you run infrastructure, a few checks keep you from being conscripted.
Each common amplifier has a documented fix. BCP 140 (RFC 5358) says nameservers should not offer recursive service to external networks by default. RFC 8482 lets DNS servers answer ANY queries with a minimal response, explicitly to make them less attractive amplifiers. ISC describes Response Rate Limiting in BIND as a mitigation for DNS amplification. Memcached disabled UDP by default in version 1.5.6, and CISA's advice for NTP is to upgrade to 4.2.7 or later, which disables monlist, or to add noquery to the restrict lines.
To check whether a resolver you run is open, query it from a network outside your own: a refused query is what you want, and the port 53 open-resolver test shows real open and closed replies side by side. A browser-based DNS lookup shows what your public records return.
- Do not run an open recursive resolver: restrict recursion to your own networks
- Rate limit responses (DNS RRL) on authoritative servers
- Never expose memcached, NTP monlist or CLDAP to the public internet
- Implement source address validation (BCP 38) so forged packets cannot leave your network
dig @203.0.113.53 www.example.com A
# good: status: REFUSED, or no answer at all
# bad: status: NOERROR, flags include "ra", and an ANSWER sectionQuestions
Frequently asked questions
Sources
Sources and verification
tcpdump filters checked with tcpdump 4.99.3 (tcpdump -d); dig command and its status and flag output checked with dig 9.18 against a public resolver, on Debian 12, October 2026.
- 01UDP-Based Amplification Attacks (TA14-017A) · CISA
- 02NTP Amplification Attacks Using CVE-2013-5211 · CISA
- 03February 28th DDoS incident report · GitHub
- 04Cloudflare DDoS Threat Report H1 2026 · Cloudflare
- 05DDoS threat report for 2025 Q3 · Cloudflare
- 06RFC 5358 (BCP 140): Preventing Use of Recursive Nameservers in Reflector Attacks · IETF
- 07RFC 8482: Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY · IETF
- 08Response Rate Limiting (RRL) in BIND · ISC
- 09Memcached 1.5.6 release notes · memcached
- 10RFC 2827 (BCP 38): Network Ingress Filtering · IETF
Last updated