2

Я использую клиент openvpn, при моей конфигурации по умолчанию GW по умолчанию перезаписывается. (перенаправить шлюз на сервер)
У меня есть 2 таблицы маршрутизации на моем клиенте linux, 1 (по умолчанию eth0), 100 = tun0, который добавлен моим скриптом up.
Что мне нужно, это иметь разделенную маршрутизацию с использованием 2 разных таблиц маршрутизации.

Конфигурация клиента openvpn:

client
dev tun
proto udp
remote blea.com
auth-user-pass
persist-key
persist-tun
remote-cert-tls server
reneg-sec 0
keepalive 10 60
route-nopull
pull-filter ignore "ifconfig-ipv6"
script-security 2
up /etc/openvpn/route-up.sh
mute-replay-warnings
explicit-exit-notify 3
cipher AES-256-CBC
auth SHA512
tls-version-min 1.2

скрипт маршрутизации:

if [ $(/bin/cat /etc/iproute2/rt_tables | /bin/grep $dev | /usr/bin/wc -l) -eq 0 ]; then
/bin/echo "100 tun0" >> /etc/iproute2/rt_tables

/bin/ip route add default via $route_vpn_gateway dev $dev table $dev

Существует 1 проблема, когда при использовании route-nopull переменная среды $ route_vpn_gateway не заполняется.
Когда я отключаю route-nopull, шлюз по умолчанию в моей таблице маршрутизации по умолчанию перезаписывается, поэтому весь трафик проходит через туннель.
У меня нет доступа к серверу, поэтому я ничего не могу там изменить.
GW по умолчанию, который мне обслуживает сервер OpenVPN, является динамическим, поэтому я не могу установить этот статический.

Как обойти это?

1 ответ1

3

Один из способов сделать это - использовать параметр route-noexec (вместо route-nopull). Это полностью заполнит ваши переменные среды route- *, но на самом деле не изменит вашу таблицу маршрутов, она оставит все изменения маршрута в вашем route-up.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .