Le lundi 09 mars 2015 à 10:49:55, Michael Kerrisk (man-pages) a écrit : > On 03/09/2015 08:54 AM, Stéphane Aulery wrote: > > Le lundi 09 mars 2015 à 08:24:38, Michael Kerrisk (man-pages) a écrit : > > > >>>>> +.B RES_BLAST > >>>>> +When resolvers want to even out the load on their nameservers, following > >>>>> +them. > >>>> > >>>> I do not understand that last sentence. Could you clarify please. > >>> > >>> I must admit that it's not clear to me either. I think this means that > >>> server alias are swapped between each request. I have wrong? The word > >>> "blast" leaves me skeptical. > >>> > >>> What I found in code source: > >>> > >>> Form res_send.c > >>> > >>> /* > >>> * Some resolvers want to even out the load on their nameservers. > >>> * Note that RES_BLAST overrides RES_ROTATE. > >>> */ > >>> if (__builtin_expect ((statp->options & RES_ROTATE) != 0, 0) && > >>> (statp->options & RES_BLAST) == 0) { > >>> struct sockaddr_in6 *ina; > >>> unsigned int map; > >>> > >>> n = 0; > >>> while (n < MAXNS && EXT(statp).nsmap[n] == MAXNS) > >>> n++; > >>> if (n < MAXNS) { > >>> ina = EXT(statp).nsaddrs[n]; > >>> map = EXT(statp).nsmap[n]; > >>> for (;;) { > >>> ns = n + 1; > >>> while (ns < MAXNS > >>> && EXT(statp).nsmap[ns] == MAXNS) > >>> ns++; > >>> if (ns == MAXNS) > >>> break; > >>> EXT(statp).nsaddrs[n] = EXT(statp).nsaddrs[ns]; > >>> EXT(statp).nsmap[n] = EXT(statp).nsmap[ns]; > >>> n = ns; > >>> } > >>> EXT(statp).nsaddrs[n] = ina; > >>> EXT(statp).nsmap[n] = map; > >>> } > >>> } > >> > >> Okay -- I leave it to your discretion to choose what to do here. > > > > No please, I need your help. > > Sorry -- the code is not clear to me, and I don't have the time > to investigate deeper. Thank you for your help. > Google turns up this detail from the O'Reilly DNS and BIND > book: > > "Blast" all recursive servers by sending queries to > the simultaneously. Not implemented yet. > > The first sentence makes sense. I'm not sure whether > the second is true for glibc or not. But, I just grepped > the entire C source code for Fedora 20, and found no users > of RES_BLAST, so indeed maybe it is not implemented. Options not implemented are explicitly mentioned. [1] So for me it is. I propose: Send each query simultaneously and recursively to all servers. [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=resolv/res_debug.c;hb=95f386609f378063b35e0c4ede8c2d2ceea91f51#l564 Regards, -- Stéphane Aulery -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html