>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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        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 <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet 127.0.0.1 netmask 0xff000000 
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
# 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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        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 <full-duplex>)
        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:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to