Jonathan B. Horen wrote:
There are some details lacking, such as what are the addresses of the workstations. In particular the workstation that was pinging in your example.
Is there a way to configure routing on this server so that a packet's source-address is "honored" by the system when responding?
Here is what I think is happening: The metric field is ignored, but when routes handle duplicate destinations (in this case default or 0/0) the last one added prevails in my experience.
If the workstations were local the interface device routes should prevail. So I am guessing that you pinged the name server address from a different subnet from any in your route table, and the last interface brought up's associated route-ethx defined route is how the response was sent.
Try this experiment: ifdown eth0 ifup eth0
I think you will see all packets to non-local subnets go through eth0 via 128.139.197.16.
There is no harm in either configuration unless you believe one default route is a faster way to get there, or not all the same subnets are accessible via either gateway.
If the former is true, then remove the route-ethx file for the slow gateway route.
If the latter is true, then you need to put more specific routes in each of the route-ethx files, not simply designate both of them as default.
There are routing daemons available if there are routing protocols supported by your gateways through which the server can learn the most effective route to a destination. See the quagga package included in fedora core.
-- ----------------------------------------------------------- "Spend less! Do more! Go Open Source..." -- Dirigo.net Chris Johnson, RHCE #807000448202021