From owner-freebsd-bugs@FreeBSD.ORG Sun Nov 14 13:50:09 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43F531065670 for ; Sun, 14 Nov 2010 13:50:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 047E58FC16 for ; Sun, 14 Nov 2010 13:50:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id oAEDo8Sd023808 for ; Sun, 14 Nov 2010 13:50:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id oAEDo8G4023807; Sun, 14 Nov 2010 13:50:08 GMT (envelope-from gnats) Resent-Date: Sun, 14 Nov 2010 13:50:08 GMT Resent-Message-Id: <201011141350.oAEDo8G4023807@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Gleb Kurtsou Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA4581065673 for ; Sun, 14 Nov 2010 13:46:59 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id A6A348FC18 for ; Sun, 14 Nov 2010 13:46:59 +0000 (UTC) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.3/8.14.3) with ESMTP id oAEDkx5N068475 for ; Sun, 14 Nov 2010 13:46:59 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.3/8.14.3/Submit) id oAEDkxpt068467; Sun, 14 Nov 2010 13:46:59 GMT (envelope-from nobody) Message-Id: <201011141346.oAEDkxpt068467@www.freebsd.org> Date: Sun, 14 Nov 2010 13:46:59 GMT From: Gleb Kurtsou To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: kern/152235: [net] Permanent local ARP entries are not properly updated after MAC address change X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Nov 2010 13:50:09 -0000 >Number: 152235 >Category: kern >Synopsis: [net] Permanent local ARP entries are not properly updated after MAC address change >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Nov 14 13:50:08 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Gleb Kurtsou >Release: 9.0-CURRENT >Organization: >Environment: >Description: The bug exists for a while already, it's probably related to import of new ARP/lltable code. If interface has more than one ip addressed assigned and interface ether (MAC) addresses is changed entries in ARP table are not properly updated. It happens because ARP tables are updated lazily but not on mac address change and all entries but one are always missed. >How-To-Repeat: # ifconfig em0 192.168.1.1 # dhclient em0 DHCPREQUEST on em0 to 255.255.255.255 port 67 DHCPACK from 10.0.2.2 bound to 10.0.2.15 -- renewal in 43200 seconds. # ifconfig em0: flags=8843 metric 0 mtu 1500 options=9b ether 08:00:27:9f:f7:81 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 inet 10.0.2.15 netmask 0xffffff00 broadcast 10.0.2.255 media: Ethernet autoselect (1000baseT ) status: active lo0: flags=8049 metric 0 mtu 16384 options=3 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 nd6 options=21 # ping 10.0.2.2 PING 10.0.2.2 (10.0.2.2): 56 data bytes 64 bytes from 10.0.2.2: icmp_seq=0 ttl=63 time=0.768 ms 64 bytes from 10.0.2.2: icmp_seq=1 ttl=63 time=3.293 ms ^C --- 10.0.2.2 ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.768/2.030/3.293/1.263 ms # arp -an ? (10.0.2.15) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] ? (192.168.1.1) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] ? (10.0.2.2) at 52:54:00:12:35:02 on em0 expires in 1196 seconds [ethernet] # ifconfig em0 ether 08:00:27:9f:f7:aa em0: flags=8843 metric 0 mtu 1500 options=9b ether 08:00:27:9f:f7:aa inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 inet 10.0.2.15 netmask 0xffffff00 broadcast 10.0.2.255 media: Ethernet autoselect (1000baseT ) status: active ### not updated until used again # arp -an ? (10.0.2.15) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] ? (192.168.1.1) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] ? (10.0.2.2) at 52:54:00:12:35:02 on em0 expires in 1160 seconds [ethernet] # ping 10.0.2.2 PING 10.0.2.2 (10.0.2.2): 56 data bytes ^C --- 10.0.2.2 ping statistics --- 2 packets transmitted, 0 packets received, 100.0% packet loss zsh: exit 2 ping 10.0.2.2 # dhclient em0 DHCPREQUEST on em0 to 255.255.255.255 port 67 DHCPACK from 10.0.2.2 bound to 10.0.2.15 -- renewal in 43200 seconds. # arp -an ? (10.0.2.15) at 08:00:27:9f:f7:aa on em0 permanent [ethernet] ? (192.168.1.1) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] #### I don't expect entries to be deleted, they are permanent # arp -da 10.0.2.15 (10.0.2.15) deleted 192.168.1.1 (192.168.1.1) deleted # arp -an ? (10.0.2.15) at 08:00:27:9f:f7:aa on em0 permanent [ethernet] ? (192.168.1.1) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] # arp -d 192.168.1.1 192.168.1.1 (192.168.1.1) deleted # arp -an ? (10.0.2.15) at 08:00:27:9f:f7:aa on em0 permanent [ethernet] ? (192.168.1.1) at 08:00:27:9f:f7:81 on em0 permanent [ethernet] >Fix: >Release-Note: >Audit-Trail: >Unformatted: