I am waking through RFC3810 and playing with MLDv2. From that RFC I thought when anyone send query for group :: (all groups) and send it to address ff02::1 all subscribers on segment should send its reports within maximum response delay. So I created and sent that query using scapy:

sendp(Ether()/IPv6(dst='ff02::1')/IPv6ExtHdrHopByHop(options=[RouterAlert()])/ICMPv6MLQuery2(mladdr="::", mrd=1000, QRV=2, QQIC=60) ,iface="USB-Eth", loop=0, inter=0)

I have win10 pc, Linux pc and Mikrotik all of them subscribed to group ff16::fe connected to same Lan (through dumb switch). I can see all of them sent correct listener report but none of those devices responds to my query. No matter if I send it from Linux or Win.

I compared my packet with some capture I found on the net and it differs only in source link local addr and check sums.

Is my expectation wrong?

Thank you.

1 Answer 1


Dumby me...

Of course every listener must reply to query. But listener must discard query with hop limit different than 1.

Here is the correct scapy command:

sendp(Ether()/IPv6(dst='ff02::1',hlim=1)/IPv6ExtHdrHopByHop(options=[RouterAlert()])/ICMPv6MLQuery2(mladdr="::", mrd=10000, QRV=2, QQIC=125) ,iface='enp1s0', loop=0, inter=0)

And here is some handy utility which when called like this sudo ./mcquery -i enp1s0 mld:2 sends identical query.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.