httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Reid" <>
Subject Re: IPv6 capability and name lookup cost
Date Fri, 06 Sep 2002 00:20:30 GMT
+1 for this and apache wide config flag.


> (this discussion assumes Apache has IPv6 capability)
> There are some situations during normal web server operation where
> resolver calls are made to find addresses associated with names and we
> have no clue whether or not the name has an IPv6 address associated with
> it.  Forward proxy is a good example of this.  apr_sockaddr_info_get()
> will return all addresses associated with the name, and some existing
> resolvers first do IPv4 name lookup followed by IPv6 name lookup in
> order to implement this.  The lack of overlap results in higher elapsed
> time; the inability to bundle the queries in a single flow results in
> higher kernel/library CPU.  A resolver cache can help with this.
> In most cases, there is no IPv6 address.  In some cases where there is
> an IPv6 address, using the IPv4 address would be sufficient.
> A useful performance improvement can be achieved by allowing the
> administrator to select the following algorithm:
>   lookup IPv4
>   if at least one IPv4 address was found, we're done
>   lookup IPv6
> The benefit is clear.  The drawback is that if IPv4 addresses were found
> but those addresses are not usable (e.g., IPv4 addresses disabled on
> that machine but admin didn't remove from DNS), we wouldn't then be able
> to try the IPv6 addresses (without much more work).  (But the admin
> chose the behavior so what do I care :) )
> The bulk of the implementation would be in APR (new flag to
> apr_sockaddr_info_get()), but Apache would have a configuration
> mechanism to allow the administrator to turn on the flag.  Up for
> discussion would be if there is an Apache-wide preference or whether
> different components/modules (core, mod_proxy_foo, etc.) should have
> separate
> knobs.  Personally I'd prefer an Apache-wide preference which would be
> respected by core and by any modules
> distributed by us.  Any 3rd-party modules could/should respect the
> configuration too.
> Comments?
> (If APR has no IPv6 capability, the new processing flag would be ignored
> since we're only going to do the IPv4
> lookup anyway.)
> -- 
> Jeff Trawick

View raw message