[erlang-questions] Problems with gen_udp on multi-homed hosts

Michael Santos michael.santos@REDACTED
Tue Nov 16 20:09:39 CET 2010

On Tue, Nov 16, 2010 at 01:03:18PM -0500, Gregory Haskins wrote:

> >> So the obvious solution to me after googling was to use the {ip,
> >> {}} option on the open.  The open() call succeeds with this
> >> option set, but I never see any packets (even though I have sniffed the
> >> line and they are indeed being sent.  As a sanity check, I also set a
> >> bogus IP in the open(), and it does indeed exception out, so it seems
> >> like it is taking the option I set.
> > 
> > Not sure why this isn't working, maybe the packet is still going out
> > your default interface.
> Well, the problem I was describing was on the RX side.  I don't seem to
> get any packets once the {ip, ..} option is set (even though my client
> is basically making requests every few seconds regardless of the
> server-side mode, and I can confirm I see the packets on the wire via
> wireshark)

Ok. Maybe confirm in wireshark that the MAC address for the packet being
sent is the one you expect (assuming virbr0 isn't a physical interface).

> >> I am running out of ideas outside of abandoning gen_udp() in favor of a
> >> ports driver, and/or not writing the DHCP portion of my code in Erlang.
> >>  Neither is particularly attractive, especially given that this seems
> >> like a fairly straight forward sockets app and I would think it could be
> >> made to work.
> > 
> > On Linux, you can try binding the socket to an interface [1].
> Very cool.  I will take a look at procket.
> > klaar added
> > support to do this for his quite interesting dhcp server, edhcpd [2].
> Cool, I wasnt aware of this project either.  I was using code from
> http://code.google.com/p/erlang-dhcp-server as a base, but its fairly
> old now.  Perhaps I should be looking at klaar's code instead, anyway.
> You mentioned he is doing some interesting things?  Out of curiosity,
> can you elaborate on what makes it interesting to you?  I noticed that
> he is using gproc and mnesia (vs dets in the project referenced above)
> so I assume at the very least this might be some kind of clustered DHCPd
> impl?  Anything else interesting going on?

To be honest, I haven't had a chance to look too closely at it, so mainly
the idea of an Erlang dhcp server :) 

More information about the erlang-questions mailing list