[Pdns-users] pre-signed zone with NSEC3 and opt-out flag mixed, PDNS broken

Klaus Darilion klaus.mailinglists at pernau.at
Tue Apr 1 14:01:46 UTC 2014


Hi!

I use PowerDNS from git HEAD from 20140320 (somewhere between 3.3.1 and 3.4)

For pre-signed zones, PDNS deletes the NSEC3 records on incoming zone 
transfer, and generates them when needed, and then they hopefully match 
the pre-signed zone.

AFAIS there is a problem in detecting how the NSEC3 records should be 
generated. For example, Bind generates NSEC3 records - some with the 
opt-out flag set, some the the opt-out flag cleared, regardless of the 
configured NSEC3PARAM record.

Eg the incoming NSEC3PARAM record is:

   NSEC3PARAM 1 0 10 BEEF

PDNS stored in the domainmetadata:

   1 1 10 beef

Thus, it seems that PDNS ignores the NSEC3PARAM record and retrieves the 
parameters from the NSEC records itself. But these record may have 
different parameters (the RFC allows a mixed operation).

For opt-out NSEC3 records this works for PDNS, but not for non-opt-out 
NSEC3 records, e.g. here the response from the hidden master (Bind signer):

I5G81FPSAIPRKI8OUCVBB662QN9F4AB1.example. 900 IN NSEC3 1 0 10 BEEF 
IFM20V814R4G440BGE4I249LE1CR05PD
I5G81FPSAIPRKI8OUCVBB662QN9F4AB1.example. 900 IN RRSIG NSEC3 7 3 900 
20140412103334 20140313094600 21170 example. 
kj1B4llSd3z1pGd6/kV+b8TvsO3QUWiZ++1ny2dBbKiIIOJ8o8ytImWg 
pUbu3tRiWz/+8e1szgbzIgiAikD0ZRjrMuAyDR7LeG+79pwD50dQNAW4 
XKLCAeoy9rcZgHJThcPQASdGBl/GbofjOdBv7qPhgXLp15mU7y8WGXRg HA4=

Here the response from PowerDNS:

i5g81fpsaiprki8oucvbb662qn9f4ab1.example. 900 IN NSEC3 1 1 10 BEEF 
IFM20V814R4G440BGE4I249LE1CR05PD
i5g81fpsaiprki8oucvbb662qn9f4ab1.example. 900 IN RRSIG NSEC3 7 3 900 
20140412103334 20140313094600 21170 example. 
kj1B4llSd3z1pGd6/kV+b8TvsO3QUWiZ++1ny2dBbKiIIOJ8o8ytImWg 
pUbu3tRiWz/+8e1szgbzIgiAikD0ZRjrMuAyDR7LeG+79pwD50dQNAW4 
XKLCAeoy9rcZgHJThcPQASdGBl/GbofjOdBv7qPhgXLp15mU7y8WGXRg HA4=

The opt-out bit is incorrectly set and the RRSIG's signature does not 
match the NSEC3 record.


I think, the current PDNS approach of dynamically generating NSEC3 
records for pre-signed zones is broken and error-prone.


Shall I file a bug report, or is there a workaround?

Thanks
Klaus






More information about the Pdns-users mailing list