On my Beaglebone card I run Angstrom Linux. It has one cable in the ethernet port (etho) and a USB 3G modem dongle in the USB port whose interface is named wwan0.At the other end of the crossover ethernet cable is another Linux computer running on Raspberry Pi.When the ethernet cable is disconnected, I have internet access, but when the cable is attached, internet traffic gets directed on the eth0 interface.The ip route table looks like this:root@beaglebone:~# ip routedefault dev eth0  scope linkdefault via 95.192.114.29 dev wwan095.192.114.28/30 dev wwan0  proto kernel  scope link  src 95.192.114.30169.254.0.0/16 dev eth0  proto kernel  scope link  src 169.254.29.204When doing    ping 8.8.8.8this fails, but when I doping -I wwan0 8.8.8.8This works fine. I can also pingping 169.254.1.N # 'far' end of ethernet crossover cablewhich is the other end of the ethernet crossover cable and it works. So how do I make sure that internet traffic goes out on the right interface? Is this one of the cases where the Advanced router option must be selected in menuconfig before recompiling the kernel? Or is it enough to swap the order between the two default routes?This card doesn't route any data coming from somewhere else, it receives data on an I2C bus and is supposed to write this data to one server on the internet and another server on the other end of the crossover cable./etc/network/interfacesiface eth0 inet static    address 169.254.1.N+1 # 'near' end of crossover cable    netmask 255.255.0.0    gateway 169.254.1.2allow-hotplug wwan0iface wwan0 inet dhcpAnother issue which might be related is that the IP address isn't correctly set to the static one I set in /etc/network/interfaces above, it's on the correct subnet 169.254.0.X but it isn't what I statically configured.EDIT 4If I try to delete the default route under EDIT 2route del default gw 0.0.0.0 dev eth0connman jumps into action and immediately re-adds it again, as visible via journalctl:beaglebone connmand[853]: eth0 {del} route 0.0.0.0 gw 0.0.0.0 scope 0 <UNIVERSE>beaglebone connmand[853]: eth0 {add} route 0.0.0.0 gw 0.0.0.0 scope 0 <UNIVERSE>(the timestamps of those two lines are identical as viewed with journalctl --follow)EDIT 3root@beaglebone:~# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo2: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN qlen 10    link/can3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 34:b1:f7:1b:02:86 brd ff:ff:ff:ff:ff:ff    inet 169.254.252.60/16 brd 169.254.255.255 scope global eth04: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000    link/ether 00:01:02:03:04:05 brd ff:ff:ff:ff:ff:ff    inet 78.78.88.67/29 scope global wwan0EDIT 2In my opinion the first row looks suspicious.netstat -rnKernel IP routing tableDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 eth00.0.0.0         95.196.157.233  0.0.0.0         UG        0 0          0 wwan095.196.157.232  0.0.0.0         255.255.255.252 U         0 0          0 wwan0169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0EDIT 0 & EDIT 1As per comment by FloHimself below, the only subnet involved is 169.254.0.0/16 and one beginning with 192 is a typo. However, changing the static IP address doesn't keep the static IP from changing and the ping -I wwan0 is still the only way to reach the world wide web.
no internet through wwan0 when cable attached to eth0
linux;networking;angstrom