ipnat + ipfw
Понадобилось чем то заменить natd, жрущий много ресурсов. Выбор пал на ядерный ipnat, сначала думал что придется менять ipfw и так тяжело мне давшийся.. но потом получилось его оставить.
Функционирование:
входящий пакет идет на ipnat, потом на ipfw
исходящий пакет идет на ipnat, потом на ipfw
(по крайней мере я так думаю :) – т.е. в ipfw мы работаем с реальными – не наттеными ип адресами)
Конфиги:
/etc/rc.conf:
ipfilter_enable=”YES”
ipnat_enable=”YES”
/etc/ipf.rules:
pass in from any to any
pass out from any to any
/etc/ipnat.rules:
map fxp1 from 172.16.0.0/16 to any -> my_real_ip/32
rdr fxp1 my_real_ip/32 port 226 -> 172.16.1.15 port 21 tcp
Из правил файрволла убираем divert natd
