DNSをできるだけ早くしたい

タイトルどおり。

パブリックDNSは使わない。

DNSを変更するとネットワークは速くなるか

RTX830

RTX830のDNSリカーシブサーバー機能を使う。

dns host lan1 <--- lan1インターフェースからのアクセスを許可する
dns service recursive <--- DNS リカーシブサーバーとして動作
dns server 宅内DNSサーバー edns=on <--- 上位DNSサーバーとして宅内DNSサーバーを指定
dns srcport 1024-65535
dns cache use on <--- キャッシュを使う
dns cache max entry 256
dns notice order dhcp me <--- DHCPでは自機(RTX830)をDNSサーバーとして通知する。

以上の設定で
LAN内の端末 —> RTX830 —-> 宅内DNSサーバー —> ISP(JCOM)のDNSサーバー の順で問い合わせを行う。

宅内DNSサーバー

Pi-holeをホスト。上位DNSサーバーには、JCOMがDHCPで通知しているDNSサーバーを指定。

結果

RTX830、Pi-holeともにキャッシュなしの場合

RTX830はclear dns cache、Pi-holeはsudo pihole reloaddnsでいったんキャッシュをクリア。その後 dnsperftestでテスト。 RTX830のIPアドレスは192.168.0.1に設定

$ bash ~/dnsperftest/dnstest.sh |sort -k 22 -n
                     test1 ...    Average
jcom1                22 ms        36.00
level3               23 ms        36.50
jcom2                49 ms        47.00
cloudflare           98 ms        47.90
192.168.0.1          21 ms        48.30
quad9                22 ms        52.40
google               95 ms        57.00

キャッシュなしだと大体50 msくらい

RTX830、Pi-holeともにキャッシュありの場合

$ bash ~/dnsperftest/dnstest.sh |sort -k 22 -n
                     test1 ...    Average
192.168.0.1          4 ms         13.00
jcom1                19 ms        36.80
level3               25 ms        36.90
google               22 ms        44.30
cloudflare           107 ms       45.80
jcom2                98 ms        52.80
quad9                25 ms        66.50

キャッシュありだと10~15msくらい。