--On Thursday, July 10, 2003 1:09 AM +0000 Ryan Beasley <[EMAIL PROTECTED]> wrote:
I was wondering how y'all handle UDP servers bound to INADDR_ANY on hosts multihomed to the same network. It's completely conceivable for reply datagrams to be sent from an address/port not matching the client's original destination, thus failing tests in that NAT and/or state code.
Assume the following: I don't control the servers and can't force them to use a socket on each address. (I wouldn't want to waste sockets like that, either.) The client program doesn't care about the reply's source address and port.
Any UDP server that does not explicitly bind its return socket to the destination IP address of the original packet is broken. Fix the broken code.
You don't need one socket per IP, you just need to use the socket API properly (assuming you're on an OS that is even vaguely modern - I think the semantics necessary went into BSD 4.3, but I could be mistaken).
-- Carson
