LINUX.ORG.RU
ФорумAdmin

перенаправление в IPTABLES


0

1

Встала задача клиентов неавторизированных в биллинге перенаправлять на статистику.
Решение было следующим:
iptables -t nat -A PREROUTING -s 172.16.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80
10.0.0.1 находится на том же сервере, что и фаервол.
Сначала проверил работоспособность при маске /32, все гуд, потом попытался воспользоваться вариантом как выше и тут начались загадки.
После запуска firewall я со своей машины (с реальным адресом, тоесть в маску 172.16.0.0/16 ни как не попадаю), через раз захожу на 80-й порт сервера. При чем иногда может 3 минуты быть без глюков, иногда сразу начинаются.
Тоесть просто telnet XX.XX.XX.XX 80 иногда срабатывае, а иногда висит.
удаляем одно правило, все становится гуд
iptables -t nat -D PREROUTING -s 172.16.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80

conntrack -F на ситуацию не влияет
echo «40960000» > /proc/sys/net/nf_conntrack_max тоже ни как не помогает, да и не переполнена таблица
при проблеме, tcpdump показывает просто приходящие запросы и никаких ответов

идеи куда копать кончились :(


наверное проблема здесь

10.0.0.1 находится на том же сервере, что и фаервол.

попробуй "-j REDIRECT"

pupok ★★
()

1. Покажи трейс от себя до сервера.
2. Юзай REDIRECT
3. Добавь в правило входящий интерфейс.
4. Если не поможет, покажи conntrack -Lr 10.0.0.1 с сервера сразу после перенаправления тебя на 80 порт.

anonymous
()
Ответ на: комментарий от edigaryev

По ссылке рекомендуют подменить и адрес источника при помощи SNAT или маскарада, но у меня это смысла не имеет т.к. перенаправляющий firewall и то куда перенаправляют, это один и тот же сервер.

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

1. Покажи трейс от себя до сервера.

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

2. Юзай REDIRECT

попробовал, результат тот-же, что DNAT

3. Добавь в правило входящий интерфейс.

пробовал почти сразу, никакого результата

4. Если не поможет, покажи conntrack -Lr 10.0.0.1 с сервера сразу после перенаправления тебя на 80 порт

меня не перенаправляет, я с другой сети и с другого интерфейса лезу, мне просто на 80-й порт не удается зайти

кстати интересный момент, cat /proc/net/ip_conntrack | grep X.Z.201.23, сразу после того как неудалось зайти
tcp 6 118 SYN_SENT src=x.z.201.23 dst=x.z.201.58 sport=40204 dport=80 packets=2 bytes=120 [UNREPLIED] src=x.z.201.58 dst=x.z.201.23 sport=80 dport=40204 packets=0 bytes=0 mark=0 secmark=0 use=2

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

>> попробуй "-j REDIRECT"

тот же результат, что и с DNAT

ну а свой сервис ты после этого с 10.0.0.1 на 127.0.0.1 ты перевесил?

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

ну а свой сервис ты после этого с 10.0.0.1 на 127.0.0.1 ты перевесил?

он на 0.0.0.0 висит

так и дело в том, что какое-то время иногда работает, такое ощущение, что что-то переполняется

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

>меня не перенаправляет, я с другой сети и с другого интерфейса лезу, мне просто на 80-й порт не удается зайти

Так почему тут все про нат треплются? Правила фильтрации входящих и исходящих на сервере покажи.

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

> Так почему тут все про нат треплются?
Вероятно из-за

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



Правила фильтрации входящих и исходящих на сервере покажи.


iptables -L INPUT -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all  — 0.0.0.0/0 0.0.0.0/0
NETFLOW all  — 0.0.0.0/0 0.0.0.0/0 NETFLOW
DROP udp  — 0.0.0.0/0 0.0.0.0/0 udp dpt:7723

iptables -L OUTPUT -n
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
NETFLOW all  — 0.0.0.0/0 0.0.0.0/0 NETFLOW

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

Дай угадаю. Если выкинуть NETFLOW из правил, заблеклистить ipt_NETFLOW и ребутнуться, все косяки магическим образом испарятся?

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

> Дай угадаю. Если выкинуть NETFLOW из правил, заблеклистить ipt_NETFLOW и ребутнуться, все косяки магическим образом испарятся?

не, я начал с попытки упростить фаервол до безобразия...

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

спасибо всем за попытки помочь.

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