[Dnsmasq-discuss] Parsing limitation for big dns query responses in tcp
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
[Dnsmasq-discuss] Odd caching behaviour...
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
Re: [Dnsmasq-discuss] Odd caching behaviour...
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
Re: [Dnsmasq-discuss] Odd caching behaviour...
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