[Dnsmasq-discuss] dnsmasq sending truncated DHCPv6 packets

Simon Kelley simon at thekelleys.org.uk
Tue Dec 3 17:58:16 GMT 2019


On 29/11/2019 15:55, Derek Higgins wrote:
> Hi,
> 
> I've been trying to track down the reason for intermittent PXE
> failures while using DHCPv6,
> the failed PXE attempts seem to correlate with incomplete dhcp6
> advertise packets.
> 
> e.g. in this sequence, the advertise packet length is 62 (all of the
> failed attempts I've found happened with packets of the same length)
> 
> 14:11:42.843363 00:93:12:a1:39:68 > 33:33:00:01:00:02, ethertype IPv6
> (0x86dd), length 116: fe80::293:12ff:fea1:3968.546 > ff02::1:2.547:
> dhcp6 solicit
> 14:11:42.843598 52:54:00:96:ef:51 > 00:93:12:a1:39:68, ethertype IPv6
> (0x86dd), length 62: fe80::5710:879f:72e4:7b41.547 >
> fe80::293:12ff:fea1:3968.546: dhcp6[|dhcp6]
> 
> Compared to a successful sequence
> 14:11:44.843012 00:93:12:a1:39:68 > 33:33:00:01:00:02, ethertype IPv6
> (0x86dd), length 116: fe80::293:12ff:fea1:3968.546 > ff02::1:2.547:
> dhcp6 solicit
> 14:11:44.843247 52:54:00:96:ef:51 > 00:93:12:a1:39:68, ethertype IPv6
> (0x86dd), length 168: fe80::5710:879f:72e4:7b41.547 >
> fe80::293:12ff:fea1:3968.546: dhcp6 advertise
> 
> I've attached 3 files, the first is my dnsmasq config file, the second
> is my dnsmasq logs and the 3 is a tcpdump of the DHCPv6 traffic while
> 3 hosts were PXE booting one succeeded and the other 2 failed in the
> way described above
> 
> I'm using dnsmasq-2.76-10.el7_7.1 on CentOS 7.7.1908 running in a container
> 
> I've also tried with the most recent version of dnsmasq
> (2.80-93-g6ebdc95), and also get strange looking packets
> (msgtype-134??), eg
> 10:40:43.204829 00:39:a6:0a:33:99 > 33:33:00:01:00:02, ethertype IPv6
> (0x86dd), length 223: fe80::239:a6ff:fe0a:3399.546 > ff02::1:2.547:
> dhcp6 request
> 10:40:43.206361 52:54:00:02:9a:11 > 00:39:a6:0a:33:99, ethertype IPv6
> (0x86dd), length 126: fe80::5325:ca30:6ccd:c83.547 >
> fe80::239:a6ff:fe0a:3399.546: dhcp6 msgtype-134
> vs.
> 10:40:43.213256 00:39:a6:0a:33:95 > 33:33:00:01:00:02, ethertype IPv6
> (0x86dd), length 223: fe80::239:a6ff:fe0a:3395.546 > ff02::1:2.547:
> dhcp6 request
> 10:40:43.219308 52:54:00:02:9a:11 > 00:39:a6:0a:33:95, ethertype IPv6
> (0x86dd), length 210: fe80::5325:ca30:6ccd:c83.547 >
> fe80::239:a6ff:fe0a:3395.546: dhcp6 reply
> 
> but these only appear to happen after iPXE has chain loaded and also
> sometimes stalls the boot process, I guess depending on when they
> happen.
> 
> any help in finding the problem (or a solution) would be appreciated.
> 
> thanks,
> Derek.
> 
This doesn't feel like a familiar bug, but trying some newer code,
(2.80, or preferably the git HEAD code) might be a quick solution.

The 62-octet packets are just IP headers, there's no payload at all,
which is strange. Could you attach strace to the dnsmasq process, so we
can see if  dnsmasq is in fact sending zero-length packets at syscall
level, or if somthing in the kernel network stack or hardware is
truncaing them?

Cheers,

SImon.




More information about the Dnsmasq-discuss mailing list