На моем сервере Linux (Ubuntu), как я могу настроить трафик, исходящий от одного из моих сетевых интерфейсов (мое устройство VPN - ppp0), для маршрутизации через его собственный адрес шлюза?
Предостережения:
Конечная цель - иметь возможность настроить одно локальное приложение для привязки к IP-адресу VPN и связи только через VPN, но никакой другой трафик сервера не должен маршрутизироваться через него. Я настроил его вот так, но мне, кажется, нужны какие-то дополнительные правила маршрутизации, чтобы заставить его работать.
Если VPN на самом деле действует как прокси, то адреса источника должны быть переписаны на дальний конец сеанса ppp (если это не ненумерованный интерфейс, но я не видел этого на vpn). Если он действительно маршрутизируется нормально и пункт назначения может быть где угодно, тогда это становится более интересной проблемой.
Базовое решение изложено в LARTC - вам нужно создать вторую таблицу маршрутизации, указав VPN-туннель в качестве маршрута по умолчанию, а затем добавить фильтры, чтобы направить некоторый трафик для просмотра вторичной таблицы маршрутизации вместо таблицы по умолчанию. Если вам нужно только одно приложение для использования туннеля, и приложение может связываться с IP-адресом туннельного интерфейса, то маршрутизация на основе политик от исходного IP-адреса должна помочь - см. Пример здесь: http://lartc.org/howto/lartc.rpdb.html
вы можете использовать dev
параметр для сохранения маршрута к указанному устройству.
route add -net 0.0.0.0 gw ENTER-GATEWAY-HERE dev ppp0