mNo edit summary |
|||
(19 intermediate revisions by 4 users not shown) | |||
Line 4: | Line 4: | ||
--> | --> | ||
== NetworkManager | == NetworkManager == | ||
[http://projects.gnome.org/NetworkManager/ NetworkManager] is the primary configuration service for [[Networking | [http://projects.gnome.org/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. | 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. | ||
Line 16: | Line 19: | ||
{{admon/tip|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.}} | {{admon/tip|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 | 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 | ||
Line 22: | Line 25: | ||
interoperability with the rest of the system, http://bugzilla.redhat.com/. | interoperability with the rest of the system, http://bugzilla.redhat.com/. | ||
== Documentation == | Upcoming release of NetworkManager will enhance the command-line tools and make server/enterprise capabilities more robust and less surprising. Some demos of upcoming capabilities are: | ||
* [http://people.redhat.com/dcbw/cli-bridge.ogg creating a bridge with nmcli] | |||
* [http://people.redhat.com/dcbw/gui-bridge.ogg creating a bridge with nm-connection-editor] | |||
* [http://people.redhat.com/dcbw/virt-wifi.ogg virtual interfaces and Wi-Fi with nmcli] | |||
=== Documentation === | |||
Developer resources: | |||
http://projects.gnome.org/NetworkManager/developers/ | http://projects.gnome.org/NetworkManager/developers/ | ||
You can also find many configuration examples on this wiki, just follow | You can also find many configuration examples on this wiki, just follow | ||
internal links about NetworkManager features. | internal links about NetworkManager features. | ||
== NetworkManager objectives == | === 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. | 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. | ||
Line 38: | Line 49: | ||
* Provide basic CLI and GUI (other CLI/GUI frontends can be built on top of NetworkManager) | * 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. | |||
* [[Tools/NetworkManager/Configuration|Configuration]] using keyfile and ifcfg-rh formats | === Features === | ||
* | |||
* | Only features that can be considered fully working belong here. | ||
* | |||
* [[Tools/NetworkManager/Configuration|Configuration]] using keyfile and ifcfg-rh formats (other formats are used with other distributions) | |||
* [[Tools/NetworkManager/CLI|CLI frontend]] | |||
* [[Tools/NetworkManager/GUI|GUI frontend]] | |||
* Good [[Tools/NetworkManager/IPv4|IPv4 support]] (static and automatic configuration) | |||
* [[Tools/NetworkManager/D-Bus|D-Bus interface]] | * [[Tools/NetworkManager/D-Bus|D-Bus interface]] | ||
* | * Local caching nameserver (dnsmasq) | ||
* | * Ethernet connections (802.3) | ||
* WiFi connections (802.11) | |||
* VPN plugin interface | |||
* Mobile broadband via USB or bluetooth | |||
== | === 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 [[Tools/NetworkManager/IPv6|IPv6 support]] (broken reconfiguration, excessively many interaction with the kernel causing log bloat) | |||
=== Broken features === | |||
Features that fail even with the most casual use belong here. | |||
* [[Tools/NetworkManager/Bonding|Bonding]] – devices won't join (nor automatically, nor manually) [TODO test 0.9.8.2] | |||
* [[Tools/NetworkManager/Integration|Integration with other tools]] | * [[Tools/NetworkManager/Integration|Integration with other tools]] | ||
* Connection 'assume', bad for IPv4, none for IPv6 | * Connection 'assume', bad for IPv4, none for IPv6 (breaks IPv4 in dualstack networks) | ||
* dispatcher.d | * dispatcher.d – problems after wake up | ||
* [[Tools/NetworkManager/VLAN|VLAN]] (it reportedly doesn't start automatically) | * [[Tools/NetworkManager/VLAN|VLAN]] (it reportedly doesn't start automatically) [TODO test 0.9.8.2] | ||
Note that there are huge improvements in git master which will eventually reach Fedora and will be published as NetworkManager 0.9.10. | |||
* [[Tools/NetworkManager/Bridge|Ethernet Bridging]] | === Possible future features === | ||
* Keeping wired devices | |||
* Support for [[Tools/NetworkManager/IPv6#Automatic_reconfiguration|IPv6 automatic reconfiguration]] (changing default routes, etc...) | * [[Tools/NetworkManager/Bridge|Ethernet Bridging]] – there is a feature branch, but devices won't automatically join [TODO test 0.9.8.2] | ||
* [[Tools/NetworkManager/IPv6#Long-term_goals|Event-based IPv6 handling]] without timers and duplicate processing (would clean logs and make code more robust) | * Keeping wired devices always on (for [[Networking/Link-local|IPv6 link-local networking]]) | ||
* Exporting list of DNS servers and handing it over to recursive DNS servers like unbound and dnsmasq (especially necessary for proper VPN access) | * Support for [[Tools/NetworkManager/IPv6#Automatic_reconfiguration|IPv6 automatic reconfiguration]] (changing default routes, etc...) [in git master, for 0.9.10] | ||
* [[Tools/NetworkManager/DNS|Local caching nameserver with DNSSEC]] and forwarders | * [[Tools/NetworkManager/IPv6#Long-term_goals|Event-based IPv6 handling]] without timers and duplicate processing (would clean logs and make code more robust) [in git master, for 0.9.10] | ||
* Support for networking on manually created interfaces (e.g. bridges) | * Exporting list of DNS servers and handing it over to recursive DNS servers like unbound and dnsmasq (especially necessary for proper VPN access) [WIP] | ||
* Support for easy temporary connection setup through CLI, D-Bus and GUI | * [[Tools/NetworkManager/DNS|Local caching nameserver with DNSSEC]] and forwarders [WIP] | ||
* Support for making (the above) temporary connections permanent | * Support for networking on manually created interfaces (e.g. bridges) [WIP] | ||
* 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 | * Support for easy temporary connection setup through CLI, D-Bus and GUI [WIP] | ||
* NetworkManager should probably log external IPv4/IPv6 address/routing changes, as well as bridge configuration changes | * Support for making (the above) temporary connections permanent [WIP] | ||
* NetworkManager should have an option to clean up any stuff created by itself (bridge/bond devices, addresses, etc) | * 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 [WIP] | ||
* NetworkManager should probably log external IPv4/IPv6 address/routing changes, as well as bridge configuration changes [WIP] | |||
* NetworkManager should have an option to clean up any stuff created by itself (bridge/bond devices, addresses, etc) [WIP] | |||
Note: Some of the features described here may have been already available and working at some point of time. | Note: Some of the features described here may have been already available and working at some point of time. | ||
Line 77: | Line 115: | ||
* http://wiki.ovirt.org/wiki/Category:Feature | * http://wiki.ovirt.org/wiki/Category:Feature | ||
== Community feature requests (mostly from bugzilla) == | === Community feature requests (mostly from bugzilla) === | ||
* [https://bugzilla.gnome.org/show_bug.cgi?id=560471 Automatically connect VPN for a physical connection] | * [https://bugzilla.gnome.org/show_bug.cgi?id=560471 Automatically connect VPN for a physical connection] | ||
Line 92: | Line 130: | ||
* [https://bugzilla.gnome.org/show_bug.cgi?id=591530 UPnP] | * [https://bugzilla.gnome.org/show_bug.cgi?id=591530 UPnP] | ||
== Known problems == | === Known problems === | ||
* [ | * [http://bugzilla.redhat.com/show_bug.cgi?id=815243 NetworkManager gets automaticaly respawned in F17, no sane way to temporarily disable it] | ||
* dhclient left over upon exist and spawned duplicately (also dhclient's check failes when permision denied when writing pidfile) | * dhclient left over upon exist and spawned duplicately (also dhclient's check failes when permision denied when writing pidfile) | ||
* [[Tools/NetworkManager/IPv6|Serious IPv6 problems]] (some of fixed in | * [[Tools/NetworkManager/IPv6|Serious IPv6 problems]] (some of fixed in 0.9.6), affecting also IPv4 networking and link [reworked in master, for 0.9.10] | ||
* [[Tools/NetworkManager/Integration#Kernel|IPv6 code is still full of workarounds]] | * [[Tools/NetworkManager/Integration#Kernel|IPv6 code is still full of workarounds]] [reworked in master, for 0.9.10] | ||
* [ | * [http://bugzilla.gnome.org/show_bug.cgi?id=678417 Malfunctioning connection 'assume' functionality for IPv4] ([https://bugzilla.gnome.org/show_bug.cgi?id=676740 removed for IPv6]) | ||
* [ | * [http://bugzilla.gnome.org/show_bug.cgi?id=673682 NetworkManager's dispatcher fails to call scripts at resume] | ||
* [ | * [http://bugzilla.gnome.org/show_bug.cgi?id=667874 NM writes to its own configuration file] [WIP] | ||
* [ | * [http://bugzilla.gnome.org/show_bug.cgi?id=668251 Desktop: NM GUIs keep asking for wifi passwords] [TODO re-test] | ||
* NetworkManager features are not currently implemented with [[Tools/NetworkManager/Testing|testability]] in mind | * NetworkManager features are not currently implemented with [[Tools/NetworkManager/Testing|testability]] in mind [WIP] | ||
* [https://bugzilla.gnome.org/show_bug.cgi?id=673334 NM won't sometimes set custom MAC address] | * [https://bugzilla.gnome.org/show_bug.cgi?id=673334 NM won't sometimes set custom MAC address] | ||
* nmcli is essentially lame and its syntax and output is inconsistent (e.g. true/false versus yes/no) | * nmcli is essentially lame and its syntax and output is inconsistent (e.g. true/false versus yes/no) [WIP] | ||
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. | 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 | https://bugzilla.redhat.com/show_bug.cgi?id=815243 | ||
== Unreproduced problems == | === Unreproduced problems === | ||
* List of unmanaged devices (by MAC) is sometimes ignored | * List of unmanaged devices (by MAC) is sometimes ignored | ||
Line 119: | Line 157: | ||
Steps to 100% reproduce those are unknown, any help appreciated. | Steps to 100% reproduce those are unknown, any help appreciated. | ||
== Notes == | === Notes === | ||
* NetworkManager builds against specific distributions, not tools or dependencies (--with-distro) | * NetworkManager builds against specific distributions, not tools or dependencies (--with-distro) [fixed in 0.9.8] | ||
== | == Further Information == | ||
* [[Networking]] – the starting point for those who seek network-related information on Fedora Wiki | |||
* Refer to the System Administrator's Guide here: [http://docs.fedoraproject.org/ Fedora Documentation ] | * Refer to the System Administrator's Guide here: [http://docs.fedoraproject.org/ Fedora Documentation ] | ||
* [http://www.redhat.com/magazine/003jan05/features/networkmanager/ Red Hat Magazine article on NetworkManager] : Good summary of the technology | * [http://www.redhat.com/magazine/003jan05/features/networkmanager/ Red Hat Magazine article on NetworkManager] : Good summary of the technology | ||
Line 134: | Line 169: | ||
* [http://mail.gnome.org/mailman/listinfo/networkmanager-list The NetworkManager mailing list] | * [http://mail.gnome.org/mailman/listinfo/networkmanager-list The NetworkManager mailing list] | ||
* [[Local Caching Nameserver]] | * [[Local Caching Nameserver]] | ||
== Troubleshooting == | |||
=== Imported ovpn file does not work === | |||
When you add your VPN connection (for [[OpenVPN]] for example) by using ''Import from file…'' (with an <code>ovpn</code> file (created by a [[pfSense]] OpenVPN server instance) for example) at ''Settings'' -> ''Network'' -> ''VPN'' -> ''+'' [[{{PAGENAME}}]] is used to handle that connection for you. But maybe this does not work as expected. As an alternative you can try to use the pure client (for OpenVPN). | |||
connect to your VPN ([[OpenVPN]]) by running <code>openvpn</code> with your server created client config file (''ovpn'' file format) | |||
: In the example we are using a file ''pfSense-UDP-1194-admin-config.ovpn'' that was downloaded in the ''Downloads'' folder of your home directory. | |||
: In the example we are using a file ''pfSense-UDP-1194-admin-config.ovpn'' that was created on a [[pfSense]] system. It was created to connect to the on the system running OpenVPN server (for the default protocol ''UDP'' for OpenVPN, for the default port ''1194'' for OpenVPN, for the default user ''admin'' for pfSense). | |||
<code bash>sudo openvpn ~/Downloads/pfSense-UDP-1194-admin-config.ovpn</code> | |||
---- | ---- | ||
[[Category:Desktop]] | [[Category:Desktop]] | ||
[[category:Networking]] |
Latest revision as of 21:28, 26 April 2020
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.
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/.
Upcoming release of NetworkManager will enhance the command-line tools and make server/enterprise capabilities more robust and less surprising. Some demos of upcoming capabilities are:
- creating a bridge with nmcli
- creating a bridge with nm-connection-editor
- virtual interfaces and Wi-Fi with nmcli
Documentation
Developer resources:
http://projects.gnome.org/NetworkManager/developers/
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)
- CLI frontend
- GUI frontend
- 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
- Mobile broadband via USB or bluetooth
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)
Broken features
Features that fail even with the most casual use belong here.
- Bonding – devices won't join (nor automatically, nor manually) [TODO test 0.9.8.2]
- 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) [TODO test 0.9.8.2]
Note that there are huge improvements in git master which will eventually reach Fedora and will be published as NetworkManager 0.9.10.
Possible future features
- Ethernet Bridging – there is a feature branch, but devices won't automatically join [TODO test 0.9.8.2]
- Keeping wired devices always on (for IPv6 link-local networking)
- Support for IPv6 automatic reconfiguration (changing default routes, etc...) [in git master, for 0.9.10]
- Event-based IPv6 handling without timers and duplicate processing (would clean logs and make code more robust) [in git master, for 0.9.10]
- Exporting list of DNS servers and handing it over to recursive DNS servers like unbound and dnsmasq (especially necessary for proper VPN access) [WIP]
- Local caching nameserver with DNSSEC and forwarders [WIP]
- Support for networking on manually created interfaces (e.g. bridges) [WIP]
- Support for easy temporary connection setup through CLI, D-Bus and GUI [WIP]
- Support for making (the above) temporary connections permanent [WIP]
- 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 [WIP]
- NetworkManager should probably log external IPv4/IPv6 address/routing changes, as well as bridge configuration changes [WIP]
- NetworkManager should have an option to clean up any stuff created by itself (bridge/bond devices, addresses, etc) [WIP]
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)
- Automatically connect VPN for a physical connection
- Implement (wireless) connections priority
- Automatically reconnect dropped VPN
- Simultaneous VPN connections
- Captive portal authentication
- OLSRd
- IPv6 connection sharing
- N2N
- Importing various VPN configuration formats
- 6to4
- Tor
- UPnP
Known problems
- NetworkManager gets automaticaly respawned in F17, no sane way to temporarily disable it
- dhclient left over upon exist and spawned duplicately (also dhclient's check failes when permision denied when writing pidfile)
- Serious IPv6 problems (some of fixed in 0.9.6), affecting also IPv4 networking and link [reworked in master, for 0.9.10]
- IPv6 code is still full of workarounds [reworked in master, for 0.9.10]
- Malfunctioning connection 'assume' functionality for IPv4 (removed for IPv6)
- NetworkManager's dispatcher fails to call scripts at resume
- NM writes to its own configuration file [WIP]
- Desktop: NM GUIs keep asking for wifi passwords [TODO re-test]
- NetworkManager features are not currently implemented with testability in mind [WIP]
- NM won't sometimes set custom MAC address
- nmcli is essentially lame and its syntax and output is inconsistent (e.g. true/false versus yes/no) [WIP]
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) [fixed in 0.9.8]
Further Information
- Networking – the starting point for those who seek network-related information on Fedora Wiki
- Refer to the System Administrator's Guide here: Fedora Documentation
- Red Hat Magazine article on NetworkManager : Good summary of the technology
- The NetworkManager Website
- The NetworkManager mailing list
- Local Caching Nameserver
Troubleshooting
Imported ovpn file does not work
When you add your VPN connection (for OpenVPN for example) by using Import from file… (with an ovpn
file (created by a pfSense OpenVPN server instance) for example) at Settings -> Network -> VPN -> + Tools/NetworkManager is used to handle that connection for you. But maybe this does not work as expected. As an alternative you can try to use the pure client (for OpenVPN).
connect to your VPN (OpenVPN) by running openvpn
with your server created client config file (ovpn file format)
- In the example we are using a file pfSense-UDP-1194-admin-config.ovpn that was downloaded in the Downloads folder of your home directory.
- In the example we are using a file pfSense-UDP-1194-admin-config.ovpn that was created on a pfSense system. It was created to connect to the on the system running OpenVPN server (for the default protocol UDP for OpenVPN, for the default port 1194 for OpenVPN, for the default user admin for pfSense).
sudo openvpn ~/Downloads/pfSense-UDP-1194-admin-config.ovpn