Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс  (Прочитано 1868 раз)

0 Пользователей и 1 Гость просматривают эту тему.

v.kvych

  • Автор темы
  • Гость
Привет,

Никак не получается настроить iptables.  :-\

На 10.0.3.190:3306 (lxcbr0) стоит mysql-server, надо сделать так, чтобы команда

$ mysql -uroot -p -h 127.0.0.1 -P 3306

попадала на 10.0.3.190:3306, то есть 127.0.0.1:3306 => 10.0.3.190:3306

С такими конфигами:

$ iptables-save
# Generated by iptables-save v1.4.12 on Wed Oct  3 11:07:28 2012
*filter
:INPUT ACCEPT [219:19270]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [375:27272]
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 10.0.3.190/32 -i lo -o lxcbr0 -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
COMMIT
# Completed on Wed Oct  3 11:07:28 2012
# Generated by iptables-save v1.4.12 on Wed Oct  3 11:07:28 2012
*nat
:PREROUTING ACCEPT [5:4536]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [2:124]
:POSTROUTING ACCEPT [2:124]
-A PREROUTING -i lo -p tcp -m tcp --dport 3306 -j DNAT --to-destination 10.0.2.190:3306
-A OUTPUT -p tcp -m tcp --dport 3306 -j DNAT --to-destination 10.0.3.190
COMMIT

такой результат:

$ mysql -utrunk -p -h 127.0.0.1 -P 3306
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (110)

Система: ubuntu 12.04, amd64
« Последнее редактирование: 03 Октября 2012, 13:14:45 от v.kvych »

Оффлайн olegik-hp

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #1 : 03 Октября 2012, 14:11:46 »
(Нажмите, чтобы показать/скрыть)
Нет?
1) Лучшая помощь -- Линк на доку.
2) Главное -- не просто сделать, а понять как.
3) Просто пару слов, для понимания -- лучший ответ.

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #2 : 03 Октября 2012, 14:29:46 »
без изменений  ???

Оффлайн olegik-hp

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #3 : 03 Октября 2012, 14:36:17 »
А форвард в ядре разрешен?
1) Лучшая помощь -- Линк на доку.
2) Главное -- не просто сделать, а понять как.
3) Просто пару слов, для понимания -- лучший ответ.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #4 : 03 Октября 2012, 14:39:39 »
Ээээх...
sudo iptables -t nat -A PREROUTING -d 127.0.0.1 -i lo0 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 10.0.3.190По идее так. Но!!!!
Во-первых, локальные процессы не попадают в цепочку PREROUTING таблицы nat. Правда я не уверен по работе интерфейса Loopback, но скорее всего его это тоже касается. Гуру более высоких рангов, или просто которые в теме, поправят.
Во-вторых. Если Вы таким образом хотите нае...мануть сервер MySQL, то Вас настигнет облом, потому как он при авторизации воспримет Вас как удалённый хост, а не локальный

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #5 : 03 Октября 2012, 14:43:37 »
А форвард в ядре разрешен?

$ cat /proc/sys/net/ipv4/ip_forward
1
$ cat /proc/sys/net/ipv4/conf/lo/forwarding
1
$ cat /proc/sys/net/ipv4/conf/lxcbr0/forwarding
1

Пользователь решил продолжить мысль 03 Октября 2012, 14:50:53:
Во-первых, локальные процессы не попадают в цепочку PREROUTING таблицы nat.

Об этом я знаю, но не понимаю, как настроить иначе.

хотите нае...мануть сервер MySQL, то Вас настигнет облом, потому как он при авторизации воспримет Вас как удалённый хост, а не локальный

Если так

mysql -uroot -p -h 10.0.3.190

то все нормально работает.
« Последнее редактирование: 03 Октября 2012, 14:50:53 от v.kvych »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #6 : 03 Октября 2012, 15:49:17 »
откройте тайну: зачем Вам обращаться именно на lo0?

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #7 : 03 Октября 2012, 16:10:25 »
откройте тайну: зачем Вам обращаться именно на lo0?

в проекте есть много модулей с различными настройками доступа к mysql под различные среды, соответственно для локальной среды все ходит по 127.0.0.1

нужно иметь возможность легко изменять версию базы для тестирования.

вот я и подумал, что проще будет создать несколько LXC контейнеров и в случае неодходности менять форвардинг на другую базу

Пользователь решил продолжить мысль 03 Октября 2012, 16:13:08:
буду благодарен если подскажете другой вариант решения этой проблемы  :)
« Последнее редактирование: 03 Октября 2012, 16:13:08 от v.kvych »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #8 : 03 Октября 2012, 17:31:59 »
Перепишите проект нормально, чтобы можно было менять настройку одной вещи в одном месте, а не в десятке.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #9 : 03 Октября 2012, 17:49:18 »
Перепишите проект нормально, чтобы можно было менять настройку одной вещи в одном месте, а не в десятке.

Легко сказать пока проект еще мал, другое дело, когда 100500 различных war-ок и ear-ок деплояться на разных машинах, часть из которых > 7 лет.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #10 : 03 Октября 2012, 17:54:42 »
Тем более, надо искать прямое решение. Если нельзя внести изменения в код проекта напрямую, можно написать скрипт, которые по одному образцу пишет конфигурацию для всех модулей.
Поймите, чем раньше вы исправите кривые места проекта, тем больше времени у вас останется на его развитие.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #11 : 03 Октября 2012, 18:16:48 »
Я согласен, но писать скрипт для автоматического обновления IP-шок также не лучший выход, как минимум нужно постоянно следить, чтобы подмененные IP-шки не попали в svn...

тем более модули работают на разных фрейворках начиная c EJB 2 (facepalm) и уж так сложилось, что у каждого из них другая система конфигурации

Пользователь решил продолжить мысль 03 Октября 2012, 18:54:43:
И все же, сабж реализуем? Бросьте хотя бы ссылки, если когда-то сталкивались с подобным?

Буду очень благодарен
« Последнее редактирование: 03 Октября 2012, 18:54:43 от v.kvych »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #12 : 03 Октября 2012, 19:42:30 »
Нет. Сказали ведь уже.
А то, что у вас конфиги хранятся в репозитории проекта - это просто бардак.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #13 : 03 Октября 2012, 20:58:02 »
Могу предложить в качестве решения запускать mysql с другой базой на том же порту, остановив при этом рабочий вариант.
Костыль, конечно, её той кривизны, но попробовать можно.

v.kvych

  • Автор темы
  • Гость
Re: Настройка port forwarding с 127.0.0.1 на lxcbr0 интерфейс
« Ответ #14 : 03 Октября 2012, 21:11:10 »
Нет. Сказали ведь уже.
А то, что у вас конфиги хранятся в репозитории проекта - это просто бардак.

Ясно, и за это спасибо, не буду без толку копать :)
Ну, проект старий, работает, суппортится, понемногу апгрейдим. На глубокий рефактониг времени нету.

Пользователь решил продолжить мысль 03 Октября 2012, 21:19:48:
Могу предложить в качестве решения запускать mysql с другой базой на том же порту, остановив при этом рабочий вариант.
Костыль, конечно, её той кривизны, но попробовать можно.

Здесь немного другая проблема, раньше пробовал инсталить mysql 5.1 на precise, было много проблем с зависимостями пакетов.
« Последнее редактирование: 03 Октября 2012, 21:21:00 от v.kvych »

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.