dhcpleasequery problems - 4.2.2

Jack Kielsmeier jackkiel at netins.net
Mon Oct 17 19:10:08 UTC 2011


Hello,

We are running ISC DHCP 4.2.2 in a redundant fashion (failover peer) in
Solaris 11 zones (compiled from source).

Recently, we have determined that we need to make use of the DHCP leasequery
option. In testing, we notice the following occurring in our logs:

------------ LOGS ------------

Oct 17 13:19:03 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.
Oct 17 13:19:09 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.
Oct 17 13:19:15 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.
Oct 17 13:19:21 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.
Oct 17 13:22:34 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.
Oct 17 13:22:39 dhcp-dsm dhcpd: [ID 702911 local5.error] Impossible
condition at dhcpleasequery.c:492.

------------ END LOGS ------------

Line 432 looks like this:

lease_dereference(&lease, MDL);

It's part of this section:

------------ SNIP FROM dhcpleasequery.c ------------

                if (lease->uid_len > 0) {
                        if (!add_option(options,
                                        DHO_DHCP_CLIENT_IDENTIFIER,
                                        lease->uid,
                                        lease->uid_len)) {
                                option_state_dereference(&options, MDL);
                                lease_dereference(&lease, MDL);
                                log_info("%s: out of memory, no reply sent",
                                         msgbuf);
                                return;
                        }
                }

------------ END SNIP FROM dhcpleasequery.c ------------

The packet coming from the source looks like the following:

------------ PACKET ------------

Frame 4 (294 bytes on wire, 294 bytes captured)
Internet Protocol, Src: 167.142.41.2 (167.142.41.2), Dst: 167.142.225.132
(167.142.225.132)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 280
    Identification: 0x7d28 (32040)
    Flags: 0x00
        0.. = Reserved bit: Not Set
        .0. = Don't fragment: Not Set
        ..0 = More fragments: Not Set
    Fragment offset: 0
    Time to live: 254
    Protocol: UDP (0x11)
    Header checksum: 0xe508 [correct]
        [Good: True]
        [Bad : False]
    Source: 167.142.41.2 (167.142.41.2)
    Destination: 167.142.225.132 (167.142.225.132)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
    Source port: bootpc (68)
    Destination port: bootps (67)
    Length: 260
    Checksum: 0xcbac [validation disabled]
        [Good Checksum: False]
        [Bad Checksum: False]
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: NET/ROM pseudo
    Hardware address length: 0
    Hops: 0
    Transaction ID: 0x0000084f
    Seconds elapsed: 0
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 209.152.95.8 (209.152.95.8)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 167.142.41.2 (167.142.41.2)
    Client address not given
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Lease query
        Option: (53) DHCP Message Type
        Length: 1
        Value: 0A
    Option: (t=57,l=2) Maximum DHCP Message Size = 1152
        Option: (57) Maximum DHCP Message Size
        Length: 2
        Value: 0480
    Option: (t=55,l=2) Parameter Request List
        Option: (55) Parameter Request List
        Length: 2
        Value: 3352
        51 = IP Address Lease Time
        82 = Agent Information Option
    End Option

------------ END PACKET ------------

The device doing the query is a Cisco device. We do have the following set
in our dhcpd.conf file (in the global area):

allow leasequery;

Any assistance with this matter would be greatly appreciated. I do not know
what else to provide (such as the entire dhcpd.conf file, which is pretty
long).

Thank You,

-
Jack Kielsmeier
netINS Systems Administrator
systems at netins.net







More information about the dhcp-users mailing list