On Wed, Nov 05, 2008 at 11:32:36AM +0800, Uwe Dippel wrote: > Deraj Puma wrote: > >> This same thing happened to me last night between me and my ISP. I >> deleted /var/db/dhclient.leases.if and rebooted which worked. > > No cigar. > Of course, I have no /var/db/dhclient.leases, but I did move > dhcpd.leases out of the way and rebooted. It was recreated, but no IP > dished out. > Further, I also 'pfctl -d' the firewall out of the way. Still no success. > > I tried to find the location of the dhcp leases on Solaris, but no success. > > I found the only config file for the dhcpagent, and it has only one > uncommented line for inet4: > >> # By default, a parameter request list requesting a subnet mask (1), >> # router (3), DNS server (6), hostname (12), DNS domain (15), broadcast >> # address (28), and encapsulated vendor options (43), is sent to the DHCP >> # server when the DHCP agent sends requests. However, if desired, this >> # can be changed by altering the following parameter-value pair. The >> # numbers correspond to the values defined in the IANA bootp-dhcp-parameters >> # registry at the time of this writing. >> # >> PARAM_REQUEST_LIST=1,3,6,12,15,28,43 > > Then I continued debugging on the client side, and that was more promising. > Here is the session on the admin side: > >> # ifconfig nge0 dhcp status >> Interface State Sent Recv Declined Flags >> nge0 SELECTING 7 0 0 # ifconfig nge0 dhcp >> status >> Interface State Sent Recv Declined Flags >> nge0 SELECTING 8 0 0 # ifconfig nge0 dhcp >> drop # ifconfig nge0 dhcp status >> ifconfig: nge0: interface is not under DHCP control >> # ifconfig nge0 dhcp start >> ^C > >> # /sbin/dhcpagent -d 2 -v >> # ps -eaf | grep dhcp >> root 319 1 0 11:06:37 ? 0:00 /sbin/dhcpagent >> # kill 319 > >> # ifconfig nge0 192.168.116.91 >> # route add default 192.168.116.200 >> add net default: gateway 192.168.116.200 > > In the first part, one can see the counter of unsuccessful attempts > incrementing. > Then I stop dhcpclient, and restart; and stop and ask for verbose output. > > This is the dmesg, and it clearly shows a compatibility problem; under > the default as well as under verbose states: > >> Nov 5 11:07:07 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] >> recv_pkt: bad option overload >> Nov 5 11:13:18 solN last message repeated 17 times >> Nov 5 11:13:50 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] >> recv_pkt: bad option overload >> Nov 5 11:15:50 solN last message repeated 11 times >> Nov 5 11:16:28 solN /sbin/dhcpagent[1156]: [ID 787751 daemon.error] >> dhcp_ipc_init: cannot bind to port 4999 (agent already running?) >> Nov 5 11:16:53 solN /sbin/dhcpagent[319]: [ID 566172 daemon.warning] >> recv_pkt: bad option overload > > It is beyond my horizon, what the "recv_pkt: bad option overload" means, > but it shows that Solaris is not going to accept offers from the dhcpd > of 4.4. Alas, my fault, I have no backup of 4.3, but exactly the same > had worked flawlessly throughout up to and including 4.3. > > Uwe
Apparently some of the extensive work on DHCP options for 4.4, most with the intent to harden option processing against malicious clients, has upset Solaris in some way. It may help to shorten the amount of dhcp option info, to avoid using option overload. .... Ken

