Всем привет. Ковыряюсь неделю, не понимаю как добиться нужного.. Помогите плиз..
Итак, шлюз на centos. Локальная подсеть 192.168.0.0/24. Машины с адресами с 1 по 240 натятся через eth1
-A POSTROUTING -o eth1 -m iprange --src-range 192.168.0.1-192.168.0.240 -j SNAT --to-source External_IP
Есть несколько виртуалок в сети с адресами 241-245 и они ходят в инет через впн, каждая через свой туннель..
-A POSTROUTING -s 192.168.0.241/32 -o tun1 -j MASQUERADE
-A POSTROUTING -s 192.168.0.242/32 -o tun2 -j MASQUERADE
-A POSTROUTING -s 192.168.0.243/32 -o tun3 -j MASQUERADE
-A POSTROUTING -s 192.168.0.244/32 -o tun4 -j MASQUERADE
-A POSTROUTING -s 192.168.0.245/32 -o tun5 -j MASQUERADE
Туннели поднимаются на шлюзе с помощью скриптов типа:
openvpn --config /etc/openvpn/vpn1.conf &
sleep 2
ip rule add from 192.168.0.241 table vpn1.out
ip route add default dev tun1 table vpn1.out
client
remote external-vpn-ip 443
dev tun1
proto udp
auth-user-pass vpn1
pull-filter ignore "redirect-gateway"
resolv-retry infinite
persist-key
persist-tun
nobind
cipher AES-256-CBC
auth SHA256
keepalive 10 180
explicit-exit-notify 2
script-security 2
remote-cert-tls server
route-delay 5
tun-mtu 1500
fragment 1300
mssfix 1300
log-append /var/log/vpn1.log
verb 4
comp-lzo
<ca> ... </ca>
<cert ... </cert>
<key> ... </key>
И всё вроде был работает как надо, если бы не один нюанс...
На этом же шлюзе поднят опенвпн ещё и в качестве сервера..
Клиенты получают ip с подсети 192.168.2.0/24
Так вот они попасть на эти виртуалки не могут, т.к. весь трафик с виртуалок заворачивается в туннель..
Я подозреваю, что в скрипте запуска клиентских туннелей нужно после:
ip rule add from 192.168.0.241 table vpn1.out
ip route add default dev tun1 table vpn1.out
ip route add 192.168.2.0/24 via 192.168.0.1
Подключаюсь с удаленной машины, получаю ip 192.168.2.3
Компы с адресами 192.168.0.1-192.168.0.240 вижу, а 192.168.0.241-192.168.0.245 не вижу..
Натолкните на путь истинный, пожалуйста..