NetworkManager
NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.
Rationale
NetworkManager is a software utility that aims to simplify the use of computer networks on Linux distributions.How it works
To connect computers with each other, various communications protocols have been developed, e.g. IEEE 802.3, IEEE 802.11, IEEE 802.15.1, PPPoE, PPPoA, and many many more. Each participating computer must have the suitable hardware, e.g. network card or wireless network card and this hardware must be configured accordingly to be able to establish a connection.In case of a monolithic kernel all the device drivers are part of it. The hardware is accessed through its device driver by the configuration utility to configure the hardware, and programs like the web browser/SSH/NTP-client/etc. to send and receive network packets.
Configuration of network interfaces without NetworkManager
On Linux and all Unix-like operating systems, the utilitiesifconfig and the newer ip are used to configure IEEE 802.3 and IEEE 802.11 hardware. These utilities configure the kernel directly and the configuration is applied immediately. After boot-up, the user is required to configure them again.To apply the same static configuration after each boot-up, the PID1-programs are used: System V init executes shell scripts and binary programs, systemd parses its own conf-files. The boot-up configuration for network interfaces is stored in
for Debian Linux distributions and its derivatives or files in /etc/sysconfig/network-scripts/ for Fedora and its derivatives, and DNS-servers in /etc/resolv.conf. /etc/network/interfaces or /etc/sysconfig/network-scripts/ifcfg-* can define a static IP-address or to be used, and all kinds of VPN can be configured here as well.In case the configuration has to be changed, DHCP-protocol goes a long way to do so automatically, without the user even noticing.
Configuration of network interfaces with NetworkManager
- NetworkManager is accessible via D-Bus.
- Configuration is stored in
/etc/NetworkManager/NetworkManager.conf
Software architecture
NetworkManager has two components:- the NetworkManager daemon, the actual software which manages connections and reports network changes
- the graphical or command-line interface
Graphical front-ends and command line interfaces
;plasma‑nm
;nmcli
;nmtui
;cnetworkmanager
Mobile broadband support
NetworkManager is used in conjunction with ModemManager and Paul's PPP Package for WWAN/mobile broadband support.Antti Kaijanmäki announced the development of a mobile broadband configuration assistant for NetworkManager in April 2008; the required changes were made to NetworkManager in 0.7.1.
History
Red Hat initiated the NetworkManager project in 2004 with the goal of enabling Linux users to deal more easily with modern networking needs, particularly wireless networking. NetworkManager takes an opportunistic approach to network selection, attempting to use the best available connection as outages occur, or as the user roams between wireless networks. It prefers Ethernet connections over “known” wireless networks, which are preferred over wireless networks with SSIDs to which the user has never connected. The user is prompted for WEP or WPA keys as needed.The NetworkManager project was among the first major Linux desktop components to utilize D-Bus and HAL extensively. Since June 2009, however, NetworkManager no longer depends on HAL, and since 0.9.10, neither does it require the D-Bus daemon to be running for root operation.