LINUX.ORG.RU

Трафик через туннель openvpn

 , , ,


0

2

Есть локальная сеть — 192.168.1.0/24. Шлюз сети — 192.168.1.1, сервер vpn — 192.168.1.5. Виртуальная сеть — 10.15.0.0/24. Часть настройки сервера server.conf:

local 192.168.1.5
port 1194
proto udp
dev tun
push "dhcp-option DNS 8.8.8.8"
push "route 192.168.1.0 255.255.255.0"
route 10.15.0.0 255.255.255.0
Правила и маршруты на сервере:
iptables -t nat -A POSTROUTING -s 10.15.0.0/24 -o eth0 -j MASQUERADE
iptables -I FORWARD -s 10.15.0.0/24 -d 192.168.1.0/24 -j ACCEPT

~$ route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
10.15.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Клиент — ноут с 3G-модемом. Часть server.conf:

dev tun
proto udp
port 1194
remote public_ip
client
Таблица маршрутов:
~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.15.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     10.15.0.1       255.255.255.0   UG    0      0        0 tun0

Итак. Сервер vpn с адресом 10.15.0.1 выдает адрес клиенту — 10.15.0.2. Разумеется есть пинг между ними. Так же клиент видит локальную сеть — 192.168.1.0/24. Нужно, чтобы трафик шел через этот туннель.

Ответ на: комментарий от zgen

просто добавить в server.conf сервера эту строку или заменить что-то? если сделать так:

push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"
то на клиенте просто пропадает инет и ничего не происходит, нет обмена даже по сети vpn

conformist ★★★ ()

какой трафик должен идти через этот впн туннель? если весь - то пропиши на клиенте конкретный маршрут до сервера openVPN, если определенный - то тогда маршрут для него через туннель...

TOXA ★★ ()

чтобы трафик шел через этот туннель.

т.е. в инет хочешь ходить сквозь тунель через шлюз — 192.168.1.1 ?

vxzvxz ★★★ ()

в общем делаю так, как советовали:

push "dhcp-option DNS 8.8.8.8"
push "route 192.168.1.0 255.255.255.0"
push "redirect-gateway def1"
инет пропадает полностью до тех пор, пока не остановлю клиента vpn. процессор работает на полную, вот лог происходящего

conformist ★★★ ()
Ответ на: комментарий от conformist

запили прокси squid на 192.168.1.1 и ходи через него

vxzvxz ★★★ ()

Все, сам решил проблему. Оказывается соединение ppp0 добавляет вот такой маршрут:

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
из-за этого сервер openvpn не мог нормально добавить маршруты. Вручную удалил и записал с указанием gw и после этого все заработало.

conformist ★★★ ()
Ответ на: комментарий от vxzvxz

Нет, я исправил соединение через 3G-modem (он добавлял ненужный маршрут) с помощью скрипта в /etc/ppp/ip-up.d/. Вот что он делает:

#!/bin/bash

gw1=`ip route show | grep -E '10.*ppp0' | awk '{print $1}'`

ip route replace default via ${gw1} dev ppp0
т.е. у меня была таблица маршрутов такая:
~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.15.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     10.15.0.1       255.255.255.0   UG    0      0        0 tun0
а стала такая:
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.64.64.64     0.0.0.0         UG    0      0        0 ppp0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
После этих манипуляций нормально отрабатывает директива
push "redirect-gateway def1"
и все работает.

conformist ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.