>> Итак, коротко и лаконично, есть два интерфейса, eth0 и ppp0, оба подняты,
>> оба работают, у каждого своя таблица /etc/iproute2/rt_tables, дефолтный роутинг через
>> eth0.
>> Сделать переключение роутинга на запасной канал при отключении основного вообще не проблема,
>> хочу не этого.
>> Хочу странного, для одного клиентского конфига openvpn сделать роутинг через ppp0, чтоб
>> он всегда висел только через него, остальной траффик идёт через eth0.
>> Как это сделать, не могу сообразить. Нужны просто подсказки в какую сторону
>> смотреть, iptables --set-mark?
> ip rule add from client_ovpn_ip table ppp0 Ваш ответ правильный, но для внешнего клиента openvpn.
Я не точно описал задачу, клиентские конфиги имеются ввиду на самом сервере.
Дочерний сервер, в нём два конфига openvpn для подключения к главному серверу.
Один конфиг для работы на основном канале eth0, второй для использования только на запасном канале ppp0. Оба должны быть постоянно подняты на своих каналах, если, конечно, канал работает.
Сообразил следующее.
На главном сервере (1.2.3.4) поднят основной openvpn сервер на порте 11111, и если поднять второй openvpn с отличным от основного портом, что не проблема, например 1.2.3.4:12345
То на дочернем сервере можно сделать нечто вроде
iptables -t mangle -A PREROUTING -p tcp -d 1.2.3.4 --dport 12345 -j MARK --set-mark 2
ip rule add fwmark 2 table ppp
ip route add default via 3.3.3.3 dev ppp0 table ppp
Где 3.3.3.3 адрес ppp0
Вариант с --uid-owner отложил, пользователь один - openvpn
Есть какие-то иные пути реализации?