Как мне показать, что определенный сетевой маршрут работает, если этот маршрут не является маршрутом по умолчанию?
Вот текущая ситуация.
$ ip route
default via 192.168.2.1 dev enp0s31f6 proto dhcp metric 100
default via 10.162.141.192 dev wwp0s20f0u11i12 proto static metric 700
10.162.141.128/25 dev wwp0s20f0u11i12 proto kernel scope link src 10.162.141.191 metric 700
172.20.0.0/24 dev docker0 proto kernel scope link src 172.20.0.1 linkdown
172.20.2.0/24 dev br-8038758c8f58 proto kernel scope link src 172.20.2.1
192.168.2.0/24 dev enp0s31f6 proto kernel scope link src 192.168.2.21 metric 100
Я хочу показать, что интерфейс на wwp0s20f0u11i12
работает. То есть я могу открыть соединение, в котором этот интерфейс является источником, подключается к другому адресу и получает ответ.
Я думал что-то вроде curl --interface wwp0s20f0u11i12 https://www.google.com
будет работать, но ответа нет. sudo tcpdump -n -i any -s 0 'tcp port https'
показывает повторные запросы без ответа.
00:55:44.148198 IP 10.162.141.191.41853 > 172.217.6.68.443: Flags [S], seq 3546122463, win 64240, options [mss 1460,sackOK,TS val 4025092804 ecr 0,nop,wscale 10], length 0
Если я сделаю wwp0s20f0u11i12
маршрут по умолчанию, я могу успешно сделать тот же запрос.
Как мне сделать этот запрос, когда wwp0s20f0u11i12
не является маршрутом по умолчанию.
(У меня есть другая система, в которой я не могу изменить интерфейс на маршрут по умолчанию, и я хочу иметь возможность показать, работает ли сеть на этом интерфейсе.)
Я использую Ubuntu 18.04 с NetworkManager.
Насколько я понимаю, интерфейс может использовать только 1 маршрут по умолчанию.
Если вы хотите, чтобы другой интерфейс обрабатывал запросы, для которых определенно требуется Интернет, можно использовать следующие сценарии:
*) Примечание: со стороны сервера не будет видно, что интерфейс wwp0s20f0u11i12 может обрабатывать запросы.
Надеюсь, это поможет