kern/117456: ipv6 neighbour discovery / bce multicast problem
Jacek Zapala
jacek at ipv6.jacek.it.pl
Wed Oct 24 09:40:03 PDT 2007
>Number: 117456
>Category: kern
>Synopsis: ipv6 neighbour discovery / bce multicast problem
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Oct 24 16:40:02 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: Jacek Zapala
>Release: 6.2-RELEASE-p8
>Organization:
>Environment:
FreeBSD 6.2-RELEASE-p8 #0: Mon Oct 15 15:29:48 CEST 2007 root at server:/usr/src/sys/i386/compile/DELL_2950 i386
>Description:
There are two FreeBSD-6.2 servers on the same subnet: A (2001:XXXX:YYYY:1::270) and B (2001:XXXX:YYYY:1::267)
I try to ping6 B from A.
B does not see neighbour discovery packets sent by A.
It starts to see them just after enabling promiscuous mode on B.
A:~# ifconfig bce0
bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
inet6 fe80::21a:a0ff:fe0e:8990%bce0 prefixlen 64 scopeid 0x1
inet6 2001:XXXX:YYYY:1::270 prefixlen 120
inet6 2001:XXXX:YYYY:1::272 prefixlen 120
(inet4 addresses deleted)
ether 00:1a:a0:0e:89:90
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
B:~# ifconfig bce0
bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
inet6 fe80::21a:a0ff:fe34:e724%bce0 prefixlen 64 scopeid 0x1
inet6 2001:XXXX:YYYY:1::267 prefixlen 120
inet6 2001:XXXX:YYYY:1::269 prefixlen 120
(inet4 addresses deleted)
ether 00:1a:a0:34:e7:24
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
B:~# netstat -ia
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs
Coll
bce0 1500 <Link#1> 00:1a:a0:34:e7:24 398232 0 416485 0
0
33:33:ff:00:02:69 729 8
33:33:ff:00:02:67 729 8
01:00:5e:00:00:01 729 8
33:33:f2:4c:bf:48 729 8
33:33:00:00:00:01 729 8
33:33:ff:34:e7:24 729 8
Packets on the wire (sniffed on third machine):
16:06:55.584139 00:1a:a0:0e:89:90 > 33:33:ff:00:02:67, ethertype IPv6
(0x86dd), length 86: 2001:XXXX:YYYY:1::270 > ff02::1:ff00:267: ICMP6,
neighbor solicitation, who has 2001:XXXX:YYYY:1::267, length 32
16:06:56.607487 00:1a:a0:0e:89:90 > 33:33:ff:00:02:67, ethertype IPv6
(0x86dd), length 86: 2001:XXXX:YYYY:1::270 > ff02::1:ff00:267: ICMP6,
neighbor solicitation, who has 2001:XXXX:YYYY:1::267, length 32
B does not see them:
B:~# tcpdump -n -p host 2001:XXXX:YYYY:1::270
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bce0, link-type EN10MB (Ethernet), capture size 96 bytes
^C
0 packets captured
746805 packets received by filter
0 packets dropped by kernel
Enabling promiscuous mode (no -p option) solves the problem:
B:~# tcpdump -n host 2001:XXXX:YYYY:1::270
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bce0, link-type EN10MB (Ethernet), capture size 96 bytes
16:46:11.348129 IP6 2001:XXXX:YYYY:1::270 > ff02::1:ff00:267: ICMP6,
neighbor solicitation, who has 2001:XXXX:YYYY:1::267, length 32
16:46:11.348202 IP6 2001:XXXX:YYYY:1::267 > 2001:XXXX:YYYY:1::270: ICMP6,
neighbor advertisement, tgt is 2001:XXXX:YYYY:1::267, length 32
16:46:11.348373 IP6 2001:XXXX:YYYY:1::270 > 2001:XXXX:YYYY:1::267: ICMP6,
echo request, seq 258, length 16
16:46:11.348393 IP6 2001:XXXX:YYYY:1::267 > 2001:XXXX:YYYY:1::270: ICMP6,
echo reply, seq 258, length 16
Do I miss something very obvious?
I use pf, but pfctl -d does not help
>How-To-Repeat:
Well, boot a machine and try to ping6 it. I know it sounds like I'm drunk ;-)
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list