I've set up the following network, and added following configuration.

o The default gateway for the hosts in the Network B to be
the Nat/FW's eth1.
o Added a route in the Nat/FW such as
"route add -net A/subnet gw [router's Interface] dev eth1"
(I've configured the Nat/FW with linux kernel2.4 and iptables).

Network A
\r
\r
Router --+-- (eth1)Nat/FW(eth0) --- Internet
|
|
|
Network B

I've expected the packet which comes from B to A goes
into Nat/FW's eth1 and goes out the same interface for the Router.
i.e. I've expected the packet from B to A travels as,
Going to B : B --> Nat/FW --> Router --> A
Coming back from A : A --> Router --> B

Even though I was not sure if it worked properly, and it's
also weird using the same interface for the incoming/outgoing
packet, but pinging from B to A worked and vice versa.
But other protocol, such as rlogin from B to A, doesn't
work ever after the "Password:" prompt came back.
I've seen strange packet that destination is not in the above
network (let's say if A is 192.168.1.0/24, the strange packet's
destination address was 192.203.X.X. or 192.30.X.X.) when I've
snooped the packets.
Am I doing totally wrong?
Could someone have any idea about why it doesn't work?

Thanks and Regards,