From Fedora Project Wiki


NetworkManager

NetworkManager is the primary configuration service for Networking in Fedora. Most of the information you might be interested in are in the Networking page or its subpages.

Desktops and laptops

NetworkManager provides automatic network detection and configuration for the system. Once enabled, the NetworkManager service also monitors the network interfaces, and may automatically switch to the best connection at any given time. Applications that include NetworkManager support may automatically switch between on-line and off-line modes when the system gains or loses network connectivity.

These facilities are most useful for modern laptops, where the user may move between wireless networks, and plug in to a variety of wired networks, but NetworkManager also provides features that are relevant to workstations. Current versions of NetworkManager support modem connections, and certain types of VPN. Development of these features is ongoing.

NetworkManager requires Fedora to have drivers for the wired and wireless interfaces on the computer. Many manufacturers of modems and wireless devices provide limited support for Linux. You may need to install additional drivers or firmware on your Fedora system in order to activate these interfaces.

Drivers first
NetworkManager may only work with network interfaces once the relevant drivers are correctly installed on your system. Reboot your system after installing a new firmware or a new driver in order to ensure that the changes take effect.

Servers

Fedora now by default relies on NetworkManager for network configuration. This is the case also for minimal installations and server installations. We are trying to make NetworkManager as suitable for this task as possible. You can file bug reports and feature requests at http://bugzilla.gnome.org/ or, if they are related to interoperability with the rest of the system, http://bugzilla.redhat.com/.

Documentation

http://projects.gnome.org/NetworkManager/developers/api/09/index.html

You can also find many configuration examples on this wiki, just follow internal links about NetworkManager features.

NetworkManager objectives

NM is slowly changing from a desktop network connection configurator to a universal network configuration software that could be used as a part of the base system.

  • Provide core network configuration features
  • Expose the features through on-disk text-based configuration
  • Expose the features through D-Bus API
  • Provide basic CLI and GUI (other CLI/GUI frontends can be built on top of NetworkManager)

The current version of NetworkManager is Fedora 17 is 0.9.4. Some of the features below may not be available there. The current version of upstream NetworkManager is 0.9.6 and the development version is 0.9.7 and is included in branched Fedora 18.

Features

Only features that can be considered fully working belong here.

  • Configuration using keyfile and ifcfg-rh formats (other formats are used with other distributions)
  • Good IPv4 support (static and automatic configuration)
  • D-Bus interface
  • Local caching nameserver (dnsmasq)
  • Ethernet connections (802.3)
  • WiFi connections (802.11)
  • VPN plugin interface

Untested features

  • WiMAX connections (802.16)
  • ADSL
  • Bluetooth (tested with mobile DUN but that may be a different story)
  • OLPC Mesh

Incomplete features

Only features that work reasonably well for everyday use belong here.

  • Basic IPv6 support (broken reconfiguration, excessively many interaction with the kernel causing log bloat)
  • CLI frontend – messy, not enough features
  • GUI frontend – needs some polishing (note that Gnome 3 and KDE have their own GUI tools)

Broken features

Features that fail even with the most casual use belong here.

  • Bonding ­– devices won't join (nor automatically, nor manually)
  • Integration with other tools
  • Connection 'assume', bad for IPv4, none for IPv6 (breaks IPv4 in dualstack networks)
  • dispatcher.d – problems after wake up
  • VLAN (it reportedly doesn't start automatically)

Possible future features

  • Ethernet Bridging – there is a feature branch, but devices won't automatically join
  • Keeping wired devices allways on (for IPv6 link-local networking)
  • Support for IPv6 automatic reconfiguration (changing default routes, etc...)
  • Event-based IPv6 handling without timers and duplicate processing (would clean logs and make code more robust)
  • Exporting list of DNS servers and handing it over to recursive DNS servers like unbound and dnsmasq (especially necessary for proper VPN access)
  • Local caching nameserver with DNSSEC and forwarders
  • Support for networking on manually created interfaces (e.g. bridges)
  • Support for easy temporary connection setup through CLI, D-Bus and GUI
  • Support for making (the above) temporary connections permanent
  • It should be possible to configure NetworkManager not to manage any devices by default (each device managed only by explicit configuration), cmdline switch might be handy
  • NetworkManager should probably log external IPv4/IPv6 address/routing changes, as well as bridge configuration changes
  • NetworkManager should have an option to clean up any stuff created by itself (bridge/bond devices, addresses, etc)

Note: Some of the features described here may have been already available and working at some point of time.

More resources:

Community feature requests (mostly from bugzilla)

Known problems

Note: some of the problems are deep in the core of NetworkManager. It can be expected that more problems will emerge over time or while fixing the currently known ones. https://bugzilla.redhat.com/show_bug.cgi?id=815243

Unreproduced problems

  • List of unmanaged devices (by MAC) is sometimes ignored
  • Manually assigned IPv4 addresses get lost (in tens of seconds)
  • Serious doubts about working integration with network-scripts
  • Doubts about overall robustness of NM behavior in non-standard situations
  • Doubts about *local* NetworkManager security (polkit rules would deserve some auditing)

Steps to 100% reproduce those are unknown, any help appreciated.

Notes

  • NetworkManager builds against specific distributions, not tools or dependencies (--with-distro)

About this section of the wiki

Currently most of the information in this page and the Tools/NetworkManager subtree have been added by me (User:Pavlix). Please feel free to add, correct and clarify stuff but please get in touch with me before deleting.

Further Information