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