From Fedora Project Wiki
No edit summary
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== NetworkManager Bonding Support ==
= NetworkManager Bonding Support =


== Summary ==
== Summary ==


NetworkManager should be able to configure bonding interfaces consisting of
NetworkManager should be able to configure bond master interfaces with commonly used options and recognize their existing configuration on startup without disrupting their operation.
wired and wireless ethernet devices. It should be able to fulfill server,
desktop and laptop bonding use cases.


== Owner ==
== Owner ==
Line 11: Line 9:
* Name: [[User:Pavlix|Pavel Šimerda]]
* Name: [[User:Pavlix|Pavel Šimerda]]
* Email: psimerda at redhat.com
* Email: psimerda at redhat.com
* Name: [[User:dcbw|Dan Williams]]
* Email: dcbw at redhat dot com


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


* Targeted release: [[Releases/19|Fedora 19]]
* Targeted release: [[Releases/20|Fedora 20]]
* Last updated: 2013-01-08
* Last updated: 2013-03-19
* Percentage of completion: 40%
* Percentage of completion: 50%


== Detailed description ==
== Detailed description ==


The current bonding configuration in NetworkManager doesn't always work. The purpose of this Fedora feature is to implement reliable bonding configuration infrastructure in NetworkManager that would
NetworkManager's existing support for bond interfaces covers a limited number of use-cases and can conflict with existing bonding configurations created by tools like libvirt. The purpose of this Fedora feature is to implement more flexible bonding infrastructure in NetworkManager to support an expanded number of use-cases and to be more cooperative with other users of bonding.
have the following features:


* Reliable wired and wireless ethernet bonding
Support will be added to NetworkManager to detect the existing configuration of a bond interface and its slaves and to seamless "take over" that connection without disrupting it.  Even if the existing configuration is not backed by ifcfg files on-disk, NetworkManager will leave that configuration on the interface unless told to change it by the user via GUI or CLI tools.  Additional bond interface configuration will be added to expand the use-cases and hardware that NetworkManager can configure (eg primary, use_carrier, xmit_hash_policy, etc).
* Configuration using keyfiles


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


Bonding is necessary for enterprise virtualization. There is also a common laptop usage for bonding wifi and ethernet together to present the laptop computer under a single MAC address to the local network and thus aquire just one MAC address regardless it is connected through cable and wifi.
Bonding is necessary for many enterprise setups, including virtualization and fail-over. Other use-cases include acquiring just one IP address for a laptop that contains both wifi and ethernet interfaces connected to the same network to ensure applications are affected by switching which interface is connected to the network.  These changes will ensure a smoother, less confusing user experience for those users who run NetworkManager and use bond interfaces.


== Scope ==
== Scope ==


This feature requires changes to NetworkManager, nm-applet, nm-connection-editor,
This feature requires changes to nm-applet, nm-connection-editor, gnome-shell, gnome-control-center and KDE counterparts to expose bond interfaces and their connection information in the user interface.  NetworkManager also needs updates to implement the proposed changes.
gnome-shell, gnome-control-center and KDE counterparts.


== How To Test ==
== How To Test ==


Configure a bonding interface and its slaves using GUI or CLI. Check using <code>ip link</code> or other tool. Test that the bonding actually works.
Ensure that a bond interface created by libvirt/netcf or the system initscripts is recognized by NetworkManager but not touched by it until either 'nmcli' or the network applet is used to change connections or deactivate slave interfaces.
 
Furthermore, check that new bond interface options (like xmit_hash_policy or primary) carry over to sysfs when set in the configuration, either through nm-connection-editor or through ifcfg files.


== User Experience ==
== User Experience ==


GUI and CLI tools.
Both the UI tools (applets, connection editors, etc) and the CLI tools (nmcli) will be updated for the enhanced bonding configuration options.  Users will see bond interfaces in network indicators and be able to inspect their status through the applets or the command-line tools.


== Dependencies ==
== Dependencies ==


