Есть роутер и сервер, оба под FreeBSD. На роутере два интерфейса - rl0 (внутренний) и rl1 (внешний). На внешнем соответственно внешний адрес плюс алиасами навешаны все остальные зарезервированные адреса из внешней подсети. На внутреннем - "серый" адрес. На внешнем висит natd так чтобы клиенты с серыми адресами могли выходить в инет. В локалке помимо клиентов есть сервер. Нужно дать на сервер один из внешних ip-адресов, навешанных алиасами на роутер. Пробовали запустить на роутере еще один natd, в конфиг rc.firewall добавили следующее:${fwcmd} add divert 8881 all from any to {внешний_ip}
${fwcmd} add divert 8881 all from {внутренний_ip} to anyNatd запускался с параметрами:
natd -interface rl1 -dynamic -p 8881 -redirect_address {внутренний_ip} {внешний_ip}
В результате сервер снаружи так и не стал виден.
Помогите, какое может быть решение?
привет твою траблу можно решить 2-я способами
1. прописать маршрут к внешнему адресу в нутри приватной сети а на основном шлюзе перестроить nat такичто бы он заварачивал клиентов только из внутренней сети а все остальное прпускал мимо
сделать это мона примерно так
ipfw add divert natd ip from 192.168.0.0/24 to any out via ext_iface
ipfw add divert natd ip from any to inet_adress in iva ext_iface
natd -a ext_iface2. способ
поднять меж этими серверами GRE тунел и работать
если есть вопросы то пиши на мыло т.к с наладонника писать не очень удобно
удачи :)
Хмм, эта проблема вроде разрешилась, оказалось надо добавить жесткое разрешение для всех интерфейсов:${fwcmd} add divert 8881 all from any to {внешний_ip} via any
${fwcmd} add divert 8881 all from {внутренний_ip} to any via anyНо теперь другая проблема :))
Сервер виден из инета, все сервисы на нем работают во внешнюю сеть, но возникают проблемы с доступом из локалки. Точнее, по внутреннему ip из локалки все ок, но поскольку на сервере на внешнем ip висит домен, то соответственно все под-домены тоже ссылаются на внешний ip. А вот на собственный внешний ip он из локалки как раз-таки и не пускает. Т.е. трафик с внешнего ip ВЕСЬ заворачивается на внешний интерфейс, хотя теоретически должен проходить и на локальный...
Не понимаю в чем грабли...