Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using DNS as a URN resolver

Tags:

urn

dns

I'm looking to either find or build a URN (Universal Resource Name) resolver, which would return 0 or more URIs for a given URN.

For example: urn:fooid:6e8bc430-9c3a-11d9-9669-0800200c9a66:foo might resolve to http://www.example.com/fooservice/6e8bc430-9c3a-11d9-9669-0800200c9a66/foo. The service would be aware of fooid-style URNs and know how to look-up the base-URL (http://www.example.com/fooservice/) from the GUID and convert the colons to slashes to make a complete URI.

I've searched for "URN resolvers" but there's not much out there. Then it occurred to me that--since DNS is all about quickly resolving addresses in a scalable and distributed fashion, and since it has been used for other applications (see here)--maybe it could be used to do the base-URL lookup part.

Has this been done before, and would it be a practical alternative to just using a conventional database?

like image 960
Chris Wenham Avatar asked Mar 29 '11 16:03

Chris Wenham


1 Answers

To do this in DNS you would need to use NAPTR records as part of a Dynamic Delegation Discovery System Application, as defined in RFC 3401, RFC 3402 and RFC 3403.

For URN resolution in particular, also see RFC 3404 and RFC 3405 which builds on the previous three to provide a standard way to map URNs to something else.

Ideally if this was a global general-purpose URN you would request a delegation of fooid within the urn.arpa. domain space.

Take a look at IANA's website to see the existing registered URN namespaces.

like image 84
Alnitak Avatar answered Oct 01 '22 06:10

Alnitak