Kern Sibbald wrote: > On Thursday 26 March 2009 21:23:51 Steve Polyack wrote: > >> Eric Bollengier wrote: >> >>> + /* Deduce the source IP address from our list of daemon addresses */ >>> + src_ipaddr = (IPADDR *) src_addr_list->first(); >>> >>> Why did you take the first address from this list ? Don't you think that >>> it can create an asymetric routing configuration when using multiple >>> network card or when using direct network attachment (with vlan) >>> >>> src_addr = (10.0.0.1, 192.168.1.1) (eth0, eth1) >>> src_ipaddr = 10.0.0.1 >>> >>> incomming_addr = 192.168.1.1 >>> >>> It will give a socket with this configuration : >>> src_ipaddr = 10.0.0.1 >>> dst_addr = 192.168.1.1 >>> >>> Packets will use eth1 to go, and will be back by eth0... >>> >>> Does it make sens ? >>> >> Yes, it makes sense. This is a valid concern. I'm beginning to much >> prefer the addition of an additional Director and FileD configuration >> resource. I could add DirSourceAddress and FDSourceAddress options and >> use the default (non-binding) socket behavior if these are not present. >> This way this would affect no users who do not explicitly choose to use >> the feature. >> > > Yes, even if it means adding extra directives, which we are trying to avoid, > it would be much better not to change existing behavior without the user > explicitly choosing to do so. That fits much better with how we normally add > new features to Bacula. >
Why not require the use of DirAddresses, FDAddresses, etc. directives if source binding is desired? Since the addresses can be specified in any desired order, there should then be nothing wrong with arbitrarily choosing the first one. Something like the following behavior (using Dir as an example): - If DirAddresses is specified, then Dir would listen on the given addresses and bind to the first address specified when making outgoing connections. - If DirAddress is specified, then Dir would listen on the single specified address and not do a bind when making outgoing connections. - If neither is specified, then Dir would listen on all interfaces and not do a bind when making outgoing connections. That still leaves the case where DirAddresses is used to specify multiple particular listen addresses, but the listen addresses are on disjoint networks with no routing between them, AND there are other interfaces on the machine that Bacula must not listen on. > >> Back to the drawing board. >> >> >> > Good luck :-) > > > ------------------------------------------------------------------------------ _______________________________________________ Bacula-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bacula-devel
