>>29 うーんそれ以前にipnat -l でルールとして認識されてないんですよ・・・
前スレ >904 に加筆

FreeBSD 4.8R + mpd + ipfilter(+ipnat)
(A)rdr ng0 0.0.0.0/32 port XXXX -> 192.168.0.3 port XXXX tcp
(A)rdr ng0 0.0.0.0/24 port XXXX -> 192.168.0.3 port XXXX tcp
(A)rdr ng0 0.0.0.0/0 port XXXX -> 192.168.0.3 port XXXX tcp
(B)rdr ng0 0/32 port XXXX -> 192.168.0.3 port XXXX tcp
(B)rdr ng0 0/24 port XXXX -> 192.168.0.3 port XXXX tcp
(B)rdr ng0 0/0 port XXXX -> 192.168.0.3 port XXXX tcp
(C)rdr ng0 (※)/32 port XXXX -> 192.168.0.3 port XXXX tcp
※ mpdを実行して割り当てられた動的IPを設定して、-CFオプションでipnatを再起動

と(C)の方法でしかNATが有効になりません

ipnat -l で見ても、 C のときしか有効ルールに認識されません(泣きが入ってます)

でもCの設定の時はちゃんとうまくルールに認識されるしIPフォワードされてるんです
もうなんか暑いしこれだけで夏ばてしちゃいそうですw

ちなみに、もう最悪の対処方法ですが rc.network の ipnat を -CF で呼び出す所の前に
NG0_IP=`/sbin/ifconifg ng0 | awk '{if($1=="inet")print $2}'`
/usr/bin/sed -e "s/NNGG00/$NG0_IP/" /etc/ipnat.def > /etc/ipnat.rules
※ /etc/ipnat.def は "rdr ng0 NNGG00/32 port XXXX -> 192.168.0.3 port XXXX tcp"
なんてことをしてます・・・(非常に泥臭いですw)