Reproposed F19 Feature: Fix Network Name Resolution [Was: DualstackNetworking]
Jaroslav Reznik
jreznik at redhat.com
Wed Jan 16 14:11:32 UTC 2013
As the Feature was renamed and the content of Feature has been extended
as requested by FESCo, re-announcing it to the community for re-review.
See https://fedorahosted.org/fesco/ticket/986
= Features/Fix Network Name Resolution =
https://fedoraproject.org/wiki/Features/FixNetworkNameResolution
* Detailed description
Currently the getaddrinfo() function doesn't work as it was desinged.
Many of its features are buggy and cannot be used without extensive
workarounds. Many software packages are using getaddrinfo() with such
workarounds. Many can trigger its failures. And many packages that don't
use getaddrinfo() will be ported in the near future.
- Rationale
We are submitting this bug fixing effort as a Feature because:
It is a high-impact change that will (positively) affect allmost all
networking software
Developers will be able to use getaddrinfo() without ugly workarounds
for new code
We are going to publish guidelines for proper getaddrinfo() usage
Documentation for getaddrinfo() bugs will be availabe
Possible workarounds will be offered for backward compatibility
Comments and errata will be sent to standards organizations
We want to recieve critical response during the whole process
It will be part of the next networking testweek
- Problem statement
The behavior of getaddrinfo() is often nonstandard, undocumented,
surprising, or just plain wrong. We already indentified a number of
problems. The most prominent examples are here.
getaddrinfo() may return duplicate or even wrong addresses from
/etc/hosts
getaddrinfo() with NULL servname may return duplicate addresses
getaddrinfo() with AI_PASSIVE may still return address list not
suitable for bind()
getaddrinfo() with AI_ADDRCONFIG may fail to translate literal
addresses
getaddrinfo() with AI_ADDRCONFIG may fail to resolve /etc/hosts
addresses
getaddrinfo() with AI_ADDRCONFIG may send unwanted AAAA queries
getaddrinfo() has a bad choice of default flags</code>
Whether or not the problematic actually occurs depends on /etc/hosts
configuration, /etc/resolv.conf configuration, getaddrinfo() input
parameters, runtime kernel network interface configuration, and more.
While testing the known bugs or reading the source code, more and more
bugs are discovered.
Bug reports related to getaddrinfo() can be found upstream:
http://sourceware.org/bugzilla/buglist.cgi?quicksearch=getaddrinfo
-Affected software
The above problems affect software that wants to use getaddrinfo() to:
Get parameters for connect() or sendto() to start communicating
Get parameters for bind() to listen on specific addresses
Build IP address based accesslists
Perform name resolution for other purposes
Although it would be nice to also test and fix all software in Fedora using
getaddrinfo(), that is not feasible. Therefore we are going to concentrate on
checking and fixing the GNU C library, checking and fixing the most important
toolkits dealing with networking, and documenting a set of guidelines for
daemons and application software.
Fedora bugs related to dualstack networking including name resolution
problems should be added to the following tracker bug:
http://bugzilla.redhat.com/show_bug.cgi?id=883152
----- Original Message -----
> As decided by FESCo on 2012-12-05 meeting, all proposed Features are
> required
> to pass through the community review by announcing them on
> devel-announce list.
> FESCo votes on new features no sooner than a week from the
> announcement.
>
> = Features/DualstackNetworking =
> https://fedoraproject.org/wiki/Features/DualstackNetworking
>
> * Detailed description
> Fedora supports dualstack global networking. That means the computer
> with
> Fedora is connected to internet using both IPv4 and IPv6 protocols.
> But many
> important system services and applications either don't do IPv6, do
> it
> incorrectly, or don't cope with various network conditions.
>
> Unfortunately, while trying to improve IPv6 support, some IPv4 use
> cases became
> broken as well. That's why the goal of this feature is not only to
> support IPv4,
> but to support all possible real-world cases.
>
> Dualstack-ready software must cope with all possible scenarios
> including
> IPv4-only connectivity, IPv6-only connectivity and dual connectivity.
> The software must also cope with node-local (aka localhost)
> networking, which
> as been used by software for decades.
>
> Though it would be nice to have all applications in Fedora fixed to
> work in
> any of the scenarios, it is not feasible to test that. Therefore this
> feature
> is about major software used in servers, desktops and laptops. The
> list of such
> applications will be completed over the time.
>
> Bugs related to dualstack networking should be added to the following
> tracker
> bug:
>
> http://bugzilla.redhat.com/show_bug.cgi?id=883152
>
> Also see: https://bugzilla.redhat.com/show_bug.cgi?id=ipv6blocker
More information about the devel-announce
mailing list