Переадресация порта на соседний сервер, Joneg, 07-Июл-10, 18:21 [смотреть все]Доброго времени суток.На сервере стоит Slackware 13.1, ип сервера скажем 10.10.10.10 Ип всем известен, все к нему обращаются за разными сервисами (http, ftp, dc++) и на опр. порт 1234 tcp скажем. Однако приложение это (которое 1234 обслуживает) есть только под винду. СТавить иксы, вайн на сервер не хочу. Хочу поставить рядом второе железо под виндой, ип будет 10.10.10.11 Скажите пожалуйсто как организовать переадресацию пакетов, приходящих на порт 1234 и перенаправлять их на сервер 10.10.10.11. Те по сути нужно подменить адрес назначения и выкинуть из интерфейса обратно. Делал подобное: iptables -t nat -A PREROUTING --dst 10.10.10.10 -p tcp --dport 1234 -j DNAT --to-destination 10.10.10.10:1234 Однако никакого результата не получил. В Linux новичёк. Заранее спасибо за помошь.
|
- Переадресация порта на соседний сервер, reader, 20:16 , 07-Июл-10 (1)
iptables -t nat -A PREROUTING --dst 10.10.10.10 -p tcp --dport 1234 -j DNAT --to-destination 10.10.10.11:1234но есть нюансы, что значит рядом. клиенты тоже в этой подсети?
- Переадресация порта на соседний сервер, Joneg, 22:46 , 07-Июл-10 (2)
>iptables -t nat -A PREROUTING --dst 10.10.10.10 -p tcp --dport 1234 -j >DNAT --to-destination 10.10.10.11:1234 > >но есть нюансы, что значит рядом. клиенты тоже в этой подсети? Мм клиенты не в этой подсети, но второй сервер в этой подсети, в данном случае представим серверную подсеть 10.10.10.0/24, а клиенты предположим в 172.0.0.0/8. Не суть... Но помоему будет достаточно, чтобы сервер пакеты отправлял на 10.10.10.11 изменяя лишь адрес назначения. А второй сервер (10.10.10.11) будет отправлять ответы на эти пакеты уже соглясуя со своим основным шлюзом, те пакеты найдут своё назначение.
- Переадресация порта на соседний сервер, aaa, 09:01 , 08-Июл-10 (3)
>[оверквотинг удален] > >Мм клиенты не в этой подсети, но второй сервер в этой подсети, > >в данном случае представим серверную подсеть 10.10.10.0/24, а клиенты предположим в 172.0.0.0/8. >Не суть... > >Но помоему будет достаточно, чтобы сервер пакеты отправлял на 10.10.10.11 изменяя лишь >адрес назначения. А второй сервер (10.10.10.11) будет отправлять ответы на эти >пакеты уже соглясуя со своим основным шлюзом, те пакеты найдут своё >назначение. Надо еще форвард пакетов включить и в цепочку форвард правила добавить echo "1" > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD --dst 10.10.10.10 -p tcp --dport 1234 -j ACCEPT iptables -A FORWARD --src 10.10.10.10 -p tcp --sport 1234 -j ACCEPT
- Переадресация порта на соседний сервер, Andrey Mitrofanov, 09:10 , 08-Июл-10 (4)
- Переадресация порта на соседний сервер, Joneg, 09:36 , 08-Июл-10 (8) –1
Логика не давала написать правило обратного преобразования (SNAT), в моей ситуации оно по сути не нужно. Однако по всей видимости включается преобразование только когда описаны правила в обе стороныiptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 1234 -j DNAT --to-destination 10.10.10.11:1234 iptables -t nat -A POSTROUTING -d 10.10.10.11 -p tcp --dport 1234 -j SNAT --to-source 10.10.10.10 Всё работает. Кстати в первом моём посте, где я написал: "Делал подобное: iptables -t nat -A PREROUTING --dst 10.10.10.10 -p tcp --dport 1234 -j DNAT --to-destination 10.10.10.10:1234" Опечатка --to-destination 10.10.10.11:1234
- Переадресация порта на соседний сервер, reader, 10:28 , 08-Июл-10 (9) +1
>Логика не давала написать правило обратного преобразования (SNAT), в моей ситуации оно >по сути не нужно. Однако по всей видимости включается преобразование только >когда описаны правила в обе стороны >это не логика, это скорей незнание как работает сеть. и кстати типичная ошибка многих. проанализируйте как шел пакет от клиента и как он возвращался и с какими адресами, если не использовать SNAT. https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET читайте внимательно то что под табличкой. эти правила независимы друг от друга. >[оверквотинг удален] > >Всё работает. > >Кстати в первом моём посте, где я написал: >"Делал подобное: >iptables -t nat -A PREROUTING --dst 10.10.10.10 -p tcp --dport 1234 -j >DNAT --to-destination 10.10.10.10:1234" > >Опечатка >--to-destination 10.10.10.11:1234
- Переадресация порта на соседний сервер, Joneg, 11:19 , 08-Июл-10 (10)
Спасибо за помошь, теперь всё встало на свои места. Действителньо по другому представлял этот момент.
- Переадресация порта на соседний сервер, Joneg, 10:03 , 06-Авг-10 (11)
Возникла другая проблема. Когда начал использовать это на практике, выяснилось что на адресе назнаения (конечный сервер на винде) адресом источника является адрес сервера переадресовавшего подключение, а не адрес клиента. Что вполне ожидаемо впринципи, нат ведь. Но нужно чтобы на виндовом сервере были ип адреса клиентов.Подобное можно как то реализовать?
- Переадресация порта на соседний сервер, Andrey Mitrofanov, 10:35 , 06-Авг-10 (12)
Можно. Проверил - у меня работает. Вторая сетевая, мост и виндовый сервер "за мостом".[ЛВС] --- eth0 [ Lin*: br0=eth0+eth1 + DNAT ] eth1 --- [ Win* ] Можно обойтись без SNAT-а, одним DNAT-ом. --- Если использовать редиректор-приложение (redir, simpleproxy, xinetd или подобный), по-любому на второй сервер открывается второе соединение -- и с адреса промежуточного сервера.
- Переадресация порта на соседний сервер, reader, 11:33 , 06-Авг-10 (13)
>Возникла другая проблема. Когда начал использовать это на практике, выяснилось что на >адресе назнаения (конечный сервер на винде) адресом источника является адрес сервера >переадресовавшего подключение, а не адрес клиента. Что вполне ожидаемо впринципи, нат >ведь. Но нужно чтобы на виндовом сервере были ип адреса клиентов. > > >Подобное можно как то реализовать? второй сервер в другую подсеть и тогда для пакетом идущих к нему snat можно не делать
|