A solution for multiple routes (usb0+eth0)

Helge Hafting helge.hafting at hist.no
Mon Mar 9 10:51:52 CET 2009


Bringing up one interface creates a default route, which is necessary no 
matter which interface is used.

Bringing up both interfaces makes two default routes, and there is the 
risk that the phone ends up using the slower interface which obviously
is a problem.

I set up /etc/network/interfaces like this, adapted from SHR:

auto usb0
iface usb0 inet static
	address 192.168.0.202
	netmask 255.255.255.0
	network 192.168.0.0
	gateway 192.168.0.200 metric 1
	up echo nameserver 208.67.222.222 >> /etc/resolv.conf
	up echo nameserver 208.67.220.220 >> /etc/resolv.conf

The "metric" does the trick. When usb0 is the only interface, the usb0 
route gets used as usual.

If some other interface comes up (in my case, eth0)
then that one gets a default route too, but that default route
comes up with the default metric of 0.

So, the eth0 default route is seen as "shorter", and is preferred over 
usb0 when both are available. Which is good, as eth0 is faster.

So, no need to delete the usb0 default route when bringing up other 
interfaces, with the associated problem of restoring the usb0 route when 
the other interface goes away.

Helge Hafting




More information about the community mailing list