Let me explain some more.  

If you want all interfaces, Linux provides a way to use a single socket,
and still manage the source addresses: IP_PKTINFO.   Then interface
addition/deletion does not involve userspace.  This is currently not
used by most software (bind9, ntpd, heimdal-kdc) however, so they use
the older approach used on other unix, to bind one socket per interface.

The problem is, when binding to a specific interface, you have to track
interface addition/deletion.  Some approaches are better than others,
but restarting the process or waiting for it to poll an interface, are
not ideal.

For the above case, using a single socket with IP_PKTINFO, eliminates
the need to track interface add/remove/address change, correct?

Now the other use case, listening only on certain interfaces, maybe the
features don't overlap (automatic interface add/remove vs selective
interface listen), and the best that can be done using the socket API is
for userspace to drop the packet, or use iptables to send the ICMP Port
Unreachable... both less than ideal.

Is there a 3rd option?

Jeremy

If you want to bind to only certain interfaces, 

On Tue, 2007-11-20 at 14:07 +0800, Herbert Xu wrote:
> Jeremy Jackson <[EMAIL PROTECTED]> wrote:
> >
> > Is there a solution that lets a single socket "not-bind" to certain
> > interfaces?
> 
> By binding it to a specific interface?
> 
> Cheers,
-- 
Jeremy Jackson
Coplanar Networks
(519)489-4903

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to