I'm sorry to keep such an old post alive, but there's something important here that doesn't appear to have been addressed yet. Let me explain...
A few weeks ago, I began using the "trusted" acl for allow-recursion, but I noticed that it didn't really stop the attacks (yes, it was implemented correctly). It wasn't until today, though, that I began looking into the issue more.
To keep a long story short, I found the following article on DynDNS that explains how to use views to separate what is allowed recursion and what is not:
"It's important to use views..., though - if you just use allow-recursion { recursive_clients; }; in a single view, you will still provide answers to other clients out of your cache, which is almost as bad as being wide open."
You can read the whole article, including a sample setup at:
http://www.dyndns.com/about/company/notify/archives/the_dangers_of_open_recursive_dns.html
My main worry is that the "views" solution will simply not be compatible with cPanel, since it involves modifying how the zones themselves are handled.
Does anyone have any comments regarding this "new" information? Why hasn't this been brought up before? Am I really the only one who continues to see "lame server resolving" errors in my messages despite following the solution previously outlined in this thread?
-- Matt
P.S. -- For now, I have begun using the blackhole option along with an "untrusted" acl to help cut down the number of immediate attacks. This is not a good solution, though, since I can't honestly keep adding IP after IP to this list.