stateless DHCPv6 only, how to get rid of "unable to pick client address"

Christian Kratzer ck-lists at cksoft.de
Tue Nov 21 10:28:41 UTC 2017


Hi

On Tue, 21 Nov 2017, Marc Haber wrote:
<snipp/>
> Since the radvd advertises the networks as managed, all clients send
> DHCP requests, and the server logs for each of those requests:
>
> Nov 21 08:54:59 chasse dhcpd[763]: Solicit message from fe80::5054:ff:fe17:2fe7 port 546, transaction ID 0x811FA800
> Nov 21 08:54:59 chasse dhcpd[763]: DHCP6-RELAY client-id: 0:2:0:0:ab:11:f6:cb:ae:dd:18:d1:73:c1, interface-id: , remote-id:
> Nov 21 08:54:59 chasse dhcpd[763]: Unable to pick client address: no IPv6 pools on this shared network
> Nov 21 08:54:59 chasse dhcpd[763]: Sending Reply to fe80::5054:ff:fe17:2fe7 port 546
>
> These seriously clutter up my logs, can I tell the server that it should
> ignore DHCP solicit messages from clients that it doesn't have static
> configuration for? Or is it better to shrug and to have the DHCPv6
> server assign a "dynamic" IP address?

ich checked in the isc dhcp 4.3.5 sources where the respective log messages comes from dhcpv6.c

1252 /*!
1253  *
1254  * \brief  Get an IPv6 address for the client.
1255  *
1256  * Attempt to find a usable address for the client.  We walk through
1257  * the ponds checking for permit and deny then through the pools
1258  * seeing if they have an available address.
1259  *
1260  * \param reply = the state structure for the current work on this request
1261  *                if we create a lease we return it using reply->lease
1262  *
1263  * \return
1264  * ISC_R_SUCCESS = we were able to find an address and are returning a
1265  *                 pointer to the lease
1266  * ISC_R_NORESOURCES = there don't appear to be any free addresses.  This
1267  *                     is probabalistic.  We don't exhaustively try the
1268  *                     address range, instead we hash the duid and if
1269  *                     the address derived from the hash is in use we
1270  *                     hash the address.  After a number of failures we
1271  *                     conclude the pool is basically full.
1272  */
1273 static isc_result_t
1274 pick_v6_address(struct reply_state *reply)
1275 {
...
...
...
1306         /* If we get here and p is NULL we have no useful pools */
1307         if (p == NULL) {
1308                 log_debug("Unable to pick client address: "
1309                           "no IPv6 pools on this shared network");
1310                 return ISC_R_NORESOURCES;
1311         }


it looks to me you have very few options to stop the message.

1. add a pool to the subnet, perhaps just having a pool with deny all could help

2. uncomment the log_debug() and recompile

3. just ignore the message as it does not apply to your configuration

Greetings
Christian

-- 
Christian Kratzer                   CK Software GmbH
Email:   ck at cksoft.de               Wildberger Weg 24/2
Phone:   +49 7032 893 997 - 0       D-71126 Gaeufelden
Fax:     +49 7032 893 997 - 9       HRB 245288, Amtsgericht Stuttgart
Mobile:  +49 171 1947 843           Geschaeftsfuehrer: Christian Kratzer
Web:     http://www.cksoft.de/


More information about the dhcp-users mailing list