From Fedora Project Wiki

mNo edit summary
 
(69 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Fedora networking is done with the following components:
Networking features are nowadays important for virtually all users of Fedora and other
linux distributions. Fedora's main network use cases are laptops, desktops, servers
and virtualization. Fedora could also be used for routers, becoming part of networking
infrastructure.
 
TODO: Move any QA related information to [[QA/Networking]].
 
== Current topics ==
 
* [[Networking/TODO|Fedora Networking TODO List]]
 
== Networking concepts and configuration ==
 
Connectivity:
 
* [[/Ethernet|Ethernet]]
* [[/Addressing|Addressing]]
* [[/Routing|Routing]]
* [[/Bridging|Bridging]]
* [[/VLAN|VLAN]]
* [[/Bonding|Bonding]] / [[Networking/Teaming|Teaming]]
* [[/Tunneling|Tunneling]]
 
User experience:
 
* [[/Hostname|Hostname]]
* [[/NameResolution|Name Resolution]], [[Networking/NameResolution/DNS|DNS]], [[Networking/NameResolution/DNSSEC|DNSSEC]]
* [[/LaptopAndDesktop|Laptop and desktop configuration]]
* [[/ServerSoftware|Server software operations]]
* [[/ClientSoftware|Client software operations]]
 
Black magic:
 
* [[/NAT|TCP, UDP and ICMP NAT]]
* [[/Traffic control|Traffic control]]
* [[/Dependencies|Network connectivity dependencies]]
 
== Important networking projects ==


* Kernel
* Kernel
Line 6: Line 43:
* ISC DHCP
* ISC DHCP


== Networking problems ==
== Known networking bugs ==
 
I moved all the information about known networking bugs to a separate article: [[Networking/Bugs|Known networking bugs]]
 
== Pieces of the puzzle ==


Only platform bugs that can influence various application and/or the overall behavior of the system belong here.
* Interface for static IPv4 and IPv6 configuration (kernel)
* Interface for bridging/bonding/vlan configuration (kernel)
* Interface for DNS configuration (/etc/resolv.conf)
* DHCP client implementation for IPv4 automatic configuration (dhclient)
* RA client implementation for IPv6 address configuration (kernel, with workarounds in NetworkManager)
* RDNSS/DNSSL client implementation for IPv6 DNS configuration (NetworkManager through kernel, with workarounds)
* DHCP client implementation for IPv6 address/DNS/other configuration (dhclient)
* IPsec, VPN and tunneling implementations (various daemons)
* A network management daemon to properly manage all of the above together with user configuration (NetworkManager)
* Networking API for applications (glibc, with many problems)


=== Kernel ===
I may have missed something but the objective is to show that networking is rather complex and the various tools need
to be centrally managed by a network management service in order to make users and administrators happy.


* IPv6: Kernel doesn't cache RDNSS and DNSSL
You can only live without network configuration daemons if you use static IP configuration and you avoid encrypted
* IPv6: Kernel ignores RA router preference
wireless networks at the same time. You can live with just wpa_supplicant and dhclient only if you are used to do
* IPv6: Tempaddr cycling breaks even TCP connections prematurely
most of the stuff yourself. Virtually all linux distributions now converge to network solutions based on network
configuration daemons.


=== libnl ===
Examples of such daemons (without feature comparison):


* rtnl_link_bond_add() succeeds when device already exists
* NetworkManager
* connman (MeeGo)
* WICD
* netifd (OpenWRT)
* netcfg (Archlinux)
* wicked
* systemd-networkd
* pyroute2 (?)


=== iproute ===
Yeah, it's a lot of fun writing new and new network configuration daemons.


* iproute won't distinguish bridges and bonds
== Fedora feature pages ==


=== GLIBC ===
=== F20 ===


* IPv4: [https://bugzilla.redhat.com/show_bug.cgi?id=721350 <code>getaddrinfo("127.0.0.1", ...)</code> fail with some AI_ADDRCONFIG configurations]
* [[Features/NetworkManagerBridging]]
* IPv6: [https://bugzilla.redhat.com/show_bug.cgi?id=808147 Fedora 808147 - <code>getaddrinfo("::1", ...)</code> fails with some configurations of AI_ADDRCONFIG]
* [[Features/NetworkManagerBonding]]
* IPv6: <code>getaddrinfo("fe80::1234:56ff:fe78:90%eth0", ...)</code> also fails as above
* [[Features/NetworkManagerCLIAddConnection]]
* IPv6: [https://bugzilla.redhat.com/show_bug.cgi?id=843054 GLIBC's nsswitch doesn't support overriding <code>getaddrinfo</code> which is requred to resolve link-local IPv6 addresses]
* [[Features/FixNetworkNameResolution]]
* DNS: [http://sourceware.org/bugzilla/show_bug.cgi?id=2099 <code>getaddrinfo</code> doesn't support SRV records]
* [[Features/NetworkManagerNameBasedConfiguration]]


=== dhclient ===
=== Unknown ===


* Fixed: [https://bugzilla.redhat.com/show_bug.cgi?id=662254 <code>dhclient</code> fails with large values of dhcp-renawal-time, notably the infinity (0xffffffff) value]
* [[Features/NetworkManagerAdvancedIPv6]]
* [[Features/DualstackNetworkTestingTools]]
* [[Features/ZeroconfNetworking]]
* [[Features/NetworkManagerRuntimeConfigurationAPI]]
* [[Features/NetworkManagerForInitramfs]]
* [[Features/NetworkManagerTestSuites]]
* [[Features/NetworkManagerTeaming]]


=== Avahi ===
== Testing ==


* [https://bugzilla.redhat.com/show_bug.cgi?id=719178 Avahi's ''nss-mdns'' returns link-local IPv6 addresses ''without'' scope_id and applications fail to connect]
* [[QA/IPv6|IPv6]]
* [https://bugzilla.redhat.com/show_bug.cgi?id=821127 Avahi's IPv6 support is disabled by default (this has been resolved in the past)]


=== NetworkManager ===
== Contacts ==


* Various bugs in [[Tools/NetworkManager|NetworkManager]]
* Name: [[User:pavlix|Pavel Šimerda]]
* Email: psimerda@redhat.com, pavlix@pavlix.net
* IRC: pavlix, #nm at freenode


=== Testing tools ===
Use the above contacts or [[Talk:Networking]] for discussions about
[[Networking]] page, its subpages, related pages and covered topics. Add yourself
to the contacts if you want to help me maintaining this set of
information resources.


* ping doesn't support IPv6 (you have to use ping6)
----
[[category:Networking| ]]

Latest revision as of 21:31, 26 April 2020

Networking features are nowadays important for virtually all users of Fedora and other linux distributions. Fedora's main network use cases are laptops, desktops, servers and virtualization. Fedora could also be used for routers, becoming part of networking infrastructure.

TODO: Move any QA related information to QA/Networking.

Current topics

Networking concepts and configuration

Connectivity:

User experience:

Black magic:

Important networking projects

Known networking bugs

I moved all the information about known networking bugs to a separate article: Known networking bugs

Pieces of the puzzle

  • Interface for static IPv4 and IPv6 configuration (kernel)
  • Interface for bridging/bonding/vlan configuration (kernel)
  • Interface for DNS configuration (/etc/resolv.conf)
  • DHCP client implementation for IPv4 automatic configuration (dhclient)
  • RA client implementation for IPv6 address configuration (kernel, with workarounds in NetworkManager)
  • RDNSS/DNSSL client implementation for IPv6 DNS configuration (NetworkManager through kernel, with workarounds)
  • DHCP client implementation for IPv6 address/DNS/other configuration (dhclient)
  • IPsec, VPN and tunneling implementations (various daemons)
  • A network management daemon to properly manage all of the above together with user configuration (NetworkManager)
  • Networking API for applications (glibc, with many problems)

I may have missed something but the objective is to show that networking is rather complex and the various tools need to be centrally managed by a network management service in order to make users and administrators happy.

You can only live without network configuration daemons if you use static IP configuration and you avoid encrypted wireless networks at the same time. You can live with just wpa_supplicant and dhclient only if you are used to do most of the stuff yourself. Virtually all linux distributions now converge to network solutions based on network configuration daemons.

Examples of such daemons (without feature comparison):

  • NetworkManager
  • connman (MeeGo)
  • WICD
  • netifd (OpenWRT)
  • netcfg (Archlinux)
  • wicked
  • systemd-networkd
  • pyroute2 (?)

Yeah, it's a lot of fun writing new and new network configuration daemons.

Fedora feature pages

F20

Unknown

Testing

Contacts

  • Name: Pavel Šimerda
  • Email: psimerda@redhat.com, pavlix@pavlix.net
  • IRC: pavlix, #nm at freenode

Use the above contacts or Talk:Networking for discussions about Networking page, its subpages, related pages and covered topics. Add yourself to the contacts if you want to help me maintaining this set of information resources.