BIND 9.18.2 break-dnssec question

Mark Andrews marka at isc.org
Mon May 2 05:55:22 UTC 2022



> On 2 May 2022, at 12:28, J Doe <general at nativemethods.com> wrote:
> 
> On 2022-04-29 01:18, Mark Andrews wrote:
> 
>> break-dnssec is about if the client could detect the re-write or not using DNSSEC.  If the client has DO=1 in the request and the normal response is signed then rewrites can be detected. If break-dnssec is ’no’ the rewrite will be prevented.  If break-dnssec is ‘yes’ then the rewrite will occur.
>> the world <-> recursive server rpz w/ break-dnssec no <-> recursive server rpz w/ break-dnssec no or yes;
>>                             |                                            |
>>                       non dnssec client                            non dnssec client
>> You don’t want the second recursive server to spend all its time re-asking queries that will fail validation
>>> On 29 Apr 2022, at 11:24, J Doe <general at nativemethods.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I am configuring an RPZ for a validating resolver.  I read in the BIND 9.18.2 ARM that there is a boolean option for RPZ zones called: break-dnssec.
>>> 
>>> The ARM states:
>>> 
>>>    ...In that case, RPZ actions are applied regardless of DNSSEC.
>>>    The name of the clause option reflects the fact that results
>>>    rewritten by RPZ actions cannot verify.
>>> 
>>> In my particular scenario, I want to use RPZ to give NXDOMAIN results for certain domain names that I don't want accessible.  So for normal queries without DNSSEC validation requested and for queries with DNSSEC validation requested for a domain name I am _not_ blocking, I want the lookups to work (ie: don't validate when validation not requested, validate when validation requested).
>>> 
>>> When a client attempts to lookup a domain name that _is_ blocked by RPZ, I want the domain name blocked ... whether or not they requested DNSSEC validation.
>>> 
>>> Am I correct that: break-dnssec yes comes into play only if a client attempts to resolve a DNSSEC secured domain name I _am_ blocking in RPZ ?
>>> 
>>> So for instance...
>>> 
>>> 1. Client requests no validation for example.com which is not in RPZ and gets normal result.
>>> 
>>> 2. Client requests validation for example.com which is not in RPZ and gets validated result.
>>> 
>>> 3. Client requests no validation for evil.com which is in RPZ and gets NXDOMAIN result.
>>> 
>>> 4. Client requests validation for evil.com which is in RPZ and gets NXDOMAIN result with broken DNSSEC validation due to rewrite.
>>> 
>>> This would mean that: break-dnssec yes:
>>> 
>>> ...only breaks DNSSEC validation for evil.com because it is re-written
>>> ...does NOT break DNSSEC validation for sites _NOT_ in RPZ that use DNSSEC (ie: ietf.org).
>>> 
>>> Is that correct ?
>>> 
>>> Thanks,
>>> 
>>> - J
> 
> Hi Mark,
> 
> Thanks for your reply!  I think I might have done a poor job asking my questions, which may have introduced some confusion - apologies.  My brain is still chewing on this!
> 
> In this particular scenario, I have one validating resolver.  The diagram would be:
> 
> Client (PC, mail server, etc.) -> My resolver -> The world
> 
> What I was wondering is if I configure my validating resolver to use: break-dnssec yes, does that mean that DNSSEC validation is broken for _ALL_ queries ?

No.  Just those that are changed and which where signed and the client asks with DO=1 in the EDNS flags.

> I am thinking that this applies only when a client computer queries my validating resolver and wants to know if DNSSEC is valid on a query that my resolver has changed via RPZ.  Because RPZ modified the data it can no longer validate.
> 
> So the client queries my resolver for DNSSEC validity for a server that is _NOT_ covered by my RPZ policy ... validation should _NOT_ break in that circumstance, right ?

yes.

> Thanks,
> 
> - J

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742              INTERNET: marka at isc.org



More information about the bind-users mailing list