есть роутер, который при помощи ipfw+natd пробрасывает порты на внутренний сервер. все работает и настроено. но! нужно, чтобы на этом внутреннем сервере сохранялись реальные source ip входящих пакетов, а natd подставляет свой адресс. (нужно, чтобы в логах внутреннего сервера светился не внешний ip роутера, а адреса, с которых запросы пришли)на данный момент это исправлено брутальным перебросом пакетов на внутренний сервер, а там, входящие пакеты при помощи iptables модифицирую ip, подставляя свой адресс как адресс назначения. но это костыли...
>есть роутер, который при помощи ipfw+natd пробрасывает порты на внутренний сервер. все
>работает и настроено. но! нужно, чтобы на этом внутреннем сервере сохранялись
>реальные source ip входящих пакетов, а natd подставляет свой адрессНет, NAT не изменяет внешние адреса.
>>есть роутер, который при помощи ipfw+natd пробрасывает порты на внутренний сервер. все
>>работает и настроено. но! нужно, чтобы на этом внутреннем сервере сохранялись
>>реальные source ip входящих пакетов, а natd подставляет свой адресс
>
>Нет, NAT не изменяет внешние адреса.тогда почем у меня в логах записывается внешний адрес моего роутера? все соединения идут от него...
даже в манах к natd написано:
-redirect_proto proto localIP [publicIP [remoteIP]]
Redirect incoming IP packets of protocol proto (see
protocols(5)) destined for publicIP address to a localIP
address and vice versa.If publicIP is not specified, then the default aliasing
address is used. If remoteIP is specified, then only packets
coming from/to remoteIP will match the rule.
если я правильно понял, в любом случае в качестве исходящего ip подставляется или publicIP или aliasIP, что в любом случае не подходит...
>тогда почем у меня в логах записывается внешний адрес моего роутера? все
>соединения идут от него...Надо думать потому что так настроили или не туда смотрите.
>если я правильно понял, в любом случае в качестве исходящего ip подставляется
>или publicIP или aliasIP, что в любом случае не подходит...Нет. Меняются src IP исходящих пакетов и dst IP входящих пакетов. Для машины внутри сети всегда видны реальные адреса, а вот снаружи будет видно адрес гейта.
Это как же, интересно, что-либо работало бы, если бы я из внутренней сети постучался на внешний адрес, а пакеты обратно пошли бы с адреса гейта?
>[оверквотинг удален]
>>если я правильно понял, в любом случае в качестве исходящего ip подставляется
>>или publicIP или aliasIP, что в любом случае не подходит...
>
>Нет. Меняются src IP исходящих пакетов и dst IP входящих пакетов. Для
>машины внутри сети всегда видны реальные адреса, а вот снаружи будет
>видно адрес гейта.
>
>Это как же, интересно, что-либо работало бы, если бы я из внутренней
>сети постучался на внешний адрес, а пакеты обратно пошли бы с
>адреса гейта?мои конфиги:
ipfw.config:
00010 allow ip from me to any via fxp0 keep-state
00100 allow ip from any to any via lo0
00150 divert 8668 ip from any to any
00160 allow ip from any to any
65535 deny ip from any to anynatd.config:
interface fxp0
use_sockets yes
same_ports yes#### REDIRECTIONS ####
redirect_port tcp 10.0.0.1:25 x.x.x.x:25x.x.x.x - мой внешний ip
10.0.0.1 - внутренний сервер
fxp0 - внешний интерфейси логи на машине 10.0.0.1:
Feb 19 22:45:13 www postfix/smtpd[17078]: connect from yyy.zzz[x.x.x.x]
вместо того, чтобы показать мне, кто же подключился, он пишет, что это мой роутер. (естественно, для этого пример, я подключался с удаленной машины, за пределами моей сети)
> redirect_port tcp 10.0.0.1:25 x.x.x.x:25
> connect from yyy.zzz[x.x.x.x]Я вот не понимаю, как вообще вопросы могут быть? Сами написали aliasIP, сами видите его в логах, при том что в man natd написан пример обычного редиректа, в соответствии с которым все нормалньные люди и настраивают проброс портов. И мыслей не появилось, да?
redirect_port tcp 10.0.0.1:25 25
>> redirect_port tcp 10.0.0.1:25 x.x.x.x:25
>> connect from yyy.zzz[x.x.x.x]
>
>Я вот не понимаю, как вообще вопросы могут быть? Сами написали aliasIP,
>сами видите его в логах, при том что в man natd
>написан пример обычного редиректа, в соответствии с которым все нормалньные люди
>и настраивают проброс портов. И мыслей не появилось, да?
>
>redirect_port tcp 10.0.0.1:25 25нет, я изначально делал так как написали Вы, но оно не работало.решил попробовать вот так. тоже не помогло. но оставил так, и начал искать другое решение...
>нет, я изначально делал так как написали Вы, но оно не работало.решил
>попробовать вот так. тоже не помогло. но оставил так, и начал
>искать другое решение...Ну значит не судьба :)
>>нет, я изначально делал так как написали Вы, но оно не работало.решил
>>попробовать вот так. тоже не помогло. но оставил так, и начал
>>искать другое решение...
>
>Ну значит не судьба :)быть может ))
сейчас попробую pf. там вроде возможностей побольше, да и опыт работы с iptables пригодиться... удобней, когда все в одном файле...
не делайте SNAT для пакетов, идущих на внутренний сервер
>не делайте SNAT для пакетов, идущих на внутренний серверкакой SNAT? я же говорю про FreeBSD - про ipfw+natd.
SNAT - это в iptables - там все просто и понятно. а меня интересует именно ipfw, natd.
>>не делайте SNAT для пакетов, идущих на внутренний сервер
>
>какой SNAT? я же говорю про FreeBSD - про ipfw+natd.
>SNAT - это в iptables - там все просто и понятно. а
>меня интересует именно ipfw, natd.какая разница, SNAT - подмена адреса источника, DNAT - адреса назначения, вот и не пихай в divert, то что идет на 10.0.0.1.
что-то типа00150 divert 8668 ip from any to not 10.0.0.1
>[оверквотинг удален]
>>
>>какой SNAT? я же говорю про FreeBSD - про ipfw+natd.
>>SNAT - это в iptables - там все просто и понятно. а
>>меня интересует именно ipfw, natd.
>
>какая разница, SNAT - подмена адреса источника, DNAT - адреса назначения, вот
>и не пихай в divert, то что идет на 10.0.0.1.
>что-то типа
>
>00150 divert 8668 ip from any to not 10.0.0.1проще
00150 divert 8668 ip from any to any via fxp0