Linux: connessioni multiple di networking – 3G / 4G / Wifi / LAN / etc; come posso impostare una connessione di networking preferita da utilizzare?

Sto guardando come posso configurare un computer porttile con più interfacce di networking, ma esiste un problema se tutte le connessioni sono attive, cioè 3G, WiFi e LAN sono tutti collegati, vorrei che fosse predefinito alla LAN.

Vorrei impostare "pesi" o "priorità" a ciascuna connessione, in modo che se la LAN è scollegata, sarà predefinita a WiFi – se è in field e funziona, altrimenti passerà e utilizza il dongle 3G;

Sto guardando intorno e posso vedere che il contatore "metrico" per la rotta non viene utilizzato per i kernel recenti. Ho pensato che sarebbe stato in grado di impostare il gateway / collegamenti preferito – ma secondo la pagina man:

path uomo:

PRODUZIONE

Metrica La "distanza" dell'objective (normalmente contato nel luppolo). Non viene utilizzato dai kernel recenti, ma può essere necessario eseguire il routing di daemon.

Quindi sono confuso, ci sono script / applicazioni / qualsiasi cosa che possa rilevare le connessioni di networking attive, e per mezzo della configuration, submit il traffico di networking di gateway predefinito attraverso quella interface se è attivo / vivo?

Di solito Linux decide il routing basato sulla metrica dell'interface. Guardate "route-n" e vedi cosa dice. Se si dispone di un gateway predefinito (0.0.0.0) con una metrica superiore, quella sarà preferita rispetto a tutti gli altri.

Sono sinceramente adesso sicuro di come linux sceglie di percorrere se tutti i gateway sono gli stessi – ma il punto è che devi fornire un gateway predefinito una metrica superiore.

È passato un po 'da quando ho toccato Network Manager, ma credo che ci siano delle impostazioni in quella metrica per dare il gateway.

Nel caso peggiore, è ansible utilizzare il command 'ip route' per rimuovere e ri-aggiungere un gateway con una metrica diversa. Per esempio:

ip route del 0.0.0.0/0 via 1.2.3.4 dev eth0 ip route add 0.0.0.0/0 via 1.2.3.4 dev eth0 metric 1