formerly_chris2 has asked for the wisdom of the Perl Monks concerning the following question:

I'm not sure if this is technically possible, but I need to select a specific interface to make an outbound socket connection from. I have multiple modems in a box and am running win2k adv. server and I want to load balance this script accross all the available modems. Is it possible to use Socket or IO::Socket to select the modem (interface) I want to send the data through? Thanks in advance, Chris
  • Comment on Select which interface to send data through

Replies are listed 'Best First'.
(tye)Re: Select which interface to send data through
by tye (Sage) on May 02, 2001 at 23:21 UTC

    You can add routes such that packets bound for certain addresses leave via one interface while packets bound for other addresses leave via the other interface.

    If you have routes such that either interface is valid, then the operating system is likely to load balance between the two (but I'd recommend testing this on each system as it can change just due to configuration changes or some patches being applied).

    There may be a Win2K-specific way to take control of the load balancing, but that won't be conveniently accessible from Perl.

    See the output of "route print" to determine how packets will be routed based on destination address. Use "route add ..." and "route delete ..." to change this information.

    You could also try binding the local address of a socket to be that of a specific interface and hope that the operating system will prefer that interface if the peer address could be routed over multiple interfaces.

            - tye (but my friends call me "Tye")