On 10/09/2013 09:48 AM, Jason Ziglar wrote:
> I'm using zbeacon for service discovery, and have been noticing that the 
> beacon doesn't always behave as expected. I'm using the zsys_set_interface() 
> call to specify which interface to broadcast over, but according to netstat, 
> the beacon is broadcasting over 0.0.0.0. This seems to cause the beacon to be 
> routed differently on each machine.
>
> Is broadcasting over 0.0.0.0 expected behavior? I've got a patch that alters 
> the behavior to what I expect. I'm not sure if I should submit it as a pull 
> request or not though.
>

We are trying to use zbeacon as well.  I am curious, why use UDP 
broadcast instead of multicast?  Please review this SO question for 
background:

http://stackoverflow.com/questions/683624/udp-broadcast-on-all-interfaces

On Linux, IP addresses belong to a machine, not to an interface.  I 
could envision a case where you have two interfaces on the same subnet, 
choose one to broadcast on, and a zbeacon listener then wishes to 
connect back to the broadcaster, does an ARP request, gets a reply from 
a different interface [1], and the subsequent connection is established 
on an interface other than the one intended.  To get around this, you 
have to enable ARP filtering [2], but the average user might not be 
aware of this.

[1] http://www.embedded-bits.co.uk/2008/multiple-network-gotcha/
[2] http://serverfault.com/a/247953

Would a rewrite to use multicast be an option?  If so, I'd be willing to 
help with that, though finding the time could be a challenge.  I'm 
mainly asking if it could be done without requiring a new API, but I 
doubt it, since you could have old zbeacon instances on a network that 
could no longer talk to a new multicast zbeacon.

Regards,
Patrick
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to