~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.30.102 0.0.0.0 UG 100 0 0 eth0
default 192.168.137.1 0.0.0.0 UG 101 0 0 enxd037458b96e3
default 10.64.118.172 0.0.0.0 UG 700 0 0 ppp0
10.64.118.172 0.0.0.0 255.255.255.255 UH 700 0 0 ppp0
192.168.30.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.137.0 0.0.0.0 255.255.255.0 U 101 0 0 enxd037458b96e3
As you can see above, I have 3 gateways managed by NetworkManager, when the interface with the lowest metric loses its connection to internet, the system has no more access to internet. In my case, I want to use the 3G modem (ppp0) to access internet but it doesn't work. It works only if I unplug the interface and it's not feasible in my case (embedded system). You can ignore this interface enxd037458b96e3 (USB Ethernet) that I use for tests.
Is there a solution with NetworkManager (or even without it) ? I don't know how Windows Vista/7/8/10 manages to detect the interface with Internet connection.