kern/137089: lagg falsely triggers IPv6 duplicate address detection
Alex Hayward
xelah-freebsdpr at xelah.com
Fri Jul 24 18:40:02 UTC 2009
>Number: 137089
>Category: kern
>Synopsis: lagg falsely triggers IPv6 duplicate address detection
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jul 24 18:40:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Alex Hayward
>Release: 7.2-RC2
>Organization:
>Environment:
FreeBSD db2.xxxxxxxxxxx 7.2-RC2 FreeBSD 7.2-RC2 #6: Tue Apr 28 20:43:30 BST 2009 alex at db2.xxxxxxxxx:/usr/obj/usr/src/sys/DB2 amd64
>Description:
When an IPv6 alias is added to a lagg interface one duplicate address detection ICMP neighbour solicitation message is sent from each interface forming the link. The kernel then thinks that the address is a duplicate when it isn't. This does not happen when only one physical interface is being used.
>How-To-Repeat:
[root at db2 /usr/home/alex]# jobs
[2]- Running tail -f /var/log/messages &
[3]+ Running tcpdump -vnpi lagg1 icmp6 &
[root at db2 /usr/home/alex]# ifconfig lagg1
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:15:60:0a:4d:9a
inet6 fe80::214:38ff:fe51:5da0%lagg1 prefixlen 64 scopeid 0x6
inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
inet6 fda8:48b8:b52c:1::b prefixlen 120
media: Ethernet autoselect
status: active
laggproto lacp
laggport: bge3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]# ifconfig lagg1 inet6 fda8:48b8:b52c:3::b prefixlen 120 alias
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]# 19:06:54.716072 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) :: > ff02::1:ff00:b: [icmp6 sum ok] ICMP6, neighbor so
licitation, length 24, who has fda8:48b8:b52c:3::b
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]# ifconfig lagg1
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:15:60:0a:4d:9a
inet6 fe80::214:38ff:fe51:5da0%lagg1 prefixlen 64 scopeid 0x6
inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
inet6 fda8:48b8:b52c:1::b prefixlen 120
inet6 fda8:48b8:b52c:3::b prefixlen 120
media: Ethernet autoselect
status: active
laggproto lacp
laggport: bge3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
[root at db2 /usr/home/alex]# ifconfig lagg1 inet6 fda8:48b8:b52c:3::b prefixlen 120 -alias
[root at db2 /usr/home/alex]# ifconfig lagg1 laggport bge1
[root at db2 /usr/home/alex]# ifconfig lagg1
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:15:60:0a:4d:9a
inet6 fe80::214:38ff:fe51:5da0%lagg1 prefixlen 64 scopeid 0x6
inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
inet6 fda8:48b8:b52c:1::b prefixlen 120
media: Ethernet autoselect
status: active
laggproto lacp
laggport: bge1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: bge3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
[root at db2 /usr/home/alex]# ifconfig lagg1 inet6 fda8:48b8:b52c:3::b prefixlen 120 alias
[root at db2 /usr/home/alex]# 19:12:04.364760 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) :: > ff02::1:ff00:b: [icmp6 sum ok] ICMP6, neighbor so
licitation, length 24, who has fda8:48b8:b52c:3::b
19:12:04.364826 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) :: > ff02::1:ff00:b: [icmp6 sum ok] ICMP6, neighbor solicitation, length 24, who
has fda8:48b8:b52c:3::b
Jul 24 19:12:05 db2 kernel: lagg1: DAD detected duplicate IPv6 address fda8:48b8:b52c:3::b: NS in/out=1/1, NA in=0
Jul 24 19:12:05 db2 kernel: lagg1: DAD complete for fda8:48b8:b52c:3::b - duplicate found
Jul 24 19:12:05 db2 kernel: lagg1: manual intervention required
[root at db2 /usr/home/alex]# ifconfig lagg1
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:15:60:0a:4d:9a
inet6 fe80::214:38ff:fe51:5da0%lagg1 prefixlen 64 scopeid 0x6
inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
inet6 fda8:48b8:b52c:1::b prefixlen 120
inet6 fda8:48b8:b52c:3::b prefixlen 120 duplicated
media: Ethernet autoselect
status: active
laggproto lacp
laggport: bge1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: bge3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
>Fix:
Not really a fix, of course:
[root at db2 /usr/home/alex]# ifconfig lagg1 inet6 fda8:48b8:b52c:3::b prefixlen 120 -alias
[root at db2 /usr/home/alex]# ipfw add 50 deny icmp6 from any to any
00050 deny ipv6-icmp from any to any
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]# ifconfig lagg1 inet6 fda8:48b8:b52c:3::b prefixlen 120 alias
[root at db2 /usr/home/alex]# ipfw delete 50
[root at db2 /usr/home/alex]#
[root at db2 /usr/home/alex]# ifconfig lagg
lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:15:60:0a:4d:9a
inet6 fe80::214:38ff:fe51:5da0%lagg1 prefixlen 64 scopeid 0x6
inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
inet6 fda8:48b8:b52c:1::b prefixlen 120
inet6 fda8:48b8:b52c:3::b prefixlen 120
media: Ethernet autoselect
status: active
laggproto lacp
laggport: bge1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: bge3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list