Il mio laptop è collegato a due reti, WiFi ed Ethernet. Queste sono due sottoreti completamente separate. La connessione ethernet è un router di sviluppo su cui sto lavorando. All'inizio della giornata quando connetto tutto, ho uno script che imposta la rotta in modo che possa connettermi correttamente al dispositivo ethernet, senza che ciò funzioni. Questo è un po 'semplice route add 192.168.1.1 dev enp0s20u3u1
script.
A volte, mi piacerebbe essere in grado di indirizzare tutto il mio traffico attraverso questo dispositivo. Sarebbe molto comodo avere un singolo comando da passare, ma per quanto facile dovrebbe essere non funziona per me.
Ho disconnesso il WiFi e usato route add default gw 192.168.1.1
per creare la nuova rotta predefinita. La sua non funziona.
✔ ~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 255.255.255.0 UG 0 0 0 enp0s20u3u1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s20u3u1
192.168.1.2 0.0.0.0 255.255.255.255 UH 102 0 0 enp0s20u3u1
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
✔ ~$ ping 8.8.8.8
connect: Network is unreachable
✘-2 ~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.31 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.684 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.684/1.000/1.317/0.318 ms
✔ ~$ ssh admin@192.168.1.1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=56 time=7.621 ms
64 bytes from 8.8.8.8: seq=1 ttl=56 time=4.963 ms
^CKilled by signal 2.
✘-255 ~$
Sono convinto che questo è un problema di routing perché funziona:
$ route add 8.8.8.8 gw 192.168.1.1
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=56 time=8.323 ms
Perché lo stack di rete del kernel ignora il percorso predefinito che ho creato? Ha le bandiere sbagliate, metrica, ref? Cercare su Google questo problema è difficile perché ci sono un milione di domande con questo sintomo in cui l'utente non ha una configurazione di gateway predefinita.
genmask
dovrebbe essere0.0.0.0
anche. Non sono sicuro del motivo per cui non lo è, in quanto sembra che il tuo comando sia giusto.