From Fedora Project Wiki
No edit summary
Line 1: Line 1:
== Dualstack Networking ==
== Dualstack Networking ==


=== Summary ===
== Summary ==


Support proper dual stack networking. All major system services and
Support proper dual stack networking. All major system services and
Line 8: Line 8:
proper use of getaddrinfo().
proper use of getaddrinfo().


=== Owner ===
== Owner ==


* Name: [[User:Pavlix|Pavel Šimerda]]
* Name: [[User:Pavlix|Pavel Šimerda]]
Line 19: Line 19:
* Email: tore at fud.no
* Email: tore at fud.no


=== Current status ===
== Current status ==


* Targeted release: [[Releases/19|Fedora 19]]
* Targeted release: [[Releases/19|Fedora 19]]


=== Detailed description ===
== 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.  
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.  
Line 39: Line 39:
Also see: https://bugzilla.redhat.com/show_bug.cgi?id=ipv6blocker
Also see: https://bugzilla.redhat.com/show_bug.cgi?id=ipv6blocker


=== Benefit to Fedora ===
== Benefit to Fedora ==


One of Fedora's goals is to be a modern linux distribution that will work in modern environments. For this to be achieved, proper IPv4-only support and proper dualstack support is a MUST. IPv6-only use cases are rare but may become more common at any time. It's better to be prepared for those, too.
One of Fedora's goals is to be a modern linux distribution that will work in modern environments. For this to be achieved, proper IPv4-only support and proper dualstack support is a MUST. IPv6-only use cases are rare but may become more common at any time. It's better to be prepared for those, too.


=== Scope ===
== Scope ==


Any software commonly used on day-to-day basis should be correctly handling IPv4-only, IPv6-only and dualstack use cases.
Any software commonly used on day-to-day basis should be correctly handling IPv4-only, IPv6-only and dualstack use cases.
Line 65: Line 65:
* <code>tcpdump</code> doesn't support IPv6 hostnames
* <code>tcpdump</code> doesn't support IPv6 hostnames


=== How to test ===
== How to test ==


This is the most difficult part. We are going to combine the following approaches to testing:
This is the most difficult part. We are going to combine the following approaches to testing:
Line 73: Line 73:
* Specific tests, e.g. for <code>getaddrinfo()</code>
* Specific tests, e.g. for <code>getaddrinfo()</code>


=== User experience ===
== User experience ==


Users currently experience networking problems in various environments even during the most basic use of their system because of principal problems in the distribution. These problems would go away.
Users currently experience networking problems in various environments even during the most basic use of their system because of principal problems in the distribution. These problems would go away.


=== Dependencies ===
== Dependencies ==


Not known.
Not known.


=== Contingency plan ===
== Contingency plan ==


This feature is about fixing all important parts of the distribution. We do not expect the required changes to negatively affect the rest of the packages. But if any problems occur, we are ready to help fixing them before the respective version is released. As a last resort, any problematic change can be reverted.
This feature is about fixing all important parts of the distribution. We do not expect the required changes to negatively affect the rest of the packages. But if any problems occur, we are ready to help fixing them before the respective version is released. As a last resort, any problematic change can be reverted.


=== Documentation ===
== Documentation ==


* [[Networking/Addressing]]
* [[Networking/Addressing]]
* [[Networking/NameResolution]]
* [[Networking/NameResolution]]


=== Release notes ===
== Release notes ==


Dualstack networking will be fully supported and glibc and other packages will be tested for not including fundamental design flaws and important bugs.
Dualstack networking will be fully supported and glibc and other packages will be tested for not including fundamental design flaws and important bugs.


=== Comments and discussions ===
== Comments and discussions ==


See [[Talk:Features/DualstackNetworking]]
See [[Talk:Features/DualstackNetworking]]


[[Category:FeatureReadyForWrangler]]
[[Category:FeatureReadyForWrangler]]

Revision as of 15:22, 2 January 2013

Dualstack Networking

Summary

Support proper dual stack networking. All major system services and user applications should work with both IPv4 and IPv6. All of them should also be able to cope with multiple addresses per hostname via proper use of getaddrinfo().

Owner

Current status

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

Benefit to Fedora

One of Fedora's goals is to be a modern linux distribution that will work in modern environments. For this to be achieved, proper IPv4-only support and proper dualstack support is a MUST. IPv6-only use cases are rare but may become more common at any time. It's better to be prepared for those, too.

Scope

Any software commonly used on day-to-day basis should be correctly handling IPv4-only, IPv6-only and dualstack use cases.

Libraries:

  • glibc: name resolution must work properly
  • glib: provides networking API for applications

System services:

  • knfsd

Applications:

Network testing tools:

  • ping doesn't support IPv6 addresses nor hostnames
  • tcpdump doesn't support IPv6 hostnames

How to test

This is the most difficult part. We are going to combine the following approaches to testing:

  • Everyday use of Fedora in various network environments
  • Testing the tracked bug reports
  • Specific tests, e.g. for getaddrinfo()

User experience

Users currently experience networking problems in various environments even during the most basic use of their system because of principal problems in the distribution. These problems would go away.

Dependencies

Not known.

Contingency plan

This feature is about fixing all important parts of the distribution. We do not expect the required changes to negatively affect the rest of the packages. But if any problems occur, we are ready to help fixing them before the respective version is released. As a last resort, any problematic change can be reverted.

Documentation

Release notes

Dualstack networking will be fully supported and glibc and other packages will be tested for not including fundamental design flaws and important bugs.

Comments and discussions

See Talk:Features/DualstackNetworking