[Dibbler] dibbler server don't receive client solicit message

Radek Zajíc radek at zajic.v.pytli.cz
Thu Jun 19 17:20:11 CEST 2014


So... Here's some further investigation:
1. when the multicast socket is created first, then the link-local address
socket created next, Dibbler does not receive messages from DHCPv6 clients.
2. when the link-local address socket is created first, then the multicast
socket next, everything seems to work smoothly.
This must have changed somewhere in kernel at about 3.11-3.12.

How did I achieve this? I had to play with the source code. Final solution
is to move a block of code within SrvTransMgr/SrvTransMgr.cpp in method
TSrvTransMgr::openSocket.

When I took the block of code that begins with "#if 1" and ends with
"#endif" just after the char srvAddr[16]; and recompile, it works.

Don't ask me why as I'm not a kernel, neither app developer.

Radek



On Wed, Jun 18, 2014 at 9:10 PM, Radek Zajíc <radek at zajic.v.pytli.cz> wrote:

> Dear all,
>
> having the same issue, I did some further investigation. The firewall is
> not the problem (wide-dhcpv6 works), neither is an apparmor (uninstalled
> that piece of... and rebooted).
>
> The configuration is really simple, however does not work with dibbler. It
> does work with wide-dhcp6, though.
>
> First I was considered that dibbler may be affected by this issue:
> http://www.spinics.net/lists/netdev/msg286344.html
> So I installed the latest kernel 3.15.0-031500-generic (testing on Ubuntu
> 14.04) - the problem still exists.
>
> The latest thought I have is that dibbler is affected as mentioned here:
> http://serverfault.com/questions/590558/ubuntu-14-04-ipv6-multicast
> "This behavior was not present in kernel versions below 3.10, which
> apparently didn't handle node-local multicast properly. See the actual
> kernel patch that enforces this and the function definition of
> __ipv6_addr_needs_scope_id."
>
> So I did further tests. Installed Ubuntu 13.10 with default kernel and
> settings - and Dibbler (0.8.2-1) works.
> Installed Ubuntu 14.04 with default kernel and settings - and Dibbler
> (1.0.0~rc1-1) does not respond.
>
> So I upgraded kernel in Ubuntu 13.10 to 3.14.1-031401-generic and Dibbler
> (0.8.2-1) does not respond anymore.
>
> It seems there have really been kernel changes that broke/changed the
> multicast handling, breaking Dibbler completely.
>
> To all of you who have problem with Dibbler, what kernel version are you
> using?
>
> Thanks
> Radek
>
> === dumps & info ===
>
> # tcpdump -i br0.2 '(udp port 546)||(udp port 547)' -n
> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> listening on br0.2, link-type EN10MB (Ethernet), capture size 65535 bytes
> # dibbler responses (missing)
> 16:22:26.251241 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 16:22:26.397952 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 16:22:26.573567 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 16:22:27.615026 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 16:22:29.601133 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
>
> # wide-dhcpv6 responses (correct)
> 16:23:29.616639 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 16:23:29.616871 IP6 fe80::922b:34ff:fed1:ed8.49872 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 16:23:29.617412 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> request
> 16:23:29.617556 IP6 fe80::922b:34ff:fed1:ed8.49872 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 reply
> 16:23:57.083111 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> confirm
> 16:23:57.083308 IP6 fe80::922b:34ff:fed1:ed8.49872 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 reply
> 16:23:58.104311 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> confirm
> 16:23:58.104472 IP6 fe80::922b:34ff:fed1:ed8.49872 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 reply
> 16:23:59.116940 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> confirm
> 16:23:59.117112 IP6 fe80::922b:34ff:fed1:ed8.49872 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 reply
>
> ==== Dibbler configuration ====
> # cat /etc/dibbler/server.conf
> log-level 8
> preference 0
> iface "br0.2" {
>  // also ranges can be defines, instead of exact values
>  t1 1800-2000
>  t2 2700-3000
>  prefered-lifetime 3600
>  valid-lifetime 7200
>  class {
>     pool 2a01:8c00:ff44::1000/96
>  }
>  ta-class {
>     pool 2a01:8c00:ff44::2000/96
>  }
>  option dns-server 2a01:8c00:ff44::127
> }
>
> # dpkg --list|grep dibbler
> ii  dibbler-doc
> 1.0.0~rc1-1                                         all
> documentation for Dibbler
> ii  dibbler-server
> 1.0.0~rc1-1                                         amd64        portable
> DHCPv6 server
>
> # ip -6 maddr show dev br0.2
> 6:      br0.2
>         inet6 ff02::1:2
>         inet6 ff02::1:ff00:2
>         inet6 ff02::fb
>         inet6 ff02::1:ff00:0 users 2
>         inet6 ff02::1:ffd1:ed8
>         inet6 ff02::1:ff00:1
>         inet6 ff02::2 users 2
>         inet6 ff02::1
>         inet6 ff01::1
>
> ==== wide-dhcpv6-server ====
> # cat /etc/wide-dhcpv6/dhcp6s.conf
> option domain-name-servers      2a01:8c00:ff44::127;
> option domain-name              "dira.lan";
>
> interface br0.2 {
>     address-pool br02 3600;
> };
>
> pool br02 {
>     range 2a01:8c00:ff44::1000 to 2a01:8c00:ff44::2000;
> };
>
> # dpkg --list|grep wide-dhcp
> ii  wide-dhcpv6-server
> 20080615-12                                         amd64        DHCPv6
> server for automatic IPv6 hosts configuration
>
> # ip -6 maddr show dev br0.2
> 6:      br0.2
>         inet6 ff05::1:3
>         inet6 ff02::1:2
>         inet6 ff02::1:ff00:2
>         inet6 ff02::fb
>         inet6 ff02::1:ff00:0 users 2
>         inet6 ff02::1:ffd1:ed8
>         inet6 ff02::1:ff00:1
>         inet6 ff02::2 users 2
>         inet6 ff02::1
>         inet6 ff01::1
>
> ============== Ubuntu 13.10 with linux-image-3.11.0-12-generic
> ======================
> 20:57:13.467201 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:13.467685 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 20:57:13.497322 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:13.498217 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 20:57:13.671613 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:13.672369 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 20:57:14.668986 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:14.669696 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 20:57:16.668977 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:16.669683 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
> 20:57:16.895300 IP6 fe80::5054:ff:fe05:c0d1.546 > ff02::1:2.547: dhcp6
> renew
> 20:57:20.684582 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 20:57:20.685098 IP6 fe80::5054:ff:fe05:c0d1.547 >
> fe80::e48a:3505:cf50:bb27.546: dhcp6 advertise
>
> ============== Ubuntu 13.10 with 3.14.1-031401-generic
> ======================
> 21:04:06.376502 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:06.414278 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:06.440153 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:07.454272 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:09.455268 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:13.457167 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
> 21:04:21.461210 IP6 fe80::e48a:3505:cf50:bb27.546 > ff02::1:2.547: dhcp6
> solicit
>
>
>
>
> On Fri, May 30, 2014 at 5:11 PM, George Joseph <
> george.joseph at fairview5.com> wrote:
>
>> On Fri, May 30, 2014 at 3:52 AM, Tomasz Mrugalski <thomson at klub.com.pl>
>> wrote:
>>
>>> On 30.05.2014 10:42, amysue.z at gmail.com wrote:
>>> > I have installed dibbler 0.84 on centos 6.3 32bit. The pc has received
>>> > client solicit message, verified by wireshark. But dibbler server
>>> don't,
>>> > and no advertise message send.
>>> > I have no idea what to do now, could any one help me.
>>> Check your firewall. Wireshark is doing raw packet capture on wire, so
>>> it bypasses firewall. Dibbler opens regular UDP socket, so it is
>>> affected by a firewall.
>>>
>>> Two things to check: ip6tables and apparmor.
>>>
>>> Tomek
>>>
>>> Funny...I have the exact same problem on Fedora 20.  I had previously
>> run dibbler with no issues but switched back to "dhcpd -6" for a while.
>> When I tried dibbler again last week (same binary as the earlier working
>> install), it acted as though it wasn't receiving packets and I had to go
>> back to "dhcpd -6".    I did upgrade from Fedora 19 to 20 in the mean time
>> so I'm wondering if something in the environment is causing the problem.
>>  dhcpd IS working though.
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> http://klub.com.pl/cgi-bin/mailman/listinfo/dibbler
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://klub.com.pl/pipermail/dibbler/attachments/20140619/df1f1414/attachment.html>


More information about the Dibbler mailing list