I'm running OpenBSD 4.1 release.
I've had a DSL connection, just added a cable modem. DSL has static IP,
cable modem IP assigned by DHCP (which becomes default route).
Now, when I receive ICMP echo request on DSL the ICMP echo reply goes
back via cable modem (and has cable modem source address, not DSL source
address). Of course incoming services such as SSH on DSL interface have
same problem, outgoing reply packets go to cable modem instead.
I can't convince OpenBSD to return an echo reply via the interface the
request arrived at. Is this just not possible? I've Googled for so many
variations of "multihomed", "same interface", "reply packets", but can't
find anything definitive.
Is there any way for the machine to learn what interface a packet
arrived at and send replies there? I can't run anything like BGP or even
RIP since my ISPs don't speak those with me. Is there a program that can
watch incoming packets and update routing table accordingly so outgoing
packet go out the right interface?
Things work great for incoming requests if I delete the default route,
but that makes outgoing requests pretty worthless since most packets
have nowhere to go.
Is this just how routing works? Is OpenBSD more restricted than other
OSes for this issue? Can anyone recommend a good book? I've read TCP
Illustrated vol 1 but Stevens doesn't disuss this much, he says it would
take a book to cover.
Having multiple interfaces to the Internet just seems useless for a
typical small network. It seems like this should be an FAQ but maybe
people are just smarter than I am and either figure out the answer or
decide it is impossible.
Thanks for any help or advice.