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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: пробросить SOAP запросы из одной сети в другую c IPtables  (Прочитано 1269 раз)

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

Оффлайн Alexey_Pr

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • Linux в Туле
Добрый день!
У меня есть вебсервер, который взаимодействует с другим вебсервером по средствам soap запросов. Хочу реализовать схему их маршрутизации, как показано ниже.

Именно с подменой адреса на сервере Ubuntu, это сделано, чтобы оперативно перестраивать маршрут, т.к. стабильно только соединение eth0, а сервер 172.23.128.138 может быть доступен по разным интерфейсам и адрес тоже может меняться, именно по этому хочу иметь возможность перестраивать на стороне Ubuntu.

Я попробовал сам разобраться, но запутался, вот такую команду родил:
sudo iptables -t nat -A PREROUTING -d 192.168.0.86 -p tcp -s 192.168.0.3 --dport 80 -j DNAT --to-destination 172.23.128.138но она не работает, запросы не проходят (а может ответы не возвращаются, не сумел выяснить т.к. не контролирую сервер 172.23.128.138 и не могу узнать приходит туда что или нет)
« Последнее редактирование: 11 Сентября 2013, 12:21:06 от Alexey_Pr »
С уважением, Алексей.
http://tulalinux.ru

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
1025/tcp > 80/tcp — в каком месте правил отражено?

Независимость от адреса лучше реализовывать средствами DNS.

Оффлайн Alexey_Pr

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • Linux в Туле
1025/tcp > 80/tcp — в каком месте правил отражено?

Независимость от адреса лучше реализовывать средствами DNS.
Да, запутался. Вот таки будет вернее:
sudo iptables -t nat -A PREROUTING -d 192.168.0.86 -p tcp --dport 1025 -s 192.168.0.3 -j DNAT --to-destination 172.23.128.138:80
Я включил трассировку, чтобы понять что происходит. Вот кусок. Похоже правило сработало и запрос все-таки уехал на DST=172.23.128.138 (см. последнюю строку). Но ответ так и не пришел.
[107582.898009] TRACE: filter:INPUT:policy:1 IN=eth0 OUT= MAC=50:e5:49:cf:d2:c0:00:18:f3:f2:e3:95:08:00 SRC=192.168.0.3 DST=192.168.0.86 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=3465 DF PROTO=TCP SPT=2323 DPT=50155 SEQ=1274676977 ACK=520171187 WINDOW=64808 RES=0x00 ACK FIN URGP=0 OPT (0101080A000F2CCF01994074)
[107583.269718] TRACE: raw:PREROUTING:rule:2 IN=eth0 OUT= MAC=50:e5:49:cf:d2:c0:00:18:f3:f2:e3:95:08:00 SRC=192.168.0.3 DST=192.168.0.86 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=3467 DF PROTO=TCP SPT=3516 DPT=1025 SEQ=1099234773 ACK=0 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405B401010402)
[107583.269747] TRACE: raw:PREROUTING:policy:3 IN=eth0 OUT= MAC=50:e5:49:cf:d2:c0:00:18:f3:f2:e3:95:08:00 SRC=192.168.0.3 DST=192.168.0.86 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=3467 DF PROTO=TCP SPT=3516 DPT=1025 SEQ=1099234773 ACK=0 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405B401010402)
[107583.269801] TRACE: filter:FORWARD:policy:1 IN=eth0 OUT=eth0 MAC=50:e5:49:cf:d2:c0:00:18:f3:f2:e3:95:08:00 SRC=192.168.0.3 DST=172.23.128.138 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=3467 DF PROTO=TCP SPT=3516 DPT=80 SEQ=1099234773 ACK=0 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (020405B401010402)

На счет DNS тут не подойдет. В первом посте я не полную картину раскрыл. Сервер 192.168.0.3 это рабочее место тестировщика ( 1 шт), в нем уже есть настройка на сервер который он тестирует - 192.168.0.86. Идея в том, чтобы вместо этого сервера подложить другой (есть целый список из 20 серверов). Проблема в том, что не кто всем тестировщик может получить доступ, так некоторые подключены через vpn, другие openvpn, какие-то доступны через прокси. В общем тот еще зоопарк, но сделать с ним ничего нельзя. Поэтому комп Ubuntu будет таким хитрым коммутатором.

Вот это смущает SRC=192.168.0.3 DST=172.23.128.138
Насколько я понимаю когда придет ответ с SRC=172.23.128.138 то он придет на  DST=192.168.0.3, а сервер 192.168.0.3 ждет ответа от 192.168.0.86. Может по этому не работает?
« Последнее редактирование: 11 Сентября 2013, 14:17:48 от Alexey_Pr »
С уважением, Алексей.
http://tulalinux.ru

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
В общем тот еще зоопарк, но сделать с ним ничего нельзя. Поэтому комп Ubuntu будет таким хитрым коммутатором.
OK, с этим понятно, поехали дальше...

Насколько я понимаю когда придет ответ с SRC=172.23.128.138 то он придет на  DST=192.168.0.3
Уверены, что сервер 172.23.128.138 сможет найти правильный маршрут до серого IP 192.168.0.3?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
А iptables-save с сервера где?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн Alexey_Pr

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • Linux в Туле
Добавил вот это
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Заработало! Надо теперь подумать все ли правильно
С уважением, Алексей.
http://tulalinux.ru

 

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