nanog mailing list archives
Re: dns and software, was Re: Reliable Cloud host ?
From: William Herrin <bill () herrin us>
Date: Thu, 1 Mar 2012 11:58:57 -0500
On Thu, Mar 1, 2012 at 10:01 AM, Michael Thomas <mike () mtcc com> wrote:
On 03/01/2012 06:26 AM, William Herrin wrote:The even simpler approach: create an AF_NAME with a sockaddr struct that contains a hostname instead of an IPvX address. Then let connect() figure out the details of caching, TTLs, protocol and address selection, etc. Such a connect() could even support a revised TCP stack which is able to retry with the other addresses at the first subsecond timeout rather than camping on each address in sequence for the typical system default of two minutes.The effect of what you're recommending is to move all of this into the kernel, and in the process greatly expand its scope.
Hi Michael, libc != kernel. I want to move the action into the standard libraries where it can be done once and done well. A little kernel action on top to parallelize connection attempts where there are multiple candidate addresses would be gravy, but not required.
even if you did this, you'd be saddled with the same problem because nothing existing would use an AF_NAME.
It won't instantly fix everything so we shouldn't do it at all?
what if I want, say, asynchronous name resolution? What if I want to use SRV records? What if a new DNS RR comes around
Then you do it the long way, same as you do now. But in the 99% of the time that you're initiating a connection the "normal" way, you don't have to (badly) reinvent the wheel.
As far as I could tell, standard distos don't have libraries with lower level access to DNS (in my case, it needed to not block). Before positing a super-deluxe gethostbyxx that does addresses picking, etc, etc it would be better to lobby all of the distos to settle on a decomposed resolver library from which that and more could be built.
(A) Revised standards are -how- multiple OSes from multiple vendors coordinate the deployment of an identical capability. (B) Application programmers generally DO want the abstraction from "DNS" to "Name resolution." If there's an /etc/hosts name or a NIS name or a Windows name available, you ordinarily want to use it. You don't want to build extra code to search each name service independently any more than you want to build extra code to cycle through candidate addresses. Regards, Bill Herrin -- William D. Herrin ................ herrin () dirtside com bill () herrin us 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> Falls Church, VA 22042-3004
Current thread:
- Re: dns and software, was Re: Reliable Cloud host ?, (continued)
- Re: dns and software, was Re: Reliable Cloud host ? Owen DeLong (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Owen DeLong (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Owen DeLong (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 02)
- Re: dns and software, was Re: Reliable Cloud host ? Owen DeLong (Mar 02)
- Re: dns and software, was Re: Reliable Cloud host ? Leo Bicknell (Mar 02)
- Re: dns and software, was Re: Reliable Cloud host ? Matt Addison (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Mark Andrews (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Michael Thomas (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Jared Mauch (Mar 02)
- Re: dns and software, was Re: Reliable Cloud host ? Owen DeLong (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? William Herrin (Mar 01)
- Re: dns and software, was Re: Reliable Cloud host ? Joe Greco (Mar 01)