>Надо, чтобы они поднимались до загрузки правил фаервола из rc.firewall,
Так нельзя. Да и незачем.
natd - user land приложение.
Оно не может быть запущено раньше ядра -)
А ядро уже на стадии загрузки будет иметь одно правило № 65534
>- правила фаервола не встанут. Или можно как-то по другому сделать?
можно и нужно писать вызовы в /etc/firewall.sh
сначала:
ipfw -qf add 1000 divert 6555 all from aaa to me 1111 via xl0
ipfw -qf add 1001 divert 6555 all from me 1111 to aaa via xl0
#
ipfw -qf add 1002 divert 6556 all from bbb to me 1112 via fxp0
ipfw -qf add 1003 divert 6556 all from me 1112 to bbb via fxp0
..... создали два порта на которых слушаем пакеты, прибывающие
с ip aaa на порт 1111 и с ip bbb на порт 1112
два правила потому, что нужно туда и обратно разворачивать.
Естественно, что можно и не фильтровать, а запускать в diverted
все до кучи.
_________
а УЖЕ ПОТОМ делаем вызовы
/sbin/natd -v -p 6555 xl0 -u -redirect_port tcp to_desired_ip#1:port1
/sbin/natd -v -p 6556 fxp0 -u -redirect_port tcp to_desired_ip#2:port2
теперь все эти пакеты, прибывающие к нам с хостов ааа и ббб мы передаем двум natd, а они, в свою очередь перепихивают их на ip#1:port2 и ip#2:port2