Default-Routing problems



My situation:

I have a laptop running Fedora Core 9 with all the updated versions of
Network Manager etc. I have an internet connection with a 3G GSM USB
dongle, which "Just Works", and that's fine. I also have a WiFi dongle
which works fine when I'm near a base station.

I also have a printer attached to an intranet which I can access by a
wired Ethernet port. My problem is that as soon as I plug in the
Ethernet cable to the laptop, I lose my internet connection; more
specifically the default route is reset from the GSM to the Ethernet,
even though the wired intranet does not have any internet access. 

If I then reset the default route by hand, everything works as it
should.

My question: 

what can I do to make the system "Just Work" in my particular situation?
There are several possibilities I can envisage

(1) Don't use Network Manager - okay, I've been a Linux user and
do-it-yourself system and network manager for decades, so I don't have a
problem in principle setting up PPP daemons and such like, but I am
rather out of touch with the details of WiFi -- is there an up-to-date
description of the Network Manager functions that I would need to
replace?

(2) Hack Network Manager - looking briefly in the source code, it seems
to me that the order of the values in the NMDeviceType enumeration is
what determines the priority used to assign the default route to a
particular connection. Could I simply re-arrange these values and
recompile Network Manager to assign a GSM connection higher priority
that WiFi or Ethernet? Would that cause anything else to break?

(3) Automate my current manual procedure: write a script to listen for
some dbus signal that the Ethernet has become active, wait for Network
Manager to change the default route to Ethernet and then change it back
to GSM again.

Summary:

I don't like (3), and (1) looks too much like hard work, so I'm hoping
very much that (2) will do the trick.

Have I completely missed the "proper" way to do this? All advice
gratefully received!




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]