Мой ноутбук подключен к двум сетям, WiFi и Ethernet. Это две совершенно разные подсети. Ethernet-соединение - это маршрутизатор разработки, над которым я работаю. В начале дня, когда я подключаю все, у меня есть сценарий, который устанавливает маршрут, чтобы я мог правильно подключиться к устройству Ethernet, без этого он не работает. Это простой небольшой маршрут, добавьте скрипт route add 192.168.1.1 dev enp0s20u3u1
.
Иногда я хотел бы иметь возможность направить весь мой трафик через это устройство. Было бы очень удобно иметь одну команду для переключения, но как бы легко это ни было, она не работает для меня.
Я отключил WiFi и использовал route add default gw 192.168.1.1
для создания нового маршрута по умолчанию. Это не работает.
✔ ~$ 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 ~$
Я убежден, что это проблема маршрутизации, потому что это работает:
$ 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
Почему сетевой стек ядра игнорирует маршрут по умолчанию, который я создал? У него неправильные флаги, метрика, ссылка? Гуглить эту проблему сложно, потому что есть миллион вопросов с этим симптомом, когда у пользователя просто нет настройки шлюза по умолчанию.