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

George Joseph george.joseph at fairview5.com
Thu Jun 19 18:54:25 CEST 2014


Thanks for tracking this down!    I'm going to give it a try this afternoon.


On Thu, Jun 19, 2014 at 9:20 AM, Radek Zajíc <radek at zajic.v.pytli.cz> wrote:

> 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
>>>
>>>
>>
>
> _______________________________________________
> 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/9f639c2c/attachment-0001.html>


More information about the Dibbler mailing list