Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Utilising private EDE error codes to provide finer granularity to DNS UPDATE responses #68

Open
2 of 5 tasks
johanix opened this issue Sep 23, 2024 · 2 comments
Open
2 of 5 tasks
Assignees
Labels
enhancement New feature or request priority This is important to get fixed

Comments

@johanix
Copy link
Owner

johanix commented Sep 23, 2024

  • Add support for private EDE codes to the code base
  • Set a suitable EDE code on select error responses in parent (for delegation synchronization case).
  • Set a suitable EDE code on select error responses in auth server (for updates to auth zone data).
  • Check for EDE messages in UPDATE responses and sore them in a suitable structure
  • Present EDE data when relevant.
@johanix johanix added enhancement New feature or request priority This is important to get fixed labels Sep 23, 2024
@johanix
Copy link
Owner Author

johanix commented Sep 23, 2024

This mostly works fine. However there is presently a strange problem where adding an EDE in the failure path of zd.TrustUpdate(). This code (in tdns/updateresponder.go) works fine:

if zd.Options["frozen"] {
	log.Printf("UpdateResponder: zone %s is frozen (i.e. updates not possible). Ignoring update.",
		zd.ZoneName, qname)
	m.SetRcode(r, dns.RcodeRefused)
	AttachEDEToResponse(m, EDEZoneFrozen)
	w.WriteMsg(m)
	return nil
}

But this code (later in the same function) cause a FORMERR in the receiving client end:

err = zd.TrustUpdate(r, dur.Status)
if err != nil {
	zd.Logger.Printf("Error from TrustUpdate(): %v", err)
	m.SetRcode(m, int(dur.Status.ValidationRcode))
	AttachEDEToResponse(m, EDESig0KeyKnownButNotTrusted)
	w.WriteMsg(m)
	return err
}

@johanix johanix self-assigned this Sep 27, 2024
@johanix
Copy link
Owner Author

johanix commented Oct 3, 2024

The FORMERR is apparently a result of having more than one OPT in the additional section. Not yet clear how that happens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority This is important to get fixed
Projects
None yet
Development

No branches or pull requests

1 participant