Ubuntu – the difference between Network Manager and ‘ifconfig’ ‘ifup’, etc

ifconfignetwork-managernetworking

Ubuntu seems to provide at least two network "toolsets" (for lack of a better term). I'm running into conflicts between these two.

I am often running into conflicts between these different sets of tools. For example, I'm running Ubuntu Desktop at home and I'm using software like KVM/libvirt which recommends that I disable Network Manager, but disabling Network Manager causes other things to break.

What is the difference between Network Manager and the traditional network tools? Can these two suites run side-by-side or must I stick with one or the other? Is there a document which summarizes the difference between these different tools? I have been unable to find one.

(Forgive the vagueness of this question. I've searched and searched for an answer, but I have only found many vague answers which don't seem relevant to Ubuntu 10.04/Lucid, and I may not fully understand the purpose of NetworkManager. However, this seems to be a frequently asked question. If you have advice for clarifying this question, please post a comment.)

Best Answer

NetworkManager and ifconfig are not (by default) compatible (NetworkManager won't configure interfaces listed in /etc/network/interfaces). NetworkManager is a sort of settings daemon that makes sure that multiple users can edit network connections, this is very smart in a desktop environment (especially on laptops that might move around between different wireless networks). Basically NetworkManager is a frontend to iproute, dhclient, wpa_supplicant and ppp.

ifconfig is a general tool for configuring network interfaces, you can for example do like this:

ifconfig eth1 10.0.0.1 netmask 255.0.0.0 hw ether 10:10:10:10:10:10
ifconfig eth1 down

to set your IP, netmask and MAC address of eth1, and then down (disable/turn off) your interface. ifconfig doesn't read any config files and does only exactly what it is told.

ifup and ifdown are helper programs that use ifconfig to configure a network interface in accordance to /etc/network/interfaces this will make sure that if there are any up, down, pre-up, pre-down, post-up, post-down scripts that need to be run they will be.

Ok, then there is wpa_supplicant and dhclient. dhclient is a DHCP client - ifup will use this if a network interface is configured for DHCP, as will NetworkManager. wpa_supplicant is a tool for configuring encryption on wireless networks.

Most of these tools have man pages, for instance the interfaces-file have it's own manpage that describe the format of that config file.

man interfaces
man ifconfig
man ifup

So that being said i would recommend that you remove (or disable) NetworkManager, I don't think that any thing will break from removing NetworkManager except the gui tools for setting up network. If you want to configure wireless without NetworkManager you might want to look at this.

Related Question