Changes/NetworkManagerBridging

From FedoraProject

< Changes(Difference between revisions)
Jump to: navigation, search
(Change Proposal ready for 2013-07-31 FESCo meeting (#1151))
 
(2 intermediate revisions by one user not shown)
Line 16: Line 16:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/20|Fedora 20]]  
 
* Targeted release: [[Releases/20|Fedora 20]]  
* Last updated: 2013-07-17
+
* Last updated: 2013-10-14
 
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
 
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
 
Bugzilla states meaning as usual:
 
Bugzilla states meaning as usual:
Line 25: Line 25:
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
-->
 
-->
* Tracker bug: <will be assigned by the Wrangler>
+
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=998568 #998568]
 +
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 66: Line 67:
 
NetworkManager now supports bridging functionality and cooperates better with existing bridging tools and configurations.  
 
NetworkManager now supports bridging functionality and cooperates better with existing bridging tools and configurations.  
  
[[Category:ChangeReadyForFesco]]
+
[[Category:ChangeAcceptedF20]]
 
<!-- When your change proposal page is completed and ready for review and announcement -->
 
<!-- When your change proposal page is completed and ready for review and announcement -->
 
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
 
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 16:13, 14 October 2013

Contents

[edit] NetworkManager Bridging Support

[edit] Summary

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

[edit] Owner

[edit] Current status

  • Targeted release: Fedora 20
  • Last updated: 2013-10-14
  • Tracker bug: #998568
  • Percentage of completion: 100%

[edit] Detailed Description

A bridge connects two or more physical or virtual network interfaces to allow network traffic to flow between the two interfaces at a low level. Bridging is commonly used to connect Virtual Machines to the outside world; a bridge interface is created, to which a physical interface (typically ethernet) is assigned as a slave, and a virtual interface (typically TAP) is created and also assigned to the bridge as a slave, and then given to the Virtual Machine. Thus traffic from one or more VMs can be combined and sent out of the machine via the physical interface.

This setup is currently done either manually using ifcfg files and ifup/ifdown, or by a tool like libvirt/netcf. NetworkManager should be able to configure bridge interfaces and their slaves with the same functionality as provided by libvirt, and should recognize and not disrupt existing bridge connections when it starts up.

[edit] Benefit to Fedora

NetworkManager will provide a unified API for network configuration, giving a more consistent user experience. Users setting up bridged connections who also run NetworkManager will not need to take additional action to determine whether the bridge should be controlled by libvirt or by NetworkManager as the two will cooperate.

[edit] Scope

  • Proposal owners: dcbw
  • Other developers: This feature requires changes to nm-applet (done), nm-connection-editor (done), gnome-shell, gnome-control-center (in-progress) and KDE counterparts to expose bridge interfaces and their connection information in the user interface. NetworkManager also needs updates to implement the proposed changes (mostly done).

[edit] Upgrade/compatibility impact

NetworkManager will begin to manage bridge connections defined by existing ifcfg files, and will pick up these interfaces as non-destructively as possible. It will not "down" the interface and reconfigure it, but will read the existing configuration of the bridge interface and bridge ports and operate with that configuration.

[edit] How To Test

Ensure that a bridge interface created by libvirt/netcf or the system initscripts is recognized by NetworkManager but not changed or taken down until explicit actions by the user are taken (eg, 'nmcli' or the network applet is used to change connections or deactivate bridge port interfaces).

[edit] User Experience

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

[edit] Dependencies

For non-GUI installs, the changes should be limited to NetworkManager and nmcli, 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.

For GUI environments like GNOME or KDE, the bridge interface will not appear in configuration utilities (like nm-connection-editor or gnome-control-center) or network applets (gnome-shell, etc) until those components add explicit support for bridge connections, but nmcli will still be able to start/stop them from a terminal.

[edit] Contingency Plan

  • Contingency mechanism: Ensure NetworkManager only controls bridge interfaces it is told to control via NM_CONTROLLED in ifcfg files. Tools that need bridging would have to continue to use the same tools as before.
  • Contingency deadline: ?
  • Blocks release? No

[edit] Documentation

Documentation will be drafted at Networking/Bridging.

[edit] Release Notes

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