Народ привет!Взял сегодня реальную АйПи-шку. Все работает чудно заходиться как надо!
Но вот появилась проблема, есть необходимость из внешнего мира, Интернета взять данные ( по хттп) ид компа который стоит за НАТом в локальной сети. Начитался тут.... уууу... напробовался.... тоже самое....
Вот до чего я дошел, а вы подправте. :)Есть СЕТЬ -192.168.0.0/24
Сервер ФрииБСД + IPFW + NAT + Apache(потом напишу зачем) - eth0 192.168.0.100
- eth1 xxx.xxx.xxx.xxx (реальный адрес)Компьютер с необходимым ресурсом в сети имеет АйПм - 192.168.0.101.
ТРЕБОВАНИЯ! Нужно что бы при наборе http://xxx.xxx.xxx.xxx/ заходло на АПАЧ Сервера, а когда набиралочь http://xxx.xxx.xxx.xxx:8080 перекиовалось на компьютер в сети. Причем оба Апача слушают порт 80.
РЕШЕНИЕ:(до чего я дошел)
ipfw add divert natd tcp from any to ххх.ххх.ххх.ххх 8080 via $eth1
ipfw add divert natd ip from 192.168.0.101 to any via $eth1ПРОБЛЕМА: как правильно поднять НАТ???? что нужно прописать? что-то такого типа: natd -n ${eth1} -redirect_port tcp ${eth0}:?? ?? ( что вместо вопросов? 8080 80 или 80 8080)?
>Народ привет!
>
>Взял сегодня реальную АйПи-шку. Все работает чудно заходиться как надо!
>Но вот появилась проблема, есть необходимость из внешнего мира, Интернета взять данные
>( по хттп) ид компа который стоит за НАТом в локальной
>сети. Начитался тут.... уууу... напробовался.... тоже самое....
>
>
>
>Вот до чего я дошел, а вы подправте. :)
>
>Есть СЕТЬ -192.168.0.0/24
>Сервер ФрииБСД + IPFW + NAT + Apache(потом напишу зачем)
>- eth0 192.168.0.100
>
>
>
>
>
> - eth1 xxx.xxx.xxx.xxx (реальный адрес)
>
>Компьютер с необходимым ресурсом в сети имеет АйПм - 192.168.0.101.
>
>ТРЕБОВАНИЯ! Нужно что бы при наборе http://xxx.xxx.xxx.xxx/
>заходло на АПАЧ Сервера, а когда набиралочь http://xxx.xxx.xxx.xxx:8080 перекиовалось
>на компьютер в сети. Причем оба Апача слушают порт 80.
>
>РЕШЕНИЕ:(до чего я дошел)
> ipfw add divert natd tcp from any to ххх.ххх.ххх.ххх 8080
>via $eth1
> ipfw add divert natd ip from 192.168.0.101 to any via
>$eth1
>
>ПРОБЛЕМА: как правильно поднять НАТ???? что нужно прописать?
> что-то такого типа: natd -n ${eth1} -redirect_port tcp ${eth0}:??
>?? ( что вместо вопросов? 8080 80 или 80
>8080)?в rc.conf
natd_flags="-f /etc/natd.conf"
в /etc/natd.conf
redirect_port tcp 192.168.0.101:80 8080
.....ну и ipfw правила...
Спасибо буду пробовать....
Не работает! :(Дело в том что на компе стоит уже один НАТ, через него люди из сети ходят в и-нет. Правила там такие:
${ipfw} add 510 divert natd ip from $ngnet to any out via $ifout
${ipfw} add 520 divert natd ip from not $ngnet to any in via $ifoutНАТ запускаеться с такими параметрами:
natd -a $ifoutдля переброски пакета на порт использую второй НАТ. запускаю его как написано выше. но не работает. Ни один пакет не попадает в сам НАТ, хотя исправно доходит из И-нета на сервер.
Что делать?
>Не работает! :(
>
>Дело в том что на компе стоит уже один НАТ, через него
>люди из сети ходят в и-нет. Правила там такие:
>${ipfw} add 510 divert natd ip from $ngnet to any out via
>$ifout
>${ipfw} add 520 divert natd ip from not $ngnet to any in
>via $ifout
>
>НАТ запускаеться с такими параметрами:
>natd -a $ifout
>
>
>
>для переброски пакета на порт использую второй НАТ. запускаю его как
>написано выше. но не работает. Ни один пакет не попадает в
>сам НАТ, хотя исправно доходит из И-нета на сервер.
>
> Что делать?
xinetd попробуй
или 2 natd
>>Не работает! :(
>>
>>Дело в том что на компе стоит уже один НАТ, через него
>>люди из сети ходят в и-нет. Правила там такие:
>>${ipfw} add 510 divert natd ip from $ngnet to any out via
>>$ifout
>>${ipfw} add 520 divert natd ip from not $ngnet to any in
>>via $ifout
>>
>>НАТ запускаеться с такими параметрами:
>>natd -a $ifout
>>
>>
>>
>>для переброски пакета на порт использую второй НАТ. запускаю его как
>>написано выше. но не работает. Ни один пакет не попадает в
>>сам НАТ, хотя исправно доходит из И-нета на сервер.
>>
>> Что делать?
>xinetd попробуй
>или 2 natdСделал 2 НАТД. Теперь вообще интересно! пакеты ходят только в одну сторону! Из Инета, проходят сервер, и пролезают на комп в сети, а оттудо - штиль, тишина. Они даже не попадают в Апач. Просто приходят пакеты с тем адресом который в Интернете посылает запрос, с перенаправленым портом(типа с 8080 на 80) А Апач не то что бы не отвечает, они(пакеты) даже не доходят до него.
Фаервол полностью открыт. Настораживает то что Шлюз не поменял адресс на свой, а просто передал с перенаправленым портом. так должно быть? Он же по идею должен подменивать его?
82.207.73.251.1137 > www.freenet.http: S 1062095546:1062095546(0) win 65535 <mss 1432,nop,nop,sackOK>
вот что тспдамп выдает и все!!! назад ответа нету!В фаере стоит allow all from any to any
ДОПОЛНЕНИЕ К ВЕРХНЕМУnatd -n rl0 -l -p 7777 -redirect_port tcp 192.168.0.101:80 8080
${ipfw} add 5 divert 7777 tcp from any to хх.хх.хх.хх 8080 in via rl0
${ipfw} add 6 divert 7777 tcp from 192.168.0.101 to any via rl0
${ipfw} add 6 pass all from any to any via dc0
${ipfw} add 7 pass all from any to any via rl0
${ipfw} add 8 pass all from me to any
HELP! Люди, я уже не знаю что и думать! что же это такое может быть? Почему пакет не доходит до приложения(Апача), все его ЛОГи пусты, ничего не пишеться ни в access_log ни error_log. Может проблема в том что Айпи адресс источника не совпадает(не пренадлежит подсети Апача) ???
РАЗОБРАЛСЯ!!!!Проблема заключалаь в том что на сервере (ВВВ) было не 1 а несколько и-фейсов, и оно какого-тго макара принимало редирект нормально, а отправляло его на другой и-фейс, наверное из-за того что сетки были одинакового класа, та которая пришла на РЕДИРЕКТ и та которая была за вторым и-фейсом.