NetworkManager must only use bonding when configured so and it must only take over bond configuration if requested so by administrator or by another tool. Therefore libvirt and other tools that rely on bonding can be ported to the new functionality at any time.
The changes should be limited to NetworkManager and it's associated tools, and should not require changes to libvirt, netcf, initscripts, or other external tools.  NetworkManager should be able to cooperate with the configurations set up by these tools.


== Contingency Plan ==
== Contingency Plan ==


Don't support bonding in NetworkManager. Tools that need bonding would have to continue to use the same tools as before.
Ensure NetworkManager only controls bond interface it is told to control via NM_CONTROLLED in ifcfg files. Tools that need bonding would have to continue to use the same tools as before.


== Documentation ==
== Documentation ==
Line 57: Line 56:
== Release Notes ==
== Release Notes ==


NetworkManager now supports ethernet bonding.
NetworkManager now supports expanded bonding functionality and cooperates better with existing bonding tools and configurations.


== Comments and Discussion ==
== Comments and Discussion ==
Line 63: Line 62:
* See [[Talk:Features/NetworkManagerBonding]]
* See [[Talk:Features/NetworkManagerBonding]]


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

Latest revision as of 17:59, 17 July 2013

NetworkManager Bonding Support

Summary

NetworkManager should be able to configure bond master interfaces with commonly used options and recognize their existing configuration on startup without disrupting their operation.

Owner

Current status

  • Targeted release: Fedora 20
  • Last updated: 2013-03-19
  • Percentage of completion: 50%

Detailed description

NetworkManager's existing support for bond interfaces covers a limited number of use-cases and can conflict with existing bonding configurations created by tools like libvirt. The purpose of this Fedora feature is to implement more flexible bonding infrastructure in NetworkManager to support an expanded number of use-cases and to be more cooperative with other users of bonding.

Support will be added to NetworkManager to detect the existing configuration of a bond interface and its slaves and to seamless "take over" that connection without disrupting it. Even if the existing configuration is not backed by ifcfg files on-disk, NetworkManager will leave that configuration on the interface unless told to change it by the user via GUI or CLI tools. Additional bond interface configuration will be added to expand the use-cases and hardware that NetworkManager can configure (eg primary, use_carrier, xmit_hash_policy, etc).

Benefit to Fedora

Bonding is necessary for many enterprise setups, including virtualization and fail-over. Other use-cases include acquiring just one IP address for a laptop that contains both wifi and ethernet interfaces connected to the same network to ensure applications are affected by switching which interface is connected to the network. These changes will ensure a smoother, less confusing user experience for those users who run NetworkManager and use bond interfaces.

Scope

This feature requires changes to nm-applet, nm-connection-editor, gnome-shell, gnome-control-center and KDE counterparts to expose bond interfaces and their connection information in the user interface. NetworkManager also needs updates to implement the proposed changes.

How To Test

Ensure that a bond interface created by libvirt/netcf or the system initscripts is recognized by NetworkManager but not touched by it until either 'nmcli' or the network applet is used to change connections or deactivate slave interfaces.

Furthermore, check that new bond interface options (like xmit_hash_policy or primary) carry over to sysfs when set in the configuration, either through nm-connection-editor or through ifcfg files.

User Experience

Both the UI tools (applets, connection editors, etc) and the CLI tools (nmcli) will be updated for the enhanced bonding configuration options. Users will see bond interfaces in network indicators and be able to inspect their status through the applets or the command-line tools.

Dependencies

The changes should be limited to NetworkManager and it's associated tools, and should not require changes to libvirt, netcf, initscripts, or other external tools. NetworkManager should be able to cooperate with the configurations set up by these tools.

Contingency Plan

Ensure NetworkManager only controls bond interface it is told to control via NM_CONTROLLED in ifcfg files. Tools that need bonding would have to continue to use the same tools as before.

Documentation

Documentation will be drafted at Networking/Bonding.

Release Notes

NetworkManager now supports expanded bonding functionality and cooperates better with existing bonding tools and configurations.

Comments and Discussion