Коллеги, есть интересная задача.
общее описание:
Есть OpenVPN-сервер (linux), работающий с клиентами по схеме/топологии p2p
У сервера несколько Интернет-каналов/несколько "белых" IP.
Есть клиент OpenVPN (тоже linux), соединяющийся с ovpn-сервером.
У клиента так же два или три Интернет-канала
У "клиента" есть своя сеть /24, маршрутизируемая со стороны ovpn-сервера чз ovpn-соединение.
Отказоустойчивость/переключение каналов достигается перепрописыванием адреса сервера в конфиге впн-клиента, а так же перепрописыванием маршрута до впн-сервера через нужный интернет канал на клиенте.
Есть кое какие недостатки, а именно - ВПН соединение только одно.
Соотв. в любой момент времени, работает только один канала связи, два других тихо "курят в стороне".
Хочется реализовать распределение нагрузки по резервным каналам подняв дополнительное ВПН-соединение.
Нужные классы трафика с стороны локальной сети клиента - заворачивать в нужное ВПН-соедение буду через PBR, это вообщем то не проблема.
Проблема-то как со стороны ВПН-сервера.
Он будет видеть маршрут до локальной сети клиента через два туннеля, что вообщем-то не проблема.
Но , вот возвращать нужный трафик в нужный ВПН-туннель, согласно стандартным записям в таблице маршрутов (destination based routing) явно не
получится.
А хотелось бы.
Может быть кто-то уже озадачивался подобной проблемой балансировки трафика по двум или трём ovpn-туннелям.
Я при первом рассмотрении вижу решение "в лоб". Если делать PBR до на основании src_ip.
Скажем если надо диапазон адресов x.y.z.200 - 216 зарулить в тунель поверх резервного канала , то сгенерить специфический маршрут для этих адресов и средствами igp (rip,ospf и т.п.) заанонсировать его в сторону сервера.
Но вот если надо зарулить трафик не на основании src_ip а ,скажем, весь ftp-трафик через резервный туннель, то тут затрудняюсь что-либо придумать.