From Fedora Project Wiki
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= NetworkManager Bridging Support =


= Feature Name =
== Summary ==
NetworkManager bridging support


== Summary ==
NetworkManager should be able to configure bridge interfaces with commonly used options and recognize their existing configuration on startup without disrupting their operation.
NetworkManager should support setting up and controlling bridge devices and bonded connections


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


== Current status ==
== Current status ==
* Targeted release: [[Releases/13 | Fedora 13 ]]  
 
* Last updated: 2009-12-09
* Targeted release: [[Releases/19|Fedora 19]]  
* Percentage of completion: 0%
* Last updated: 2013-03-12
* Percentage of completion: 50%


== Detailed Description ==
== Detailed Description ==
Bridging is about connecting 2 or more network devices to make network traffic automatically go from the one to the other. The network devices can be physical or virtual.


Bridging is a commonly used technology to connect VMs to the outside world: create a tap device on the host, create a bridge between the physical nic and the tap, let the vm use the tap device as its nic. So far, this setup is handled by libvirt. This is the main driving use case for this feature.
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.


Bonding is about glueing two network connections together and treat them as a single connection with bigger bandwidth. This happens at the ethernet level and thus only works if the two connections are to the same network. Bonding has uses mainly on servers, and is more of a byproduct in this feature, since the infrastructure for bridging will likely also support bonding.
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.


== Benefit to Fedora ==
== Benefit to Fedora ==
NetworkManager becomes a more central point for network configuration, giving a more unified user experience. Virtualization on Fedora will be easier to set up.
 
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.


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


== How To Test ==
== How To Test ==
TBD
 
Ensure that a bridge 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 bridge port interfaces.


== User Experience ==
== User Experience ==
TBD
 
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.


== Dependencies ==
== Dependencies ==
libvirt may need to be adapted. See also [[Features/Shared_Network_Interface]].
 
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 bridging in NetworkManager, virtualization will continue to rely on libvirt for this purpose.
 
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.


== Documentation ==
== Documentation ==
TBD
 
Documentation will be drafted at [[Networking/Bridging]].


== Release Notes ==
== Release Notes ==
TBD
 
NetworkManager now supports bridging functionality and cooperates better with existing bridging tools and configurations.


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
[[Category:FeaturePageIncomplete]]
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->


* See [[Talk:Features/NetworkManagerBridging]]


<!-- Note that the current Feature guidelines require useful Scope and Test Plans at certain milestones; QA is responsible for checking these, and will change this category as needed. -->
[[Category:FeatureAcceptedF19]]

Revision as of 22:31, 12 March 2013

NetworkManager Bridging Support

Summary

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

Owner

Current status

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

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.

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.

Scope

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

How To Test

Ensure that a bridge 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 bridge port interfaces.

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.

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 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.

Documentation

Documentation will be drafted at Networking/Bridging.

Release Notes

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

Comments and Discussion