On Mon, 23 Aug 2004, Nils Philippsen wrote:
> What people seem to be forgetting here is that NetworkManager is
about
> _near-zero configuration_. If you have to go around doing out-of-the-
> ordinary stuff like disabling network cards explicitly, or keeping two
> network cards up at the same time, then you are NOT the use-case for
> NetworkManager, and don't use it. Things like proxies and other sorts
> of desktop-user configuration in a corporate or home-user situation
> should be supported by NM, even if they are not at this time.
I personally think that shared infrastructure is good, duplication is
evil. A generic description of NetworkManager, how it sounds to me: "A
daemon that does things automatically depending on the network status",
definitely infrastructure. Of course in its default configuration, with
very limited knowledge about a target network, it can only do these
generic things like doing the DHCP or WLAN dance and surely a limited
setup like one wired plus one wireless at max is a logical first step. I
think that we shouldn't have two separate infrastructures that handle
networking, on the one side "legacy" s-c-network and initscripts and on
the other side NetworkManager where there is a lot of duplication
between them. If I think about it the term "NetworkManager" would be a
bit over the top for something that'd never go beyond this first step.
NetworkManager (in Fedora at least) should probably live side-by-side
with s-c-network. We _do_ need somewhere to grab our static IP
information from, and I'm not in the business of writing yet _another_
tool to that stuff. So, in the best world perhaps, you'd use s-c-network
to do most of the config stuff. So, think of this:
1) In Anaconda, during installation, you are asked if you wish to
use "no-hassle/zero-configuration networking". If you say Yes, it adds a
"NETWORK_MANAGER=yes" line in ifcfg-* for all devices. If you say No, it
goes about its normal routine and asks you about each network device and
whether it should get a static IP, etc., but adds "NetworkManager=no" to
the ifcfg-* file instead. (alternatively, turn NetworkManager on for
Workstation/Desktop installs automatically, and off for server installs)
2) NetworkManager then looks for the ifcfg-* files, and if it finds one
for the interface, it greps for a NETWORK_MANAGER=yes line. If it finds
one, it takes over that interface. If it finds a "=no", it ignores the
interface. If it finds no file for that interface, it assumes control of
it (or not, we need to argue that one out).
3) You use s-c-network to switch NetworkManager on/off for any particular
interface, and you also use it to specify static IP addresses, gateways,
and the like. If you choose to use NetworkManager for an interface, you
_cannot_ choose DHCP, you can only choose "Automatic" and "Static IP"
or
soemthing like that.
The point here is that if you chose to use NetworkManager which should
probably be default ofr a "workstation" configuration or something like
that, then you would have to turn NetworkManager _off_ explicitly for any
interface, ie zero user intervention. If you choose a Server config,
NetworkManager would be off by default and you'd have to turn it on
explicitly. But for either case, any configuration that would need to be
done would be done through s-c-network, and hopefully in the
Desktop/Workstation case there would be no need whatsoever to touch
s-c-network at all.
So Yes, there does need to be integration between our config tools and
NetworkManager, and NM needs configuration files of sorts for static IP
addresses and whatnot anyway. Those parts I'm not going to re-invent :)
Dan