Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере (Б) сделать правило желательно через iptables но возможно и другими любыми методами(если дадите хотя бы пример) что бы при доступе Б:999 которого в общем то нет,сразу была трансляция того что на А:999 , т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при этом никаких действий на сервере (А) выполнятся не должно.
Знаю что это возможно,подскажите знатоки.
> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
> (Б) сделать правило желательно через iptables но возможно и другими любыми
> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
> в общем то нет,сразу была трансляция того что на А:999 ,
> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
> этом никаких действий на сервере (А) выполнятся не должно.
> Знаю что это возможно,подскажите знатоки.
> http://www.opennet.me/docs/RUS/iptables/#DNATTARGETИМХО. Это бы сработало, если бы в качестве шлюза для А выступал бы Б.
На вскидку приходит быстрое решение - rinetd. Пример: http://linuxnotes.net/debian/perenapravlenie-portov-s-pomosc...
>> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
> ИМХО. Это бы сработало, если бы в качестве шлюза для А выступал
> бы Б.
> На вскидку приходит быстрое решение - rinetd. Пример: http://linuxnotes.net/debian/perenapravlenie-portov-s-pomosc...ниже таблички расписано про ответные пакеты
>> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
>> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
>> (Б) сделать правило желательно через iptables но возможно и другими любыми
>> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
>> в общем то нет,сразу была трансляция того что на А:999 ,
>> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
>> этом никаких действий на сервере (А) выполнятся не должно.
>> Знаю что это возможно,подскажите знатоки.
> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET+SNAT
хочу дополнить что это нужно для UDP портов
> хочу дополнить что это нужно для UDP портов
>> хочу дополнить что это нужно для UDP портов
> Тогда http://portfwd.sourceforge.net/всё не то,может на питоне или перл есть демон какой-то?
Мне не нужны туча функций и тугого софта,мне нужно будет часто менять ип\запускать и не один раз.
>>> Есть удалённый сервер (А) на котором есть демон,допустим с портом 999,т.е А:999
>>> Есть еще один удалённый сервер (Б) на котором нет ничего,нужно на сервере
>>> (Б) сделать правило желательно через iptables но возможно и другими любыми
>>> методами(если дадите хотя бы пример) что бы при доступе Б:999 которого
>>> в общем то нет,сразу была трансляция того что на А:999 ,
>>> т.е разницу бы не увидели куда бы не подключались,разумеется кроме пинга,при
>>> этом никаких действий на сервере (А) выполнятся не должно.
>>> Знаю что это возможно,подскажите знатоки.
>> http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
> +SNATдык делай
раз - пакет приходит - меняем адрес назначения на А
два - тот же пакет когда уходит меняем адрес источника на Б, чтобы А возращал Б, а Б возвращал тому кто обратился
файрволл стайтфул, и все
получается SNAT+DNAT+statefull FW
stunnel?
мне казалось будет просто,я не совсем понимаю что нужно для этого сделать,это типо прокси по UDP порту и всё.Должны быть банальные правила какие нибудь.
> типо прокси по UDP порту и всё.Должны быть банальные правила какие
> нибудь.Вот тебе банальное правило: http://google.com/search?q=udp+port+forward
Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.
>> типо прокси по UDP порту и всё.Должны быть банальные правила какие
>> нибудь.
> Вот тебе банальное правило: http://google.com/search?q=udp+port+forward
> Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.всё ссылки уже розовые.
>> Но учти, что "Результатов: примерно 2 790 000" намекает: проще не будет.
> всё ссылки уже розовые.Нудк, если всё ещё "я не совсем понимаю что нужно для этого сделать", то кто-то что-то упускает.
Либо мы все тут "забыли" тебе пожевать основы ip сетей (ди ерсте пакетте марширт...) -- но ты ж не спросил.
Либо ты по ссылочкам щёлк-щёлк, а надо было почитать.
Либо... ну, всё против нас.
И да, Re: "мне казалось будет просто", я уже говорил, что тебе показалось?
> мне казалось будет просто,я не совсем понимаю что нужно для этого сделать,это
> типо прокси по UDP порту и всё.Должны быть банальные правила какие
> нибудь.host A (address x.x.x.x)
==
service at port 999host B (address y.y.y.y)
==
stunnel -c -d y.y.y.y:999 -r x.x.x.x:999checking
==
telnet y.y.y.y 999 => host B stunnel redirect => host A port 999Пример годен для stunnel ver. 3
На машине B c помощью iptables:
Для входящих пакетов с dst port 999 сделать DNAT на адрес машины A в nat PREROUTING + SNAT в nat POSTROUTING на адрес интерфейса, которым A соединен с B, чтобы из-за осуществленного SNAT A видил пакет, как пришедший от B.
И в обратную сторону A будет слать на B и далее от B клиенту.
На B включить ip_forward.Можно повтыкать в эти картинки:
http://hlf.netii.net/#routing2steps
> На машине B c помощью iptables:
> Для входящих пакетов с dst port 999 сделать DNAT на адрес машины
> A в nat PREROUTING + SNAT в nat POSTROUTING на адрес
> интерфейса, которым A соединен с B, чтобы из-за осуществленного SNAT A
> видил пакет, как пришедший от B.
> И в обратную сторону A будет слать на B и далее от
> B клиенту.
> На B включить ip_forward.
> Можно повтыкать в эти картинки:
> http://hlf.netii.net/#routing2stepsвы не поняли что ли? А и Б разные сервера в разных странах.
Мне не нужен редирект портов по серверу,а нужен на удалённый сервер
> вы не поняли что ли? А и Б разные сервера в разных
> странах.
> Мне не нужен редирект портов по серверу,а нужен на удалённый серверЭто будет работать независимо от того где сервера находятся.
Если глядя на картинку вы подумали, что я вам предлагаю port redirect в рамках одного хоста или одной сети, то это не так.
Если А и Б находятся в разных сетях и странах, то трафик будет марщрутизироваться между ними через Интернет если у них публичные адреса.
У "А" публичный адрес, на который можно подключиться извне (напр. из сети Интернет)?
>> вы не поняли что ли? А и Б разные сервера в разных
>> странах.
>> Мне не нужен редирект портов по серверу,а нужен на удалённый сервер
> Это будет работать независимо от того где сервера находятся.
> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
> в рамках одного хоста или одной сети, то это не так.
> Если А и Б находятся в разных сетях и странах, то трафик
> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
> Интернет)?даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне хотелось бы пример,а не набор слов как бы.
del
del
>[оверквотинг удален]
>>> Мне не нужен редирект портов по серверу,а нужен на удалённый сервер
>> Это будет работать независимо от того где сервера находятся.
>> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
>> в рамках одного хоста или одной сети, то это не так.
>> Если А и Б находятся в разных сетях и странах, то трафик
>> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
>> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
>> Интернет)?
> даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне
> хотелось бы пример,а не набор слов как бы.http://www.opennet.me/openforum/vsluhforumID10/4997.html
порты убрать, протокол изменить
>[оверквотинг удален]
>>> Если глядя на картинку вы подумали, что я вам предлагаю port redirect
>>> в рамках одного хоста или одной сети, то это не так.
>>> Если А и Б находятся в разных сетях и странах, то трафик
>>> будет марщрутизироваться между ними через Интернет если у них публичные адреса.
>>> У "А" публичный адрес, на который можно подключиться извне (напр. из сети
>>> Интернет)?
>> даже можно было не спрашивать,если они удалённые,как бы они были доступны,и мне
>> хотелось бы пример,а не набор слов как бы.
> http://www.opennet.me/openforum/vsluhforumID10/4997.html
> порты убрать, протокол изменитьлучший ответ,правило iptables -t nat -I POSTROUTING -d 177.188.30.30 -p tcp --dport 4444 -j SNAT --to-source 197.178.20.20 всё сразу решило,я прям не знаю что сказать,жирное спасибо
> лучший ответ,правило iptables -t nat -I POSTROUTING -d 177.188.30.30 -p tcp --dport
> 4444 -j SNAT --to-source 197.178.20.20 всё сразу решилоА, вы сразу подключаетсь на "Б:999"!
С помощью DNAT можно сделать так, что подключающемуся не надо даже про "Б" знать:
iptables -t nat -A PREROUTING -d А_адрес -p tcp --dport А_порт -j DNAT --to-destination Б_адрес
iptables -t nat -A POSTROUTING -d Б_адрес -p tcp --dport А_порт -j SNAT --to-source А_адрес
Т.е. подключаемся как обычно на "А:999", на самом деле соединение идет через "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать, в случае необходимости. Потом если выкинуть "Б" и убрать правила, все станет по старому и будет работать.
Да, делать DNAT для надо в OUTPUT на машине, с которой подключаемся:
iptables -t nat -A OUTPUT -d А_адрес -p tcp --dport А_порт
-j DNAT --to-destination Б_адрес
или на каком-либо вашем шлюзе, через который идет выход к Интернет
iptables -t nat -A PREROUTING -d А_адрес -p tcp --dport А_порт
-j DNAT --to-destination Б_адресДа, кстати. Вы обошлись без DNAT на "Б"?
>[оверквотинг удален]
>
> iptables -t nat -A PREROUTING -d А_адрес -p tcp --dport А_порт
> -j DNAT --to-destination Б_адрес
> iptables -t nat -A POSTROUTING -d Б_адрес -p tcp --dport А_порт -j
> SNAT --to-source А_адрес
>
> Т.е. подключаемся как обычно на "А:999", на самом деле соединение идет через
> "Б" опять на "А", т.е. прозрачно. Можно и порты разные сделать,
> в случае необходимости. Потом если выкинуть "Б" и убрать правила, все
> станет по старому и будет работать.я так и делал,первое правило у меня было,не хватало второго,у меня был переезд демона на другой ИП,теперь даже не заметно,что он переехал,про порты я в курсе.