I have a linux machine (Debian 10 based OS), with 3 hardware interfaces connected to the internet, 2 being USB modems: ifconfig gives ->
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether b8:27:eb:95:a0:2c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 14258 bytes 1613046 (1.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14258 bytes 1613046 (1.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.199.25.78 netmask 255.255.255.255 destination 10.64.64.64
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 7 bytes 130 (130.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 181 (181.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.227.136.222 netmask 255.255.255.255 destination 10.64.64.65
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 7 bytes 130 (130.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 181 (181.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.105 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::e1b9:e62c:3140:bfc5 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:c0:f5:79 txqueuelen 1000 (Ethernet)
RX packets 26548 bytes 5187998 (4.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20025 bytes 5171235 (4.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0 is the default interface here, when I try: curl --interface ppp1 ifconfig.me
or curl --interface ppp0 ifconfig.me
the request times out, with sudo, sudo curl --interface ppp1 ifconfig.me
gives response but the equivalent for ppp0 times out, what are the right routing rules to add to be able to select the hardware interface to route through?
Actual routing rules:
default via 192.168.2.1 dev wlan0 proto dhcp src 192.168.2.105 metric 303
10.64.64.64 dev ppp0 proto kernel scope link src 10.233.6.240
10.64.64.65 dev ppp1 proto kernel scope link src 10.149.182.92
192.168.2.0/24 dev wlan0 proto dhcp scope link src 192.168.2.105 metric 303
ip rule
gives:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
ip -4 route show table all
:
default via 192.168.2.1 dev wlan0
10.64.64.64 dev ppp0 proto kernel scope link src 10.235.137.107
10.64.64.65 dev ppp1 proto kernel scope link src 10.121.55.130
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.101
local 10.121.55.130 dev ppp1 table local proto kernel scope host src 10.121.55.130
local 10.235.137.107 dev ppp0 table local proto kernel scope host src 10.235.137.107
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.2.0 dev wlan0 table local proto kernel scope link src 192.168.2.101
local 192.168.2.101 dev wlan0 table local proto kernel scope host src 192.168.2.101
broadcast 192.168.2.255 dev wlan0 table local proto kernel scope link src 192.168.2.101
PS. after having rebooted, all the routing I tried was gone(as expected)