Why would a Linux machine decide to send out ICMP6 neighbour
solicitation messages for one of its own addresses?
ifconfig shows that the interface is configured with global and
link-scope addresses:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:04:76:16:5E:2C
inet addr:172.16.0.9 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: 2002:5433:8dfe:0:204:76ff:fe16:5e2c/64 Scope:Global
inet6 addr: fe80::204:76ff:fe16:5e2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
[...]
but attempting to ping the link-scope address fails:
$ ping6 -I eth0 fe80::204:76ff:fe16:5e2c
PING fe80::204:76ff:fe16:5e2c (fe80::204:76ff:fe16:5e2c): 56 data bytes
--- fe80::204:76ff:fe16:5e2c ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
and 'tcpdump' running on another host shows a few of these being
transmitted (long line, might wrap):
17:22:27.752734 IP6 fe80::204:76ff:fe16:5e2c > ff02::1:ff16:5e2c: ICMP6, neighbor solicitation, who has fe80::204:76ff:fe16:5e2c, length 32
This puzzles me - surely the kernel has no need to ask for the
MAC address of one of its own network cards?
Two other IPv6 machines (both running Debian, kernels 2.4.27 and
2.6.11) can successfully ping themselves like this without
generating any network traffic. The failing machine runs kernel
2.4.30 and is built entirely from source, with custom init
scripts, suggesting that it's misconfigured somehow.
Where should I start looking for the problem?
Mike
|