Имею несколько "источников" интернета. И нужно распределить трафик как мне нужно.
Немного о том как это у меня выглядит:
есть ppp0 через него прокинут tap0 с локальным адресом 10.2.0.2 и default gw 10.2.0.1.
за ppp0 тоже интернет.
таблица роутинга примерно такая:
Код: Выделить всё
# route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
<ip-of-ovpn-server> 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.2.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tap0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0и вот так
Код: Выделить всё
# ip rule list
0: from all lookup local
32764: from 10.2.0.2 lookup VPN
32765: from 10.218.176.197 lookup PPP
32766: from all lookup main
32767: from all lookup defaultКод: Выделить всё
# ip route list table PPP
default dev ppp0 scope linkКод: Выделить всё
# ip route list table VPN
default via 10.2.0.1 dev tap0таком варианте всё работает.
Я специально убрал основной шлюз.
Теперь я хочу пропинговать например 4.2.2.2 через ppp0 делаю для этого:
Код: Выделить всё
ping 4.2.2.3 -I ppp0и получаю пинги
Далее тоже самое но через tap0
Код: Выделить всё
ping 4.2.2.3 -I tap0получаю No route to host
но если сделать так:
Код: Выделить всё
route add -host 4.2.2.3 gw 10.2.0.1 dev tap0и выполнить
Код: Выделить всё
ping 4.2.2.3то пинги пойдут через tap0 и уже появился route to host
Почему так?