0

Здравствуйте!

Как реализовать проброс порта таким образом, что бы на хосте отображался реальный IP, а не IP машины, как это происходит с SNAT DNET вместе с IPTABLE?

Схема примерно такая

Машина в и-нете с IP 1.2.3.4

Машина в и-нете с IP 4.5.6.7

Нужно что бы схема работала следующим образом

Клиент c IP 9.8.7.6 стучит на IP 1.2.3.4:27015 > преобразование ??? > IP 4.5.6.7:27234 с клиентским IP 9.8.7.6

Вот правило на IPTABLES, но при таком правиле я не вижу реальных IP адресов, помогите пожалуйста

iptables -t nat -A PREROUTING -p udp --dport 27015 -j DNAT --to-destination 46.174.50.44:27231
iptables -t nat -A POSTROUTING -j MASQUERADE

Кстати протокол UDP используется

1 ответ 1

1

Рискну предположить, что чтобы такая идея сработала, можно было бы второе правило

iptables -t nat -A POSTROUTING -j MASQUERADE

заменить на

iptables -t nat -A POSTROUTING -j SNAT --to-source 9.8.7.6

Но проблема в том, что во-первых у хоста 1.2.3.4 нет такого адреса 9.8.7.6 на сетевом интерфейсе, который мог бы быть источником. А во-вторых, даже если бы и был, то был бы конфликт адресов локального интерфейса хоста 1.2.3.4 и хоста 9.8.7.6, "который стучит на 1.2.3.4". Да и последующие маршрутизаторы, которые передают пакеты от 1.2.3.4 до 4.5.6.7 и обратно, не пропустят эти пакеты, т.к. знают, что по этому маршруту нет адреса 9.8.7.6 -- он доступен по другим маршрутам. Как-то так.

1
  • Спасибо за ответ, это IP 9.8.7.6 клиента, он может быть любым.
    – Maya
    22 июл 2014 в 21:44

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.