Доброе время суток!
Есть такие строки на 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 ругался бы на то, что я прав не имею для коннекта... Но такое поведение непонятно.