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

GRPC DNS Resource Record #139

Open
miekg opened this issue Apr 9, 2019 · 1 comment
Open

GRPC DNS Resource Record #139

miekg opened this issue Apr 9, 2019 · 1 comment
Assignees

Comments

@miekg
Copy link

miekg commented Apr 9, 2019

Greetings,

I want to start a discussion on the following proposal (before I create PR).

Thanks for your time.

GRPC record proposal

RFC 5507 lays down guidelines for how to use the DNS as a service that wants to store information in it. Quoting the Abstract :

Abstract

This note discusses how to extend the DNS with new data for a new
application. DNS extension discussions too often focus on reuse of
the TXT Resource Record Type. This document lists different
mechanisms to extend the DNS, and concludes that the use of a new DNS
Resource Record Type is the best solution.

The whole RFC is a good read, on the topic of prefixing a name, gRPC uses _grpc_config it says in section 3.2 that this creates problems with wildcards.

As such I want to propose we ask IANA for a new RR type with the following name and semantics:

GRPC <version:8 bits> <reserved: 16 bits> <txt-rdata>

Those 8 and 16 bit fields might be overkill and we can just copy the TXT record semantics verbatim.

We drop the _gprc_config prefix and just provision these GRPC records under the name we query. As we own the record type we can also drop the grpc-config= prefix used in the TXT RDATA, simplifying that a bit as well.

I'm willing to do the heavy lifting here and fix up the Go code (I'm most proficient in that
language) and fix a few other inefficiencies in that code path.

Which adds versioning to quickly sort and filter GRPC records. So this new record will only add
a two, one octet fields and for the rest follow the TXT semantics. I.e. intial record will look like:

www.example.org. IN GRPC 0 0 "<json payload>"

if you're initially looking up www.example.org.

@chwarr
Copy link
Contributor

chwarr commented Apr 11, 2019

Can you start a discussion thread on the grpcio mailing list about this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants