есть сервер freebsd 6.1
на нем стоят 3 сетевых карты
fxp0 - с релаьным адресом (A.A.A.A) - к провайдеру
fxp1 - серая сеть офиса (B.B.B.B) - в офисный сегмент
fxp2 - на этой сетевушке прописано несколько подсетей:
реальная C.C.C.C - с почтовыми, www серверами
реальная D.D.D.D - для диалапщиков с модменого пула
реальная E.E.E.E - для клиентов с реальными адресами
серая F.F.F.F - Для клиентов с серыми адресами
серая G.G.G.G - Для клиентов с серыми адресамисеть A,C,D,E работают без проблемм через routed
проблемма с сервми подсетями которым надо работать и с сетями C,D,E и с интернетом через A
поставил natd
делаю divert all from any to any via fxp0
и divert all from any to any via fxp2
но при этом они работают и наружу и внутрь, то есть из сетей D,E,F,G можно попасть в сеть B
как правильно прописать divert чтоыб не писать any to any а указать с какой подсети в какою работать ?
Попробуй так:table1="table(55,1)"
${fwcmd} table 55 flush
${fwcmd} table 55 add (все сети которые к роутеру подключены) 1
${fwcmd} table 55 add (все сети которые к роутеру подключены) 1
и т.д.table2="table(65,1)"
${fwcmd} table 65 flush
${fwcmd} table 65 add (приватные сети которые надо натить) 1
${fwcmd} table 65 add (приватные сети которые надо натить) 1
и т.д.А тут прописываешь
${fwcmd} add divert natd all from ${table2} to not ${table1} out via fxp0
${fwcmd} add divert natd all from not ${table1} to me in via fxp0Так ты natd максимально разгрузишь от пакетов которые его не касаются.
И если ты будешь еще правила ipfw вешать то надо в sysctl параметр прописать чтобы после ната пакеты дальше по цепочке шли. Параметр не помню, но он есть в инете.
ок, понял - попробую
а параметр в sysctl уже пропсиан net.inet.ip.fw.one_pass=0