похожую ерунду делаю через Iproute2
для начала в файле /etc/iproute2/rt_tables создаешь новую таблицу, номер у которой меньше чем у mainпосле этого делаете вот что:
ip rule add fwmark 1 table <имя_вашей_таблицы>
ip route add default via 192.168.0.100 dev <интерфейс> table <имя_вашей_таблицы>
а после этого применяете iptables (или у вас там ipfw - не знаю как в нем)
iptables -t mangle -A PREROUTING -p tcp -s 192.168.10.123/24 -j MARK --set-mark 1
т.е. те пакеты которые вы пометите fwmark будут ходить через свою таблицу маршрутизации и соответственно через свой шлюз