LINUX.ORG.RU
ФорумAdmin

Переадресация трафика на другой IP

 


0

1

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

Скажите, можно как-то организовать форвард трафика на другой сервак, к примеру

-A FORWARD -s 10.0.0.0/24 -d 125.124.123.122 -j SNAT\DNAT –to-source/destination 95.125.125.5

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


Ответ на: комментарий от t184256

с PREROUTING/POSTROUTING там все понятно.

а тут именно FORWARD.

Есть роутер, за ним есть /24 посдесть внешних IP, подсеть внутренних IP. внутренние - вопросов нет, чз POSTROUTING, а вот с внешних трафик идет через таблицу FORWARD а не чз POSTROUTING

alexni
() автор топика
Ответ на: комментарий от alexni

Объясните ещё раз. Только таблицы это raw, nat, mangle, filter, а не FORWARD. Указывать цепочку без указании таблицы такое себе занятие.

mky ★★★★★
()
Ответ на: комментарий от alexni

с внешних трафик идет через таблицу FORWARD а не чз POSTROUTING

через цепочку forward таблицы filter.

а для ната нужен prerouting/postrouting из таблицы nat.

sergej ★★★★★
()
Ответ на: комментарий от mky

простите неправильно выразился. FORWARD вроде в таблице filter.

мне нужно перенаправлять трафик который попадает под FORWARD, не под POSTROUTING

можно было бы маршрутом, но тогда gw в другой подсети получается

alexni
() автор топика
Ответ на: комментарий от alexni

Если весь входящий трафик на вашу внешнюю подсеть проходит через ваш сервер с обсуждаемыми правилами iptables, пишие DNAT правило в nat PREROUTING, без SNAT правила в nat POSTROUTING.

mky ★★★★★
()
Ответ на: комментарий от mky

Вы не совсем правильно меня поняли. есть сервер с интерфейсом eth0, на котором висят 192.168.0.0/24, 156.246.0.0/24, 91.206.0.0/24 с шлюзами 0.1 в конце соответственно для каждой подсети. За вторым интерфейсом (eth1) есть клиенты. Трафик с 192.168.0.0/24 проходит через POSTROUTING и маскарадится по необходимости. Трафик же с остальных проходит чз FORWARD и идет дальше по назначению (на апстрима).

У меня задача переадресовать часть трафика с 156.246.0.0/24 не по назначению, а на свой отдельный сервер. К примеру с адреса 156.246.1.5 идет запрос на 55.66.77.88,мне нужно его переадресовать на 99.88.77.66 Последний в свою очередь будет давать ответы в зависимости на какой порт будет идти запрос. (будь то веб страница или дропать если ssh и тд)

alexni
() автор топика
Ответ на: комментарий от alexni

Как такое может быть:

с внешних трафик идет через таблицу FORWARD а не чз POSTROUTING

трафик который попадает под FORWARD, не под POSTROUTING

Трафик же с остальных проходит чз FORWARD и идет дальше по назначению (на апстрима).

Ядро, что ли патченное? Вот прохождение пакета по iptables: https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Netfilter-packet-fl...

mangle/FORWARD -> filter/FORWARD -> mangle/POSTROUTING -> nat/POSTROUTING -> ...

задача переадресовать часть трафика с 156.246.0.0/24 не по назначению, а на свой отдельный сервер

А если оба сервера ваши, то всегда можно поднять между ними тунель и тогда у вас не будет проблемы с gw в другой подсети:

можно было бы маршрутом, но тогда gw в другой подсети получается

mky ★★★★★
()
Ответ на: комментарий от alexni

будет давать ответы в зависимости на какой порт будет идти запрос. (будь то веб страница или дропать если ssh и тд)

если тебе нужно перенаправлять запросы http/https, то это не к iptables вопросы.

novitchok ★★★★★
()
Ответ на: комментарий от novitchok

Подскажите куда копать? Чем еще «перехватить» транзитный трафик?

alexni
() автор топика
Ответ на: комментарий от alexni

https://commons.wikimedia.org/wiki/File:Netfilter-packet-flow.svg

А теперь, когда ты более-менее представляешь движение пакета, прекрати путать таблицы и цепочки и сформулируй проблему корректно.

Пока что мне видится, что тебе надо пара правил, DNAT+SNAT, навскидку:

iptables -t nat -A PREROUTING -s 156.246.0.0/24 -d 55.66.77.88 -p tcp -j DNAT --to 99.88.77.66
iptables -t nat -A POSTROUTING -s 156.246.0.0/24 -d 55.66.77.88 -j MASQUERADE (если не маскарадится существующими правилами).

Вероятно, здесь чего-то накосячено, но я такое делал когда-то давно.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 2)
Ответ на: комментарий от thesis

iptables -t nat -A POSTROUTING -s 156.246.0.0/24 -d 55.66.77.88 -j MASQUERADE

Не катит. 156.246.0.0/24 не маскарадится, это блок внешних IP. Если с «внутренних» (192.168.0.0/24) - вопросов нет. через нат заганяю в srcnat куда мне нужно.

Пакет идет mangle/prerouting–>filter/forward–>filter/output

alexni
() автор топика
Последнее исправление: alexni (всего исправлений: 1)
Ответ на: комментарий от alexni

Что такое «не катит»? Какая железяка (ось) с каким адресом должна перенаправлять пакеты от 156.246.0.0/24 к 55.66.77.88 на 99.88.77.66? Если это линукс, ты пакеты снифал, чего там происходит в реальности видел?

thesis ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.