Support OPT NSID option in server, clean up EDNS handling

See RFC5001

Can exercise via dig with the +nsid option, or with +ednsopt=NSID[:value]

If the server gets an OPT containing NSID, include originz info (project URL) in response. But don't include the NSID request or response in the cache - this is sort of like the per-client udp size handling.

Some other server-side modifications relating to EDNS to cover while in there:

  • Omit all EDNS options (including NSID) from requests upstream. As another example, PADDING can be tested via dig +padding=<length>. Ref: https://datatracker.ietf.org/doc/html/rfc6891#section-6.2.6
  • If the client doesn't include an EDNS header, we shouldn't include one in the response either, test via dig +noedns. Interestingly filtered entries honor this while upstream queries (cached or not) do not, so it feels like a filtering issue on the response. It makes sense for the upstream query to contain EDNS even if the original client request didn't have it.
Assigned to
9 months ago
9 months ago
No labels applied.

~nickbp referenced this from #37 9 months ago

It's a bit quiet in here.