Date: Fri, 27 Oct 1995 10:10:51 -0400 From: "Garrett A. Wollman" <wollman@lcs.mit.edu> To: mikebo@tellabs.com Cc: bugs@freebsd.org Subject: Re: 2.1.0-951020-SNAP: Major bug in NFS again! Message-ID: <9510271410.AA22857@halloran-eldar.lcs.mit.edu> In-Reply-To: <199510262207.RAA00763@sunc210.tellabs.com> References: <9510261811.AA28231@olympus> <199510262207.RAA00763@sunc210.tellabs.com>
index | next in thread | previous in thread | raw e-mail
<<On Thu, 26 Oct 1995 17:07:33 -0500 (CDT), mikebo@tellabs.com said:
> I do have a question:
> Would a FreeBSD server always respond to a client from the same interface
> on which it received a request - even though its route table has a
> different route to the clients network?
No. Source address != interface. If the source address is already
set in the outgoing IP packet, ip_output() will not change it even if
the packet goes out an interface which does not have that address on
it. (Otherwise forwarding would not work!) From ip_output:
/*
* If source address not specified yet, use address
* of outgoing interface.
*/
if (ip->ip_src.s_addr == INADDR_ANY)
ip->ip_src = IA_SIN(ia)->sin_addr;
You can force UDP to fill in a specific source address by calling
bind(). A correct implementation of ANY UDP-based protocol will
get a list of interfaces and create a single, bound socket per
interface address. (Half the glue to obviate this problem is present
in the kernel.)
-GAWollman
--
Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ...
wollman@lcs.mit.edu | Shashish is the bonding of hearts in spite of distance.
Opinions not those of| It is a bond more powerful than absence. We like people
MIT, LCS, ANA, or NSA| who like Shashish. - Claude McKenzie + Florent Vollant
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9510271410.AA22857>
