Recursive queries fail if query source port is not fixed

Vinny Abello vinny at tellurian.com
Thu Aug 14 22:17:45 UTC 2008


> -----Original Message-----
> From: bind-users-bounce at isc.org [mailto:bind-users-bounce at isc.org] On
> Behalf Of JINMEI Tatuya / ????
> Sent: Thursday, August 14, 2008 3:21 PM
> To: Hans F. Nordhaug
> Cc: bind-users at isc.org
> Subject: Re: Recursive queries fail if query source port is not fixed
>
> At Thu, 14 Aug 2008 15:20:38 +0200,
>
> > fctx 0xb3d04278(./NS'): destroy
> > resquery 0xb3f02260 (fctx 0x87b7b20(images.yandex.ru/A)): response
> > fctx 0x87b7b20(images.yandex.ru/A'): noanswer_response
> > fctx 0x87b7b20(images.yandex.ru/A'): cache_message
> > fctx 0x87b7b20(images.yandex.ru/A'): cancelquery
> > fctx 0x87b7b20(images.yandex.ru/A'): cancelqueries
> > fctx 0x87b7b20(images.yandex.ru/A'): try
> > fctx 0x87b7b20(images.yandex.ru/A'): cancelqueries
> > fctx 0x87b7b20(images.yandex.ru/A'): getaddresses
> > fctx 0x87b7b20(images.yandex.ru/A'): query
> > fctx 0x87b7b20(images.yandex.ru/A'): done
>
> This seems to indicate creating a query socket somehow failed.  Can
> you build BIND by hand to see if you can reproduce the problem with
> it?  Then we may add some ad-hock patch to provide more detailed log
> information.

Can you run sockstat and see if there are a large number of listening UDP sockets from another process or processes that maybe named is attempting to BIND to as well (and failing) when sourcing the queries? I'm not sure how BIND determines (if it does) if a port is free before attempting to bind to it when sourcing a query. I know you can specify port ranges to not use. Maybe the issue is that the port is being used by another process and eventually after a retry or two, you source from a port that is not being consumed by another process and it works.

-Vinny



More information about the bind-users mailing list