[Dibbler] Hello quick question about dibbler and openbsd

Tomasz Mrugalski thomson at klub.com.pl
Thu Aug 30 01:44:16 CEST 2012


On 28.08.2012 23:27, Sly Midnight wrote:
> I just have a quick question about running dibbler client on OpenBSD 5.1
> i386.  I downloaded and compiled dibbler-0.8.2 on my OpenBSD 5.1 router
> I use for my Comcast connection in the hopes of being able to use the
> dibbler-client to help obtain DHCPv6 info from my upstream comcast router.
The support for OpenBSD was never really tested with the reason being
plain old lack of time.

I just reproduced the problem on OpenBSD 4.8 with Dibbler 0.8.3RC1 and
debugged it at bit. It seems that getifaddrs() function does not return
link-local addresses correctly on OpenBSD (or rather the dibbler code
does not process OpenBSD's version of getifaddrs() correctly). For some
reason, on fourth byte there is a non-zero value returned. For example,
if your link-local address is fe80::a:b:c:d on 7th interface, the
address returned will be fe80:7::a:b:c:d. Dibbler then binds that
address (which is successful) and sends the data (which magically have
fe80::a:b:c:d over wire). Server responds and dibbler receives that
data. Then it compares the address that is bound (fe80:7::a:b:c:d) vs.
destination address (fe80::a:b:c:d) and then decides that this packet is
not really for us and drops it.

This code is used on FreeBSD, NetBSD and Mac OS. I'm not sure about Free
and Net, but the code works reliably ok on Mac OS.

Assuming that OpenBSD's getifaddrs() function works as expected, the bug
is somewhere in the if_list_get() in Port-bsd/lowlevel-bsd.c. I'm
unlikely to have time in a near future to debug it thoroughly. Anyone
willing to help?

Tomek



More information about the Dibbler mailing list