I have a number of Mac (and a few Linux) laptops getting DHCP from a Force10 layer 3 switch, the only DHCP server on the subnet. There's a global dynamic pool, and for each full-time employee's laptop I have a single IP static pool set by MAC address. One and only one of the clients, running OS X 10.7.5, consistently fails to get a static assignment. The MAC address in the static pool definition has been carefully re-checked.

Running tcpdump on a mirrored port when the laptop connects, I see that it is specifically requesting (a dynamic address):

11:32:10.108280 IP (tos 0x0, ttl 255, id 28293, offset 0, flags [none], proto UDP (17), length 328) > broadcasthost.bootps: [udp sum ok] BOOTP/DHCP, Request from 3c:07:54:xx:xx:xx (oui Unknown), length 300, xid 0x1399da89, Flags [none] (0x0000)
  Client-Ethernet-Address 3c:07:54:xx:xx:xx (oui Unknown)
  Vendor-rfc1048 Extensions
    Magic Cookie 0x63825363
    DHCP-Message Option 53, length 1: Request
    Parameter-Request Option 55, length 9: 
      Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
      Option 119, LDAP, Option 252, Netbios-Name-Server
    MSZ Option 57, length 2: 1500
    Client-ID Option 61, length 7: ether 3c:07:54:xx:xx:xx
    Requested-IP Option 50, length 4:
    Lease-Time Option 51, length 4: 7776000
    Hostname Option 12, length 10: "host-name"
    END Option 255, length 0
    PAD Option 0, length 0, occurs 8

I haven't been able to find any extra system prefs or unusual software on the laptop. Disabling the interface and rebooting or temporarily setting the IP manually both fail to make any difference.

Any suggestions appreciated.

  • Apple support had me try trashing system prefs, resetting PRAM, and resetting smc. We finally went into system restore's network utility and found it coming up with the same IP there, suggesting it isn't caching anywhere in the OS but most likely on the NIC itself. I'm gonna file this one away and start on a workaround for now. – Starchy Nov 20 '12 at 20:48

Try removing the Mac's old lease records in /var/db/dhcpclient, then rebooting to make sure it rereads them. There might be a simpler way to get it to reread the leases, but since I haven't properly tested this, I'll recommend going with brute force.

| improve this answer | |
  • Great suggestion, but it doesn't seem to have any effect. I made sure the /var/db/dhcpclient/leases directory was empty after reboot and before turning the NIC back on, but it still requested the same wrong IP. – Starchy Nov 20 '12 at 19:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.