Hello all,
(I'm Barshani's colleague)
while I didn't yet dig into why this happens, it looks to me (based on the
presented zone files and resulting visible signatures) that the failing
zone does not have NSEC3 records that exist in non-failing zone file
(those between example.com., ns1.site1.example.com.,
ns2.site1.example.com. and site2.example.com.).
If the RR
1ale25q63qf27j2lrhoqm9um0a3u3e6r.example.com. 3600 IN NSEC3 1
1 5 4d91322a387fea14 6khjs8s1km7q7o0kiuo75681umgi1vne NS SOA RRSIG DNSKEY
NSEC3PARAM
covers everything under example.com and zone is missing the
6khjs8s1km7q7o0kiuo75681umgi1vne.example.com. NSEC3 for A,RRSIG,
wouldn't it mean that ns1.site1.example.com. A RRSIG records are
guaranteed to not exist? I might be wrong here, though.
While I didn't dig into the code to try and figure out if it would be
related to something like <OptOut/>-stanza, we had to try the fix earlier
today on a working (non-broken) zone. We then noticed that when the
'ods-signer clear <zone>' is run, it will also schedule zone resign
despite documentation (and examples in the internet) lets us understand
that would not happen. This is in file
opendnssec-2.1.14\signer\src\daemon\signercommands.c ,
function 'static int cmdhandler_handle_cmd_clear(cmdhandler_ctx_type* context, char *cmd)'
which runs
'schedule_scheduletask(engine->taskq, TASK_FORCESIGNCONF, zone->name, zone,
&zone->zone_lock, schedule_IMMEDIATELY);' .
It is task 'TASK_FORCESIGNCONF' but.. well, it triggers immediate
zone re-signing when we run it.
Based on the solution, my guess would be that there's something that makes
ods pick the A RRSIG from the so-called backup-files under
/var/opendnssec/tmp (whether rightly or wrongly, as they are time-wise
valid, and with same timestamps so they probably do come from the
backups). Why the NSEC3 is not generated, I don't know, but the behaviour
of 'ods-signer clear <zone>' was kinda unexpected because our signing
uses NotifyCommand to run several checks to ensure zone validity (loading
into bind, running ldns-verify-zone, distributing validated zones, sending
e-mail about process results and so on) if signed zone passes our tests.
I think summa summarum is something like:
- deleting and then reintroducing a (sub)domain with glues and
A RRSIGs will restore the A RRSIGs from .backup files but
does not regenerate NSEC3
- 'ods-signer clear <zone>' does always 'schedule_IMMEDIATELY'
a 'TASK_FORCESIGNCONF' task when zone exists
- I guess that the scheduling of a TASK_FORCESIGNCONF task somehow
triggers immediate re-signing as well which feels like a bug.
- The comment just above schedule_scheduletask is interesting
Best regards,
--
Mikko Rantanen
On Mon, 30 Jun 2025, Barshani Jalaludeen via Opendnssec-user wrote:
Hi Havard,
Thanks for your quick support.
We did the following, without update any record in unsigned zone file after
test case3 # Occluded (glue) issue.
cd /var/opendnssec/unsigned/
r0ts-dns-ids01:/var/opendnssec/unsigned# sudo -u ods ods-signer clear
example.com
Internal zone information about example.com cleared
sudo -u ods ods-signer sign example.com
cd /var/opendnssec/signed
cat example.com
r0ts-dns-ids01:/var/opendnssec/signed# ldns-verify-zone
/var/opendnssec/signed/example.com
Zone is verified and complete
It seems signing of example.com working fine.
Note:- Is this means bug in opendnssec to handle such scenario? Any suggestion
please.
Thanks
-----Original Message-----
From: Havard Eidnes <[email protected]>
Sent: Monday, June 30, 2025 2:49 PM
To: Barshani Jalaludeen <[email protected]>
Cc: [email protected]
Subject: Re: [Opendnssec-user] opendnssec / ldns-verify-zone - A has
signature(s), but is occluded (or glue)
CAUTION: This email originated from outside Oivan. Do not click links or open
attachments unless you recognize the sender and know the content is safe.
We are getting the error while verify the opendnssec signed zone file
- " A has signature(s), but is occluded (or glue)"
Yep, I see what's going on.
Following is the test cases done on the opendnssec server. I am not
sure, it is a bug or do we need to follow some procedure to avoid this
issue. Please suggest.
In general, the remedy for this is to remove non-glue non-authoritative data
from your un-signed zone.
However... It seems that the operations you are performing, in particular going from #2
where the site1.example.com delegation has been removed to re-introducing
site1.example.com as a delegated zone in step #3 is changing the "glueness" of
the A records for
ns1.site1.example.com.
ns2.site1.example.com.
and it's entirely possible that OpenDNSSEC doesn't handle that correctly, and
instead retains the signatures for those A records which were (correctly)
computed in step #2.
A possible workaround is to remove both the delegation of site1.example.com and
the glue records, have OpenDNSSEC sign that zone, and then re-introduce both at
the same time and have OpenDNSSEC do a new signing operation.
Best regards,
- HÃ¥vard
_______________________________________________
Opendnssec-user mailing list
[email protected]
https://lists.opendnssec.org/mailman/listinfo/opendnssec-user
_______________________________________________
Opendnssec-user mailing list
[email protected]
https://lists.opendnssec.org/mailman/listinfo/opendnssec-user