У меня есть роутер OpenWRT с Backfire 10.03.1-rc3 (арка: ядро brcm 2.6)
Я настроил клиент OpenVPN, соединяющий мой маршрутизатор с локальной сетью на рабочем месте, и он отлично работает, я могу подключаться от маршрутизатора к сетям (нескольким) на рабочем месте.
Мой клиент OpenVPN uci-config выглядит так:
config 'openvpn' 'stream_client'
option 'nobind' '1'
option 'float' '1'
option 'client' '1'
option 'reneg_sec' '0'
option 'management' '127.0.0.1 31194'
option 'explicit_exit_notify' '1'
option 'verb' '3'
option 'persist_tun' '1'
option 'persist_key' '1'
list 'remote' 'remote.address.cutted'
option 'ca' '/lib/uci/upload/cbid.openvpn.stream_client.ca'
option 'key' '/lib/uci/upload/cbid.openvpn.stream_client.key'
option 'cert' '/lib/uci/upload/cbid.openvpn.stream_client.cert'
option 'enable' '1'
option 'dev' 'tun1'
Я установил зону STREAM_VPN, чтобы разрешить входящий / исходящий трафик, и я добавил правила для зоны между зонами lan <-> vpn и vpn <-> lan
config 'zone'
option 'name' 'stream_vpn'
option 'network' 'stream_vpn'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
config 'forwarding'
option 'src' 'lan'
option 'dest' 'stream_vpn'
config 'forwarding'
option 'src' 'stream_vpn'
option 'dest' 'lan'
И конфигурация интерфейса:
config 'interface' 'stream_vpn'
option 'proto' 'none'
option 'ifname' 'tun1'
option 'defaultroute' '0'
option 'peerdns' '0'
Теперь с моего маршрутизатора все работает нормально, проблема в том, что я не могу подключиться с компьютера внутри локальной сети к хостам в сетях, предоставляемых подключением vpn: /
Что я пропустил или что делаю не так?
И как я могу принудительно использовать указанный DNS при подключении к vpn? (Я знаю, что сервер должен использовать параметр PUSH DNS, но это только маршруты PUSHes)
Скорее всего, у вас не настроена маршрутизация на стороне клиента openvpn. http://openvpn.net/index.php/open-source/documentation/howto.html#scope Раздел «Включение нескольких машин на стороне клиента при использовании маршрутизируемой VPN (dev tun)» должен адресовать именно этот сценарий.
Не знаю, помог ли ваш ответ @canni, но мне он помог.
iroute
должны использоваться для каждого пользователя.
Тогда и ядро, и OpenVPN будут знать маршруты, и каждый хост в обеих локальных сетях сможет общаться через VPN.
Добавить option masq '1'
в config 'zone'
option 'name' 'stream_vpn'
option 'network' 'stream_vpn'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option masq '1' # IMPORTANT!!!
Вы можете попробовать несколько настроек конфигурации.
Но просто добавление этого в настройках сервера делает волшебный трюк:
client-to-client