NetworkManager in Fedora 13

The NetworkManager Project was initiated in 2004 by Red Hat to provide Linux users with a pleasant networking configuration experience. The current NetworkManager Project upstream maintainer is Dan Williams.

NetworkManager 0.8
NetworkManager is divided into 2 different components:
 * A service that manages and reports network changes
 * A graphical desktop applet that allow users to manipulate network connections

The graphical applet is available for GNOME, KDE and Xfce and follows the Systray Protocol from OpenDesktop.

For most users, NetworkManager is closely associated with nm-applet and KNetworkManager, the latter started by Novell in 2008 as part of the K Desktop Environment. The applets provide a user-friendly interface for configuring networking in Linux.

Currently NetworkManager supports the following:
 * Wired Ethernet devices
 * Wireless Ethernet devices
 * Unencrypted
 * WEP
 * WPA Personal and WPA Enterprise
 * Mobile Broadband Devices (GSM, CDMA, UMTS, etc)
 * Virtual Private Networks (OpenVPN, vpnc, openconnect, PTPP)
 * Dial-up (PPP) and xDSL (PPPoE)

NetworkManager in Fedora 13
Dan Williams, the maintainer of NetworkManager, has provided the community with an illuminating post about NetworkManager 0.8, found here. In addition to the information provided by Dan on his awesome post, we would like to highlight the new NetworkManager release 0.8.1, which ships in Fedora 13 "Goddard" and includes new features such as:


 * DHCPv6
 * Bluetooth DUN
 * Mobile broadband status

In Fedora 13 "Goddard", as in previous editions of Fedora, NetworkManager is installed by default, including the applets for the installed desktop environment (GNOME, KDE, Xfce).

NetworkManager - GNOME
Fedora 13 users with GNOME installed, such as in the default Fedora 13 Desktop Live edition, have the NetworkManager applet available in the panel. It searches available networks by default and provides easy and fast access to configuration options, such as creating new connections or by editing existing connections. It also provides information on details such as a connection's signal strength and the last time it was used.

NetworkManager - KDE
Just like its GNOME counterpart, KDE provides an applet interface for NetworkManager, known as KNetworkManager. This application development was started by Novell and provides an integrated Qt-based experience with similar usage and configuration as its GNOME counterpart, nm-applet.

Interview with Dan Williams
"On behalf of Fedora Marketing team, as part of our series of feature profiles for Fedora 13, I had the privilege of interviewing Dan Williams, upstream maintainer for NetworkManager since 2005 and Red Hat Inc. employee. Dan has contributed heavily to the Fedora Project wiki with plentiful information about NetworkManager, which is the main reason why the interview was focused more on the developing environment and community than purely on NetworkManager features. I would like to thank Dan for his time for making time for this interview via email."

- Nelson Marques, Fedora Marketing team

Interview

 * How would you characterize your involvement with Fedora and FOSS Communities?
 * Dan Williams: I've been working for Red Hat since 2003, originally on OpenOffice.org, but since 2005 as the upstream project maintainer for NetworkManager, ModemManager, and a few other things. I was also heavily involved in OLPC from 2005 - 2007, helping plan and implement core features of Sugar and OLPC wireless.
 * I act as an advocate for users by attending the various kernel wifi summits and being involved on Linux wireless mailing lists (hostap/wpa_supplicant, linux-wireless, etc). Through this capacity we've been able to move Linux wireless forward quite a bit versus 2004/2005.


 * From your scope of view, what are the barriers that potential developers face when they try to join FOSS Projects?
 * Probably #1 is lack of upstream guidance; when a potential developer shows up, often upstream developers don't have a ton of time to help nurture that developer through some of the initial stages, because they have so much to do. It's a very fine line; you can spend 75% of your time helping new potential developers and then you don't hit your feature targets because you didn't spend enough time coding.
 * What helps that is documentation; if you put beginning documentation up somewhere then you can direct new developers to that instead of repeating over and over each time one shows up. Or, if there are other community members that can handle this duty while you concentrate on the tougher questions.
 * Filling that role (called "developer relations" in larger companies) is a great job for somebody who can't commit tons of time to the project, but who is still willing to periodically build the source (even if they don't fix core bugs) and answer emails.


 * What would be your personal advice for potential developers who would willing to help with NetworkManager?
 * Keep asking questions; no question is too stupid or embarrassing to ask. Then, when you understand the solution to your question, tell us how to improve the documentation so other people benefit too. Since we've been involved in the project for a long time, we don't always know what the initial roadblocks are to building the source, understanding the architecture, etc.


 * In what fields would new developers get competencies (skill improvement) when developing for NetworkManager?
 * How to use D-Bus, GObject, and PolicyKit, how the whole networking system interacts, how 3G modems are driven, netlink APIs, parsing system network configuration files, etc. It really depends on what part of the NM you're looking at since there are lots of things going on.


 * What would be your advice to normal users to contribute actively for FOSS in bug reporting? Could you profile the importance of such contributions?
 * Learn how to provide good bug reports. I've tried to put up a page here describing what should be added to a good bug report for NetworkManager: http://live.gnome.org/NetworkManager/Debugging.
 * The #1 and #2 items missing from many bug reports is what package version of NM you've experienced the bug with, and what hardware you're using. As the Fedora project, we should work harder to automate the collection of this information like Ubuntu has done with Launchpad. This stuff should really be automatic, but for now we'll need users to do it for us.


 * Could your tell us some of the major achievements achieved in the last 6 months on NetworkManager development?
 * We rolled out NetworkManager 0.8; I've written a blog post on it here: The Taste of a New Generation.
 * Note that Fedora 13 is shipping stabilized snapshots of NM 0.8.1 that include quite a bit more functionality than is listed in that post, like DHCPv6, Bluetooth DUN, and Mobile Broadband status.


 * What distribution/tools do you use for development of NetworkManager?
 * I develop mainly on Fedora, though occasionally I do a build on Ubuntu when I need to dig into a problem there and the Ubuntu team hasn't been able to debug it further.
 * I use gnome-terminal with multiple tabs for workflow (usually have NetworkManager's directory open in one tab, ModemManager's in another, and network-manager-applet's in a third), and GEdit for actual coding. No, I don't use Emacs or vi, mainly because I started coding on Mac OS long ago and all the tools there are GUI development environments. GEdit does 95% of what most people really need from an editor, and I've never been a fan of modal editors like Emacs/vi probably because I used something else first.

Fedora's Foundations, a personal viewpoint


I finished the interview with Dan by asking him for his personal interpretation of the Fedora Project's four Foundations (Freedom, Friends, Features and First):


 * Freedom: it's about Free Software; we don't make compromises. If it's not free, or it's patent encumbered, we don't ship it.  You're completely free to redistribute, remix, and modify anything we ship.
 * Friends: both working on Fedora and using Fedora should be fun; we shouldn't discriminate or make users feel unwelcome. Our discussions should be civilized, avoid personal attacks, and simply get to the bottom of the issue.  Obviously there will be disagreements, but these need to be settled nicely.
 * Features: we build new features through the community. We don't develop them behind closed doors, almost all of what we do is out there in git repositories and on wiki pages.  We have lots of different users, and we try to add new features that help all these users out, not just one particular group.
 * First: we're cutting-edge; we drive new features into Fedora before most other distros get them, but we also try to ensure those features are stable enough for our users. This is hard to get right, but we seem to be doing it pretty well so far.

Biography


Dan Williams is a Senior Software Engineer in the Red Hat Desktop Team. He joined Red Hat Inc. in 2003 to work on the OpenOffice Suite, due to his involvement on the Mac OS X port of OpenOffice. In 2004 he was asked by Havoc to "look at making networking not suck (because it really, really did" (Williams, 2010). This led Dan to start working on NetworkManager from whom he is the upstream maintainer since 2005.

Dan Williams was also part of the original Red Hat team working on the OLPC (One Laptop Per Child).

An example of NetworkManager configuration
In the GNOME desktop environment, the NetworkManager notification applet allows the user to perform two tasks:
 * A right click opens a dialog box to enable networking for several devices and edit configuration and other options.
 * A left click opens a networking status box to connect to a configured network, create new networks and manage VPN connections.

This example shows how to configure a new wireless connection to a network that requires user authentication through Dynamic WEP/PEAP/MSCHAP V2. Most wireless networks will be detected by NetworkManager (establishing that your hardware is supported and is enabled). To configure, follow these steps:
 * Right click the NetworkManager applet and select Edit Connections. The following box should appear on your screen:
 * Select the Wireless tab, and the available wireless networks are displayed. At this point select the network you want to edit and then select Edit.
 * A new dialog is displayed for the network connection that looks like this:
 * There are several tabs available for configuration choices:
 * Wireless tab: change SSID, Mode, Mac Address, BSSID and MTU. In most cases there is no need to change anything here. Remember to check Connect automatically for such feature.
 * Wireless Security tab: For this example, the user selects the following:
 * Security: Dynamic WEP (802.1x)
 * Authentication: Protected EAP (PEAP)
 * Anonymous Identity: Not used for this example
 * CA Certificate: Not used for this example
 * PEAP Version: Select Automatic
 * Inner Authentication: Select MSCHAPv2
 * Username: Enter the authentication user name for the network
 * Password: Enter your authentication password for the network
 * Select other check boxes if applicable
 * IPv4 Settings: The DHCP option is usually correct, as in this example.
 * Select Apply.

At this stage NetworkManager logs you into your network, in just a few seconds. This is just one example of many network configurations that NetworkManager supports. Wireless networks can use other methods for authentication. Contact your system administrator or provider in order to get the proper credentials. This example used GNOME's nm-applet. Instead of nm-applet, users with KDE have KNetworkManager, which operates similarly.

Users having problems can seek help provided by Fedora Community volunteers on Freenode IRC Network on general channel: #Fedora. Be mindful that support on this IRC Channel is available only for some versions, usually the latest shipping version. An IRC chatting application is usually required for this. Some available are: For more information visit our page on Communicating and getting help.
 * X-Chat - Distributed with Fedora (can be installed with: yum install xchat).
 * Konversation - Popular with KDE users and installed by default with KDE.

Message to our Users
"The Fedora Project strives to lead the advancement of free and open source software (FOSS). Like many other community projects in the FOSS universe, its success depends on its growing number of contributors. We thank not only our contributors but also our end users for placing their trust in Fedora Linux distribution. Fedora continues to improve thanks to the important bug reports that are submitted by you and other Fedora users. We hope that you enjoy Fedora as much as our contributors enjoy working on the releases we issue every 6 months, providing leading technology and a free and open source operating system."

- On behalf of the Fedora Marketing Team and Fedora community

Links of Interest

 * NetworkManager - Homepage
 * NetworkManager - Fedora Wiki
 * NetworkManager 0.8 - Dan Williams
 * KNetworkManager
 * Howto provide good Bug Reports - Dan Williams