The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Mysql + DNAT + openvpn"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Mysql + DNAT + openvpn"  +/
Сообщение от Tio email on 14-Авг-09, 13:45 
Есть роутер, который является opnvpn-клиентом к некоторому серверу.

192.168.2.63 - ip роутера в локальной сети.
10.0.0.14 - ip роутера в туннеле openvpn
10.0.0.1 - ip сервера в туннеле openvpn
192.168.2.x1 - ip клиентской машины в локальной сети за роутером, соединение с которой я хочу пробросить на 10.0.0.1:3306

Сервера по туннелю пингуют друг друга и могут взаимодействовать на уровне сервисов (например, с роутера можно подключиться через туннель на openvpn-сервер на порт 3306):

mysql -u user -h 10.0.0.1 -p   - если запускать с роутера, то проходит.


За роутером есть локальная сеть (192.168.2.0/24), хотелось бы, чтобы все пакеты из локальной сети (а в моем примере ниже - с локального адреса 192.168.2.138) на порт 3306, адресованные внешнему серверу server1.com перенаправлялись на 10.0.0.1:3306.

В фаероволле на роутере все цепочки с правилом ACCEPT по умолчанию. Поднят форвардинг и snat на выданный провайдером ip для нашего роутера.

Делаю DNAT:

iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d server1.com --dport 3306 -j DNAT --to-destination 10.0.0.1:3306
iptables -t nat -A PREROUTING -s 192.168.2.138 -p udp -d server1.com --dport 3306 -j DNAT --to-destination 10.0.0.1:3306

Результат с машины 192.168.2.138:
C:\Program Files\MySQL\bin>mysql -u user -h server1.com -p
Enter password: ****
ERROR 2003 (HY000): Can't connect to MySQL server on 'server1.com' (10060)


Куда копать и что делать? Может дело в SNAT? Он мешает DNAT? Помогите, пожалуйста!

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Mysql + DNAT + openvpn"  +/
Сообщение от shadow_alone (ok) on 14-Авг-09, 14:52 
А зачем вообще тебе NAT?
просто пропиши маршруты, забудь про NAT.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Mysql + DNAT + openvpn"  +/
Сообщение от ALex_hha (ok) on 14-Авг-09, 15:53 
>А зачем вообще тебе NAT?
>просто пропиши маршруты, забудь про NAT.

Вы ошибаетесь, откуда VPN сервер (10.0.0.1) будет знать куда слать пакеты для подсети 192.168.2.0/24?

Если нет возможности на стороне VPN сервера прописать маршрут в вашу подсеть, то используй NAT

Что то типа

# iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d server1.com --dport 3306 -j DNAT --to-destination 10.0.0.14:3306

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Mysql + DNAT + openvpn"  +/
Сообщение от shadow_alone (ok) on 14-Авг-09, 15:58 
>Если нет возможности на стороне VPN сервера прописать маршрут в вашу подсеть,
>то используй NAT

вот про это вы впервые пишите.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Mysql + DNAT + openvpn"  +/
Сообщение от ALex_hha (ok) on 14-Авг-09, 17:17 
>>Если нет возможности на стороне VPN сервера прописать маршрут в вашу подсеть,
>>то используй NAT
>
>вот про это вы впервые пишите.

это было лишь предположение, о топологии сети ТС я ничего не знаю ;)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Mysql + DNAT + openvpn"  +/
Сообщение от Tio email on 14-Авг-09, 16:34 
>[оверквотинг удален]
>Вы ошибаетесь, откуда VPN сервер (10.0.0.1) будет знать куда слать пакеты для
>подсети 192.168.2.0/24?
>
>Если нет возможности на стороне VPN сервера прописать маршрут в вашу подсеть,
>то используй NAT
>
>Что то типа
>
># iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d server1.com
>--dport 3306 -j DNAT --to-destination 10.0.0.14:3306

Но ведь 10.0.0.14 - это адрес моего роутера в туннеле, на котором не запущен Mysql на порту 3306, а Mysql висит на 10.0.0.1.

И --to-destination 10.0.0.14:3306 отправит пакеты на несуществующий порт (или я чего не понял?) ?

Или вы имеете виду такое (счас попробовал, все равно не работает):

iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d 10.0.0.14 --dport 3306 -j DNAT --to-destination 10.0.0.1:3306

?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Mysql + DNAT + openvpn"  +/
Сообщение от ALex_hha (ok) on 14-Авг-09, 17:19 
>[оверквотинг удален]
>
>
>И --to-destination 10.0.0.14:3306 отправит пакеты на несуществующий порт (или я чего не
>понял?) ?
>
>Или вы имеете виду такое (счас попробовал, все равно не работает):
>
>iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d 10.0.0.14 --dport
>3306 -j DNAT --to-destination 10.0.0.1:3306
> И --to-destination 10.0.0.14:3306 отправит пакеты на несуществующий порт (или я чего не понял?

да, то я ошибся :)

# iptables -t nat -A POSTROUTING -s 192.168.2.138 -p tcp -d 10.0.0.1 --dport 3306 -o tun0 -j SNAT --to-source 10.0.0.14

вместо tun0 подставь свое устройство

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Mysql + DNAT + openvpn"  +/
Сообщение от Tio email on 14-Авг-09, 17:39 
>[оверквотинг удален]
>>iptables -t nat -A PREROUTING -s 192.168.2.138 -p tcp -d 10.0.0.14 --dport
>>3306 -j DNAT --to-destination 10.0.0.1:3306
>> И --to-destination 10.0.0.14:3306 отправит пакеты на несуществующий порт (или я чего не понял?
>
>да, то я ошибся :)
>
># iptables -t nat -A POSTROUTING -s 192.168.2.138 -p tcp -d 10.0.0.1
>--dport 3306 -o tun0 -j SNAT --to-source 10.0.0.14
>
>вместо tun0 подставь свое устройство

Спасибо большое! Заработало!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру