I use dnsmasq which is open source light weight DNS server.
However I am a bit irritated its slow performance when accessing my Nextcloud welcome page.
This is how to resolve this problem.
As a conclusion I could improve about 2 seconds to display Nextcloud welcome page!
How to resolve
My dnsmasq configuration didn't support AAAA record. So I configured to be able to reply AAAA query.
That’s it!
Detail
This is a part of my /var/log/syslog.
dnsmasq forwards AAAA to 192.168.1.1 and waits 2 seconds.
This is why I need to wait my Nextcloud welcome page.
nslookup yasufumi-yokoyama.gq (tail -f /var/log/syslog by another terminal) Jun 2 20:29:45 raspberrypi dnsmasq[26771]: query[A] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:45 raspberrypi dnsmasq[26771]: /etc/hosts yasufumi-yokoyama.gq is 192.168.1.123 Jun 2 20:29:45 raspberrypi dnsmasq[26771]: query[AAAA] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:45 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 192.168.1.1 Jun 2 20:29:45 raspberrypi dnsmasq[26771]: query[AAAA] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd (Wait 2 seconds) Jun 2 20:29:47 raspberrypi dnsmasq[26771]: query[AAAA] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 192.168.1.1 Jun 2 20:29:47 raspberrypi dnsmasq[26771]: query[AAAA] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:29:47 raspberrypi dnsmasq[26771]: forwarded yasufumi-yokoyama.gq to 192.168.1.1 Jun 2 20:29:47 raspberrypi dnsmasq[26771]: reply error is REFUSED
This is the case of dig which doesn’t send query AAAA so it’s fast!
dig yasufumi-yokoyama.gq (tail -f /var/log/syslog by another terminal) Jun 2 20:28:34 raspberrypi dnsmasq[26771]: query[A] yasufumi-yokoyama.gq from 1234:567:89:abcd:ef01:2345:6789:abcd Jun 2 20:28:34 raspberrypi dnsmasq[26771]: /etc/hosts yasufumi-yokoyama.gq is 192.168.1.123
But if the option for AAAA is added to dig it’s slow as well as nslookup.
dig <domain name> aaaa
I added configuration to /etc/hosts to be used by dnsmasq for AAAA record like this.
1234:567:89:abcd:ef01:2345:6789:abcd yasufumi-yokoyama.gq 1234:567:89:abcd:ef01:2345:6789:abcd www.yasufumi-yokoyama.gq
Of course please don’t forget to restart.
sudo service dnsmasq restart # or sudo systemctl restart dnsmasq
You can find your IPv6 address by ifconfig.
$ ifconfig eth0 (snip) eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 1234:567:89:abcd:ef01:2345:6789:abcd prefixlen 64 scopeid 0x20<link> inet6 1234:567:89:abcd:ef01:2345:6789:abcd prefixlen 64 scopeid 0x0<global> ether 12:34:56:78:90:ab txqueuelen 1000 (Ethernet) RX packets 1622897 bytes 962296354 (917.7 MiB) RX errors 0 dropped 0 overruns 0 frame 13 TX packets 668903 bytes 324940192 (309.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
This is ip command.
ip -6 addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 inet6 1234:567:89:abcd:ef01:2345:6789:abcd/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 2591942sec preferred_lft 604742sec inet6 1234:567:89:abcd:ef01:2345:6789:abcd/64 scope link valid_lft forever preferred_lft forever
That’s it!
2 seconds wait will be removed!
How to output debug log by dnsmasq
I configured to add debug log to syslog by adding these lines to /etc/dnsmasq.conf.
log-queries log-facility=local0
Conclusion
how was it?
Your web server performance may be able to improve by this!
Comments