Локальное приложение шлет пакеты на один из локальных IP (предположим 22.33.44.55) на порт 55555. Нужно сделать так, чтобы эти пакеты заворачивались на 127.0.0.1:80.
Делаю:ipfw add 500 fwd 127.0.0.1,80 tcp from any to 22.33.44.55 dst-port 55555
в итоге если телнетом коннекчусь на порт 55555, то попадаю куда нужно, т.е. к тому, кто слушает на 127.0.0.1:80, но вот посылаемые на этот порт пакеты от локального приложения почему-то не проходят.
В чем может быть проблема?
ну чего, неужели никто не в курсе? вроде простой вопрос, проблема ведь наверняка в какой-то мелочи :)
>ну чего, неужели никто не в курсе? вроде простой вопрос, проблема ведь
>наверняка в какой-то мелочи :)Добавить IPFIREWALL_FORWARD_EXTENDED в конфиг ядра.
>>ну чего, неужели никто не в курсе? вроде простой вопрос, проблема ведь
>>наверняка в какой-то мелочи :)
>
>Добавить IPFIREWALL_FORWARD_EXTENDED в конфиг ядра.
Добаыил, все по прежнему.
>Локальное приложение шлет пакеты на один из локальных IP (предположим 22.33.44.55) на
>порт 55555. Нужно сделать так, чтобы эти пакеты заворачивались на 127.0.0.1:80.
>
>Делаю:
>
>ipfw add 500 fwd 127.0.0.1,80 tcp from any to 22.33.44.55 dst-port 55555
>
>
>в итоге если телнетом коннекчусь на порт 55555, то попадаю куда нужно,
>т.е. к тому, кто слушает на 127.0.0.1:80, но вот посылаемые на
>этот порт пакеты от локального приложения почему-то не проходят.
>
>В чем может быть проблема?
вероятно, пакеты локального приложения не доходят до данного правила, обрабатываются раньше. Или же посылаются не на 22.33.44.55.
>>Локальное приложение шлет пакеты на один из локальных IP (предположим 22.33.44.55) на
>>порт 55555. Нужно сделать так, чтобы эти пакеты заворачивались на 127.0.0.1:80.
>>
>>Делаю:
>>
>>ipfw add 500 fwd 127.0.0.1,80 tcp from any to 22.33.44.55 dst-port 55555
>>
>>
>>в итоге если телнетом коннекчусь на порт 55555, то попадаю куда нужно,
>>т.е. к тому, кто слушает на 127.0.0.1:80, но вот посылаемые на
>>этот порт пакеты от локального приложения почему-то не проходят.
>>
>>В чем может быть проблема?
>вероятно, пакеты локального приложения не доходят до данного правила, обрабатываются раньше. Или
>же посылаются не на 22.33.44.55.
TCPDUMP в студию
>TCPDUMP в студиюfwd 127.0.0.1,55555 tcp from any to 22.33.44.55 dst-port 80
telnet 22.33.44.55 80
tcpdump -i em0 port 55555
18:22:26.283137 IP 213.85.81.13.35149 > 22.33.44.55.55555: S 806313970:806313970(0) win 5840 <mss 1460,sackOK,timestamp 4181707 0,nop,wscale 0>
18:22:26.283165 IP 217.16.29.178.55555 > 22.33.44.55.35149: S 3143991399:3143991399(0) ack 806313971 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 3711481 4181707,nop,nop,sackOK>
18:22:26.287758 IP 213.85.81.13.35149 > 22.33.44.55.55555: . ack 1 win 5840 <nop,nop,timestamp4181707 3711481>
не так написал, вобщем18:22:26.283137 IP 213.85.81.13.35149 > 22.33.44.55.55555: S 806313970:806313970(0) win 5840 <mss 1460,sackOK,timestamp 4181707 0,nop,wscale 0>
18:22:26.283165 IP 22.33.44.55.55555 > 213.85.81.13.35149: S 3143991399:3143991399(0) ack 806313971 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 3711481 4181707,nop,nop,sackOK>
18:22:26.287758 IP 213.85.81.13.35149 > 22.33.44.55.55555: . ack 1 win 5840 <nop,nop,timestamp4181707 3711481>
прошу прощения, предыдущие два поста не представляют ценности - по ошибке писал
telnet 22.33.44.55 55555, а не telnet 22.33.44.55 80
в этом вариантеtcpdump -i em0 port 55555
и
tcpdump -i lo0 port 55555ничего не показывают
совсем торможу сегодня :) сорри за флуд.tcpdump -i lo0 port 55555
18:54:02.113126 IP 22.33.44.55.52494 > 22.33.44.55.55555: S 1477285541:1477285541(0) win 65535<mss 1460,nop,nop,sackOK,nop,wscale 1,nop,nop,timestamp 3901061 0>
18:54:02.113146 IP 22.33.44.55.55555 > 22.33.44.55.52494: R 0:0(0) ack 1477285542 win 0tcpdump -i em0 port 55555
тишина
>>Локальное приложение шлет пакеты на один из локальных IP (предположим 22.33.44.55) на
>>порт 55555. Нужно сделать так, чтобы эти пакеты заворачивались на 127.0.0.1:80.
>>
>>Делаю:
>>
>>ipfw add 500 fwd 127.0.0.1,80 tcp from any to 22.33.44.55 dst-port 55555
>>
>>
>>в итоге если телнетом коннекчусь на порт 55555, то попадаю куда нужно,
>>т.е. к тому, кто слушает на 127.0.0.1:80, но вот посылаемые на
>>этот порт пакеты от локального приложения почему-то не проходят.
>>
>>В чем может быть проблема?
>вероятно, пакеты локального приложения не доходят до данного правила, обрабатываются раньше. Или
>же посылаются не на 22.33.44.55.Посылаются именно туда.
ipfw в режиме default_to_accept, правил никаких не добавлял кроме этого.
ipfw sh - покажи
>ipfw sh - покажи
00100 60965 6658330 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00500 30 1666 fwd 127.0.0.1,80 tcp from any to any dst-port 55555
65000 19333308 17265131214 allow ip from any to any
65535 36 2234 deny ip from any to any
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
убери эти правила
>00200 0
> 0 deny ip from
>any to 127.0.0.0/8
>00300 0
> 0 deny ip from
>127.0.0.0/8 to any
>убери эти правила
уже пробовал, не помогает
>>00200 0
>> 0 deny ip from
>>any to 127.0.0.0/8
>>00300 0
>> 0 deny ip from
>>127.0.0.0/8 to any
>>убери эти правила
>
>
>уже пробовал, не помогаетя вам дал ответ в сообщении за нумером два. Советую перечитать и подумать над ipfw sh
Кроме того, если у вас более менее свежая версия FreeBSD, то совет про IPFIREWALL_FORWARD_EXTENDED тоже может пригодится.