> 
> The situation is that dnswl has four possible responses when it acts on a 
> query that it has flagged as exceeding the limits of unpaid use: 1) reject 
> with SERVFAIL, 2) reject with BLOCKED, 3) return 127.0.0.255 which is code 
> for blocked, 4) return 127.0.10.3 which is code for "other service" HI 
> non-spam

127.0.0.255 is what is used in most cases (and was the only response we 
initially implemented). 

We had the following cases where this did not result in the number of queries 
being reduced (and please note that the source is not only SA):

* Large scale open resolvers. Additionally they keep adding/changing the IPs 
which they use to talk to auth NS, and on top they often lack rDNS, making it 
difficult to identify. Some of the clueless admins fall into this category.

* Large hoster resolvers (namely AWS, OVH, Hetzner, …): Sometimes we observe 
massive amounts of „enumerating queries“, clearly some outfit scanning large IP 
ranges over DNS. Likely not SA doing this, but some standard SA installations 
are likely „mixed in“.

* A number of security companies (likely) where the pattern indicates that they 
are „freeriding“ as part of the service to their customers (some well known 
names…). Some have changed and are hiding behind AWS nowadays (see first bullet 
point).

Now if one gets blocked results (.255) from a blocklist, the effect is usually 
visible right away. With a welcomelist, the effect may be more subtle (more 
false positives, but you may not immediately know why).

Getting persistent overusers to act thus needs a different response:

* Do not give them NS response for the list.dnswl.org response. 

* Return a SERVFAIL on the list.dnswl.org zone.

* Return a _HI response.

Neither of those is ideal, neither of them works in all situations, but doing 
nothing is also not an option in terms of resource usage.

> That policy clashes with the SpamAssassin PMC's explicit policy of not 
> supporting in our default configuration any dnsbl that responds to violation 
> of a "free for some" model by returning wrong information instead of a 
> specified BLOCKED code. If we allow that, it

The implemented actions are intended to keep up a „free for most“ model.

> Under some of those circumstances, the complaints go to SpamAssassin and the 
> pressure is put on us.

I‘m aware of it and have responded a number of times on the SA users list („use 
a local resolver which you should anyway and you‘re find unless you really go 
way above 100k queries per day“).

> process after the first 127.0.0.255 is received you would feel better about 
> relying on that. Or maybe you can think of another compromise suggestion.

I‘m very open to suggestions for a better process / better actions with fewer 
collateral damage.

I can suggest that we run a statistical experiment by turning all non-.255 
responses into .255 responses and then compare the rate of queries. I‘m 
currently on business travel (and typing this mail on my phone 😅) so I could 
implement that on the weekend, and then give it a week or two to compare query 
loads (and identify some of the more obnoxious commercial abusers mentioned 
above).


— Matthias

Reply via email to