<div dir="ltr">Hi,<br>I've got some network devices(wifi extenders) that run dnsmasq. Some specific urls AAAA records returns as REFUSED from GWs dns proxy(I have no info about GWs internals). <br>I've realized that some of my curl commands hang for 15 secs and timeout.<br>curl -6 --dns-servers 127.0.0.1 -v <refused-url> (HANGS)<br>curl --dns-servers 127.0.0.1 -v <refused-url> (HANGS)<br>curl -4 --dns-servers 127.0.0.1 -v <refused-url> (RESOLVES INSTANTLY)<br><br>curl -6 --dns-servers 192.168.1.1 -v <refused-url> (RESOLVES INSTANTLY))<br>curl --dns-servers 192.168.1.1 -v <refused-url> (RESOLVES INSTANTLY))<br>curl -4 --dns-servers 192.168.1.1 -v <refused-url> (RESOLVES INSTANTLY)<br><br>Packets from curl -6 --dns-servers 127.0.0.1 and  1curl -6 --dns-servers 192.168.1.1 looks exactly same<br>-------------------------<br>NOT HANG packets<br>-------------------------<br>12:55:28.120426 a0:2d:13:a9:03:44 (oui Unknown) > 10:50:72:a1:b9:40 (oui Unknown), ethertype IPv4 (0x0800), length 122: AW2842301000274.40021 > 192.168.1.1.domain: 26821+ AAAA? <a href="http://xxxxxx.s3.amazonaws.com">xxxxxx.s3.amazonaws.com</a>. (80)<br>        0x0000:  4500 006c 8c65 4000 4011 2ac8 c0a8 0102  E..l.e@.@.*.....<br>        0x0010:  c0a8 0101 9c55 0035 0058 83bd 68c5 0100  .....U.5.X..h...<br>        0x0020:  0001 0000 0000 0000 xxxx  xxxx  xxxx  xxxx ........-xxxx<br>        0x0030:    xxxx  xxxx  xxxx  xxxx  xxxx  xxxx  xxxx  xxxx   xxxx-<br>        0x0040:  3239 3130 3433 3732 3635 3537 2d65 752d  291043726557-eu-<br>        0x0050:  7765 7374 2d31 0273 3309 616d 617a 6f6e  west-1.s3.amazon<br>        0x0060:  6177 7303 636f 6d00 001c 0001            aws.com.....<br>12:55:28.127647 10:50:72:a1:b9:40 (oui Unknown) > a0:2d:13:a9:03:44 (oui Unknown), ethertype IPv4 (0x0800), length 323: 192.168.1.1.domain > AW2842301000274.40021: 26821 Refused 0/1/0 (281)<br>        0x0000:  4500 0135 f9bb 4000 4011 bca8 c0a8 0101  E..5..@.@.......<br>        0x0010:  c0a8 0102 0035 9c55 0121 6977 68c5 8185  .....5.U.!iwh...<br>        0x0020:  0001 0000 0001 0000 xxxx  xxxx  xxxx  xxxx ........-xxxx<br>        0x0030:    xxxx  xxxx  xxxx  xxxx  xxxx  xxxx  xxxx  xxxx   xxxx-<br>                                                  ....<br>                                                  ....<br>        0x00b0:  0000 1b44 0016 0673 332d 332d 7709 616d  ...D...<a href="http://s3-3-w.am">s3-3-w.am</a><br>        0x00c0:  417a 6f6e 6177 7303 636f 6d00 0673 332d  Azonaws.com..s3-<br>        0x00d0:  332d 7709 616d 617a 6f6e 6177 7303 636f  <a href="http://3-w.amazonaws.co">3-w.amazonaws.co</a><br>        0x00e0:  6d00 0006 0001 0000 26c8 0049 076e 732d  m.......&..I.ns-<br>        0x00f0:  3134 3235 0961 7773 646e 732d 3530 036f  1425.awsdns-50.o<br>        0x0100:  7267 0011 6177 7364 6e73 2d68 6f73 746d  rg..awsdns-hostm<br>        0x0110:  6173 7465 7206 616d 617a 6f6e 0363 6f6d  <a href="http://aster.amazon.com">aster.amazon.com</a><br>        0x0120:  0000 0000 0100 001c 2000 0003 8400 1275  ...............u<br>        0x0130:  0000 0001 25                             ....%<br>--------------------------<br>HANG packets<br>--------------------------<br>12:46:06.257257 a0:2d:13:a9:03:44 (oui Unknown) > 10:50:72:a1:b9:40 (oui Unknown), ethertype IPv4 (0x0800), length 122: AW2842301000274.39664 > 192.168.1.1.domain: 35290+ AAAA? <a href="http://xxxxxx.s3.amazonaws.com">xxxxxx.s3.amazonaws.com</a>. (80)<br>        0x0000:  4500 006c c5da 4000 4011 f152 c0a8 0102  E..l..@.@..R....<br>        0x0010:  c0a8 0101 9af0 0035 0058 83bd 89da 0100  .......5.X......<br>        0x0020:  0001 0000 0000 0000 2d61 xxxx xxxx xxxx  ........-xxxx<br>        0x0030:  xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx   xxxx-<br>                                                  ....<br>                                                 <br>12:46:06.296674 10:50:72:a1:b9:40 (oui Unknown) > a0:2d:13:a9:03:44 (oui Unknown), ethertype IPv4 (0x0800), length 261: 192.168.1.1.domain > AW2842301000274.39664: 35290 Refused 0/1/0 (219)<br>        0x0000:  4500 00f7 978c 4000 4011 1f16 c0a8 0101  E.....@.@.......<br>        0x0010:  c0a8 0102 0035 9af0 00e3 c902 89da 8185  .....5..........<br>        0x0020:  0001 0000 0000 0000 2d61 xxxx xxxx xxxx  ........-xxxx<br>        0x0020:  0001 0000 0000 0000 2d61 xxxx xxxx xxxx  ........-xxxx<br>        0x0030:  xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx   xxxx-<br>                                                  ....<br>        0x0070:  0001 0000 a745 0016 0673 332d 332d 7709  .....E...s3-3-w.<br>        0x0080:  616d 415a 4f6e 6177 7303 636f 6d00 0673  amAZOnaws.com..s<br>        0x0090:  332d 332d 7709 616d 617a 6f6e 6177 7303  3-3-w.amazonaws.<br>        0x00a0:  636f 6d00 0006 0001 0000 144c 0049 076e  com........L.I.n<br>        0x00b0:  732d 3134 3235 0961 7773 646e 732d 3530  s-1425.awsdns-50<br>        0x00c0:  036f 7267 0011 6177 7364 6e73 2d68 6f73  .org..awsdns-hos<br>        0x00d0:  746d 6173 7465 7206 616d 617a 6f6e 0363  tmaster.amazon.c<br>        0x00e0:  6f6d 0000 0000 0100 001c 2000 0003 8400  om..............<br>        0x00f0:  1275 0000 0001 25                        .u....%<br>-----------------------<br><br>packets are almost identical but dnsmasq having problems to process these replies with below resolv.conf<br># cat /var/resolv.dnsmasq.conf<br>nameserver 192.168.1.1<br><br>nameserver 192.168.1.1<br><br>as you see there is two recurring nameserver address. Both resolves to REFUSED.<br><br>I've mentioned the issue as loop because it seems that dnsmasq keeps resolving and does not forward refused answer to client(curl). It keeps returning from <a href="https://github.com/imp/dnsmasq/blob/master/src/forward.c#L1132">https://github.com/imp/dnsmasq/blob/master/src/forward.c#L1132</a> while keeping forward->forwardall = 3 as value.<br>I am not sure if this a kind of bug, because when I removed the recurring nameserver address from resolv.conf, my curl commands does not hang.<br>I'm very sorry that I need to xxxx out the packet info and url , I am not authorized to share that info it is a standard s3 amazon aws bucket. but I'm sure it can be reproduced any server that refuses AAAA CNAME records.<br><br># cat /var/dnsmasq.conf <br># Never forward plain names (without a dot or domain part)<br>domain-needed<br><br># Never forward addresses in the non-routed address spaces.<br>bogus-priv<br><br># Don't store in cache the invalid resolutions<br>no-negcache<br><br># resolv file to specify upstream servers<br>resolv-file=/var/resolv.dnsmasq.conf<br><br># Set the cachesize here.<br>cache-size=200<br><br># forces dnsmasq to try each query with each server strictly<br># in the order they appear in resolv file<br>strict-order  # Note : I've tried removing strict-order, doesn't fix the issue<br><br>no-hosts<br><br>addn-hosts=/var/hosts<br><br>conf-dir=/var/dnsmasq.d/,*.cfg<br><br>local=/Home/<br><br># dnsmasq -v<br>Dnsmasq version 2.89  Copyright (c) 2000-2022 Simon Kelley<br>Compile time options: IPv6 GNU-getopt no-DBus no-UBus no-i18n no-IDN no-DHCP no-scripts no-TFTP no-conntrack no-ipset no-nftset auth no-cryptohash no-DNSSEC loop-detect inote<br><br>This software comes with ABSOLUTELY NO WARRANTY.<br>Dnsmasq is free software, and you are welcome to redistribute it<br>under the terms of the GNU General Public License, version 2 or 3.<br><br>dig output from another machine that returns no data for AAAA.<br><br># dig <a href="http://xxxx.s3.amazonaws.com">xxxx.s3.amazonaws.com</a><br>; <<>> DiG 9.16.1-Ubuntu <<>> <a href="http://xxxx.s3.amazonaws.com">xxxx.s3.amazonaws.com</a><br>;; global options: +cmd<br>;; Got answer:<br>;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4430<br>;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 1<br><br>;; OPT PSEUDOSECTION:<br>; EDNS: version: 0, flags:; udp: 65494<br>;; QUESTION SECTION:<br>;<a href="http://xxxx.s3.amazonaws.com">xxxx.s3.amazonaws.com</a>.      IN A<br><br>;; ANSWER SECTION:<br><a href="http://xxxx.s3.amazonaws.com">xxxx.s3.amazonaws.com</a>.     42821 IN CNAME <a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.     4       IN      A       52.92.0.169<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.      4       IN      A       52.218.25.170<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.    4       IN      A       52.92.32.169<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.     4       IN      A       52.92.36.249<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.     4       IN      A       52.218.118.9<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.     4       IN      A       52.218.45.161<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.    4       IN      A       52.92.4.33<br><a href="http://s3-3-w.amazonaws.com">s3-3-w.amazonaws.com</a>.       4       IN      A       52.92.17.121<br><br>;; Query time: 68 msec<br>;; SERVER: 127.0.0.53#53(127.0.0.53)<br>;; WHEN: Sal Ara 12 11:07:21 +03 2023<br>;; MSG SIZE  rcvd: 240<br><div><br></div><div>Some other cases of resolv,conf</div><div><div><br></div><div>(NOT HANGS)</div></div><div># cat /var/resolv.dnsmasq.conf<br>nameserver 192.168.1.1</div><div><br></div><div>(HANGS)</div><div># cat /var/resolv.dnsmasq.conf<br>nameserver 192.168.1.1<br><br>nameserver 192.168.1.1</div><div><br></div><div>nameserver <any-invalid-addres></div><div><br></div><div>(NOT HANGS)</div><div><div># cat /var/resolv.dnsmasq.conf<br>nameserver 192.168.1.1<br><br>nameserver 192.168.1.1</div><div><br></div><div>nameserver 8.8.8.8</div><div><br></div></div><div>Regards,<br>Berkan</div></div>