OK,
Looks like Policy routing is the answer. Here is what I tried but still not having luck:
Last night I upgraded to 2.9.1
I should add that this system is colocated and there is no 'local' network. Any packet in has to come out the same way it came in.
Initial gateway is working fine. Trying to get a second gateway (named cogent) to accept pacets in (on the interface: ether7) for a /26 subnet I've been assinged and also make sure that packets exit out of the same interface (cogent)(interface: ether7).
So I:
- created an address list for the subnet I was assigned:
[bubba@mkfw] ip firewall address-list> pr
Flags: X - disabled, D - dynamic
LIST ADDRESS
0 list1 207.210.xxx.64/26
2)created a a mangle rule named cogent using the above list.
[admin4tb@WebGuyz] ip firewall mangle> pr
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting in-interface=ether7 routing-mark=cogent
src-address-list=list1 action=mark-routing new-routing-mark=cogent
- created a default route using the routing-mark=cogent
[admin4tb@WebGuyz] ip route> pr detail
Flags: X - disabled, A - active, D - dynamic,
...
59 A S dst-address=0.0.0.0/0 gateway=207.210.xxx.57 interface=ether7
gateway-state=reachable scope=255 target-scope=10 routing-mark=cogent
tied IP address 207.210.xxx.65 to another interface in the router which is my gateway to that subnet, and tied ip address 207.210.xxx.66 to a server thats behind the firewall.
Also setup a forward rule for all ICMP packets to be allowed to that subnet.
Trying to ping from outside to 207.210.xxx.66 or *.65 is a nogo. I never see the byte count increase for the mangle rule which I guess is the biggest hurdle. Internally the IPs above ping fine.
Not sure what I'm missing but it seems simple enough.
Anyone else trying to mark packets coming in from a gateway and routing back out that same gateway?
This is the first time I've ever mangled anything so I may be doing something stupid. 
Thanks for any help.
Andy