LINUX.ORG.RU
ФорумAdmin

iptables + mysql + ovz = wtf?


0

0

Доброе время суток!

Есть такие строки на HN (192.168.0.1):
-A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.200.13:3306
-A PREROUTING -d 127.0.0.1 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.200.13:3306
-A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 3307 -j DNAT --to-destination 192.168.200.13:3307
-A PREROUTING -d 127.0.0.1 -p tcp -m tcp --dport 3307 -j DNAT --to-destination 192.168.200.13:3307
-A PREROUTING -d 192.168.0.1 -p udp -m udp --dport 3306 -j DNAT --to-destination 192.168.200.13:3306
-A PREROUTING -d 127.0.0.1 -p udp -m udp --dport 3306 -j DNAT --to-destination 192.168.200.13:3306

В контейнере с адресом 192.168.200.13 установлен MySQL. Насколько понимаю, приведенные правила должны переправить mysql-трафик с 192.168.0.1 на 192.168.200.13 (тут все цепочки разрешены).

Выключаем мускул на 192.168.0.1:
# /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
И пытаемся использовать через переадресацию iptables виртуальный мускул
# mysql -u root -h 192.168.0.1 -p hosting
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.1' (111)

Тут 192.168.0.1 (!!) отвечает, что мускул выключен. вместо того, чтобы перекинуть трафик на 192.168.200.13

Я бы понял, если бы мне «внутренний» MySQL ругался бы на то, что я прав не имею для коннекта... Но такое поведение непонятно.

Для трансляции локальных соединений лучше использовать цепочку OUTPUT, а не PREROUTING.

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

> ХЗ, зачем вы спрашиваете, раз другие ВЕ работают :)
Ну простите.

power
()
Ответ на: комментарий от vasya_p

В приведенном вами случае можно и без НАТа обойтись.
Хотя, вам, конечно виднее, а я не экстрасенс.
Попробуйте почитать маны.

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

маны... маны, конечно, интересно и нужно. особенно, если это что-то тривиальное :) Раз советуете, значит там что-то очевидное и я скоро справлюсь. спасибо за помощь.

vasya_p
() автор топика
Ответ на: комментарий от nnz

не, не помогло (я в *nat заменил PREROUTING на OUTPUT ) - тоже самое

vasya_p
() автор топика

По идее все должно было перекинуться.

nmap -p 3306-3307 192.168.200.13
с 192.168.0.1 точно видет открытые порты?

Если сделать еще что-то вроде

iptables -A POSTROUTING -p tcp -d 192.168.200.13 --dport 3306 -j SNAT --to-source 192.168.200.13

ситуация тоже не меняется?

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

С ХН nmap не работает (жалуется, что venet) а из виртуалки рапортует, что:
root@kolo:/# nmap -p 3306-3307 192.168.200.13

Starting Nmap 4.53 ( http://insecure.org ) at 2009-12-28 00:45 MSK Interesting ports on kolo.office (192.168.200.13):
PORT STATE SERVICE
3306/tcp closed mysql
3307/tcp closed unknown

vasya_p
() автор топика
Ответ на: комментарий от Deleted

s# nmap -PN -p 3306-3307 192.168.200.13

Starting Nmap 4.53 ( http://insecure.org ) at 2009-12-27 23:53 EET
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Failed to find device venet0 which was referenced in /proc/net/route
Interesting ports on 192.168.200.13:
PORT STATE SERVICE
3306/tcp filtered mysql
3307/tcp filtered unknown

vasya_p
() автор топика
Ответ на: комментарий от vasya_p

Значит mysql на 192.168.200.13 работает локально и виден только на его 127.0.0.1. Надо читать мануалы и править конфиг.

Deleted
()
Ответ на: комментарий от vasya_p

В /etc/my.cnf skip-networking закомментировал? bind-address = 192.168.200.13 добавил?

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

Нет. Всё, что по мнению nmap не «open» - не работает или закрыто фаерволом.

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