Re: [Dnsmasq-discuss] Odd caching behaviour...

2019-03-20 Thread John Robson
It is the idea of caching, but not beyond the record TTL surely? And why
stop only when I reset another piece of software (whether I do that after 5
minutes or 4 hours).

I'm finding that the upstream server is inconsistent in how much
information it returns - just occasionally not returning anything beyond
the first CNAME - which means that this is probably passed on to my program
as such, which means that something else is involved in triggering it...

I don't expect this to be easy :(

I think we may have found the application bug (it just doesn't know how to
handle a non IP address return), but I'd still like to understand the
behaviour from dnsmasq.



On Wed, 20 Mar 2019 at 23:30, Geert Stappers  wrote:

> On Wed, Mar 20, 2019 at 09:00:20PM +, John Robson wrote:
> > Hi,
> >
> > I have a library which I think has a bug, but this bug is affecting DNS
> > queries, and bringing out some odd behaviour in dnsmasq...
> >
> > Program is making a query to resolve an address (foo.bar.com)
> > A normal query results in a CNAME (foo.bar.com.edgekey.net), which
> results
> > in another CNAME (e1234.a.akamaiedge.net) which has an A record.
> >
> > However every so often dnsmasq returns just the first CNAME.
> > Note I haven't yet caught it in the act of that first truncated response.
> > The only thing that makes sense to me is if the edgekey.net name servers
> > didn't respond in good time... but
> >
> > However the bug in the library then means it asks again, instantly.  and
> > again... and again
> > It manages over 100MB/ minute of DNS requests - dnsmasq answering them
> all
> > from the cache (I see *no* external requests for that address).
>
> Hey, that is the idea about DNS caching ...
>
>
> > When I restart the program the very first query (identical query as
> before)
> > gets a complete answer from dnsmasq.
> >
> > What I can't understand is how that restart makes any difference to
> dnsmasq.
> > Does dnsmasq have some sort of 'Oh hell the query load is insane I'm just
> > extending the cache a bit to help' mode which it then escapes from as the
> > program restarts?
> > There are no external queries for this name during the period of
> insanity,
> > but the first request after does get put to the external name servers.
> >
> > I'm running an 'external interface only' capture to try and capture the
> > initial error condition (which I very much doubt is a problem in
> dnsmasq),
> > to see if that can shed some light on the issue.
> >
> >
> > Thoughts? debug hints? laughter?
>
>
> To me it seems that the first DNS request from the application has
> "recursion".  Upon encountering the bug is doing the app "non
> recursion". With "recusion" do I mean 'When the reply is not an A-record
> do a next query'.
>
> On debug hints:  Currently is the suspected trigger of the bug
> a DNS that doesn't respond within good time.  So make a "chain"
> of DNServers where you control the response time of one.
>
> Good luck with it.  And feel welcome to report back.
>
>
> > Cheers,
> > John
>
> Groeten
> Geert Stappers
> --
> Leven en laten leven
>
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>


-- 

*John Robson*
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] Odd caching behaviour...

2019-03-20 Thread Geert Stappers
On Wed, Mar 20, 2019 at 09:00:20PM +, John Robson wrote:
> Hi,
> 
> I have a library which I think has a bug, but this bug is affecting DNS
> queries, and bringing out some odd behaviour in dnsmasq...
> 
> Program is making a query to resolve an address (foo.bar.com)
> A normal query results in a CNAME (foo.bar.com.edgekey.net), which results
> in another CNAME (e1234.a.akamaiedge.net) which has an A record.
> 
> However every so often dnsmasq returns just the first CNAME.
> Note I haven't yet caught it in the act of that first truncated response.
> The only thing that makes sense to me is if the edgekey.net name servers
> didn't respond in good time... but
> 
> However the bug in the library then means it asks again, instantly.  and
> again... and again
> It manages over 100MB/ minute of DNS requests - dnsmasq answering them all
> from the cache (I see *no* external requests for that address).

Hey, that is the idea about DNS caching ...


> When I restart the program the very first query (identical query as before)
> gets a complete answer from dnsmasq.
> 
> What I can't understand is how that restart makes any difference to dnsmasq.
> Does dnsmasq have some sort of 'Oh hell the query load is insane I'm just
> extending the cache a bit to help' mode which it then escapes from as the
> program restarts?
> There are no external queries for this name during the period of insanity,
> but the first request after does get put to the external name servers.
> 
> I'm running an 'external interface only' capture to try and capture the
> initial error condition (which I very much doubt is a problem in dnsmasq),
> to see if that can shed some light on the issue.
> 
> 
> Thoughts? debug hints? laughter?
 

To me it seems that the first DNS request from the application has
"recursion".  Upon encountering the bug is doing the app "non
recursion". With "recusion" do I mean 'When the reply is not an A-record
do a next query'.

On debug hints:  Currently is the suspected trigger of the bug
a DNS that doesn't respond within good time.  So make a "chain"
of DNServers where you control the response time of one.

Good luck with it.  And feel welcome to report back.


> Cheers,
> John

Groeten
Geert Stappers
-- 
Leven en laten leven

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


[Dnsmasq-discuss] Odd caching behaviour...

2019-03-20 Thread John Robson
Hi,

I have a library which I think has a bug, but this bug is affecting DNS
queries, and bringing out some odd behaviour in dnsmasq...

Program is making a query to resolve an address (foo.bar.com)
A normal query results in a CNAME (foo.bar.com.edgekey.net), which results
in another CNAME (e1234.a.akamaiedge.net) which has an A record.

However every so often dnsmasq returns just the first CNAME.
Note I haven't yet caught it in the act of that first truncated response.
The only thing that makes sense to me is if the edgekey.net name servers
didn't respond in good time... but

However the bug in the library then means it asks again, instantly.  and
again... and again
It manages over 100MB/ minute of DNS requests - dnsmasq answering them all
from the cache (I see *no* external requests for that address).

When I restart the program the very first query (identical query as before)
gets a complete answer from dnsmasq.

What I can't understand is how that restart makes any difference to dnsmasq.
Does dnsmasq have some sort of 'Oh hell the query load is insane I'm just
extending the cache a bit to help' mode which it then escapes from as the
program restarts?
There are no external queries for this name during the period of insanity,
but the first request after does get put to the external name servers.

I'm running an 'external interface only' capture to try and capture the
initial error condition (which I very much doubt is a problem in dnsmasq),
to see if that can shed some light on the issue.


Thoughts? debug hints? laughter?

Cheers,

John

-- 
*John Robson*
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


[Dnsmasq-discuss] Parsing limitation for big dns query responses in tcp

2019-03-20 Thread Philippe Lamhaut
Hello,

I am using dnsmasq version 2.80 as dns client in an application. Testing
different size of dns query responses in tcp.

The biggest response that is properly parsed by the application has the
following specifications:
dns response size: 2049
tcp PDU size: 2051
Answers RRs:30
Additional RRs:  31

When the response is bigger than that the ns_initparse() function fails
with "Message too long" error.

Appreciate any help to understand where is the bottleneck and if something
can be do to support bigger responses.

Thanks,
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss