всем доброго дня! Знаю, что яндекс выдает кучу статей по сабжу. и половина из них начинается с "нигде не нашел, а надо было так...", но ответа на свой вопрос так и не нашел. а так же подразумеваю, что вопрос скорее по маршрутизации, нежели по, собственно, openvpn
итак, имеем 2 сети. 192.168.3.0/24 (главный офис) и 192.168.33.0/24 (филиал). в каждой сети есть роутер, одним концом в локаль, другим в интернет. хочется поставить отдельные машинки с Debian и поднять на них впн так, чтобы сети видели друг-друга
как-то так должно выглядеть https://yadi.sk/i/HFZw_bK0bJ388
впн сервер:
eth0 192.168.3.101
tun0 10.8.0.1
конфиг:
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
komp-lzo
persist-key
persist-tun
verb 3
client-config-dir ccd
push "route 192.168.3.0 255.255.255.0"
route 192.168.33.0 255.255.255.0
# Затем создал файл ccd/client, содержащий такую строку: iroute 192.168.33.0 255.255.255.0
log /etc/openvpn/logs/openvpn.log
status /etc/openvpn/logs/openvpn-status.log
файле /etc/sysctl.conf раскомментировал строчку: net.ipv4.ip_forward=1
на роутере в сети сервера (192.168.3.1) (он же является шлюзом по-умолчанию для всех пк сети) прописал маршрут вида: все, что в 192.168.33.0/24 и в 10.8.0.0/24 - через 192.168.3.101
впн клиент:
eth0 192.168.33.148
tun0 10.8.0.6 (такой получает от впн-сервера. специально нигде не указывал)
конфиг:
client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt #
key /etc/openvpn/keys/client.key #
ns-cert-type server
comp-lzo
log /etc/openvpn/logs/openvpn.log
verb 3 так же включил пересылку между интерфейсами (файле /etc/sysctl.conf раскомментировал строчку: net.ipv4.ip_forward=1)
на роутере (192.168.33.149) (он же является шлюзом по-умолчанию для всех пк сети) прописал маршрут вида: все, что в 192.168.3.0/24 и в 10.8.0.0/24 - через 192.168.33.148
и вот тут уперся лбом в стену. при таком раскладе:
из сети клиента (с машинки 192.168.33.80) пингуется:
- впн-клиент по обоим интерфейсам (10.8.0.6, 192.168.33.148)
- впн-сервер по обоим интерфейсам (10.8.0.1, 192.168.3.101)
и все. дальше сервера пакеты не пошли
так же ведут себя пинги и с самого впн-клиента (192.168.33.148)
из сети сервера (с машинки 192.168.3.10) пингуется:
- впн-сервер по обоим интерфейсам (10.8.0.1, 192.168.3.101)
- впн-клиент по обоим интерфейсам (10.8.0.6, 192.168.33.148)
дальше клиента пакеты не идут. пинги с самого впн-сервера ведут себя так же.
мат часть ниже плинтуса, потому не совсем понятно какими средствами разруливать дальше. на сколько я понимаю, от openvpn я итак уже все что нужно получил. дальше нужно маршрутизировать пакеты иными средствами? или я не прав и что-то недокрутил в конфигах?
В сети часто предлагают маскарадинг
например, на впн-сервере пишу
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. В этом случае с клиента начинает пинговатсья сеть за сервером, но, из сети за клиентом она не пингуется, а адресом источника пакетов выставляется ip впн- сервера, что логично, но не удобно. хотелось бы видеть реальный ip-адрес источника.
и вообще, мне кажется, что NAT - не лучший претендент в данном случае. с наскока iptables взять не получилось, но там есть цепочки forwarding. может правильно использовать ее? только хз как. или вообще маршрут в ruote прописать надо? но тогда какой? никак не соображу в каком месте затыкается пакет и как правильно его прогнать
буду признателен за любую помощь
