Jack Wallenが、Unbound DNSリゾルバーをインストールして、LinuxデスクトップまたはサーバーインスタンスのいずれかでDNS解決を高速化する方法を示します。
Unboundは、無料でオープンソースの再帰的で検証可能なDNSキャッシングサーバーであり、DNS-over-TLSとDNS-over-HTTPSを使用して接続を暗号化します。 UnboundはBind9よりもはるかに高速であり、DNS解決を必要とするWebページやその他の呼び出しの読み込み時間を短縮するのに役立ちます。 UnboundはDNSSEC検証もサポートしているため、ネットワークのトラストアンカーとして機能できます。
Ubuntu22.04にUnboundをインストールする方法を紹介したいと思います。これはUbuntuサーバーまたはデスクトップのいずれかにインストールでき、デフォルトよりも大幅なDNS解決速度が得られます。
必要なもの
これに必要なのは、Ubuntuの実行中のインスタンス(RHELベースのディストリビューションにインストールすることもできます)と、sudo権限を持つユーザーだけです。それだけです。DNS解決の速度を上げましょう。
Unboundのインストール方法
幸い、Unboundはデフォルトのリポジトリにあるので、それをインストールするには、Ubuntuマシンにログインして、次のコマンドを発行します。
sudo apt-get install unbound -y
RHELベースのディストリビューションで作業している場合、そのインストールは次のようになります。
sudo dnf install unbound -y
アンバウンドを構成する方法
必読の開発者向け記事
Unboundをインストールしたら、新しい構成ファイルを作成する必要があります。次のコマンドでそのファイルを作成します:
nano /etc/unbound/unbound.conf.d/myunbound.conf
そのファイルに、次を貼り付けます。
server:
port: 53
verbosity: 0
num-threads: 2
outgoing-range: 512
num-queries-per-thread: 1024
msg-cache-size: 32m
interface: 0.0.0.0
rrset-cache-size: 64m
cache-max-ttl: 86400
infra-host-ttl: 60
infra-lame-ttl: 120
access-control: 127.0.0.0/8 allow
access-control: 0.0.0.0/0 allow
username: unbound
directory: "/etc/unbound"
logfile: "/var/log/unbound.log"
use-syslog: no
hide-version: yes
so-rcvbuf: 4m
so-sndbuf: 4m
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
remote-control:
control-enable: yes
control-port: 953
control-interface: 0.0.0.0
上記の構成を編集できますが、そのまま動作するはずです。ファイルを保存して閉じます。
次に、次のコマンドを使用してUnboundのログファイルを作成する必要があります:
sudo touch /var/log/unbound.log
ログファイルに次の適切な権限を付与します:
sudo chown unbound:unbound /var/log/unbound.log
最後に、次のコマンドでUnboundサービスを開始します:
sudo systemctl enable --now unbound
アンバウンドをテストする方法
サービスを開始した直後に、次のコマンドを発行します。
dig google.com @localhost
次のような出力が表示されます:
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> google.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56042
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 300 IN A 142.251.111.138
google.com. 300 IN A 142.251.111.113
google.com. 300 IN A 142.251.111.101
google.com. 300 IN A 142.251.111.100
google.com. 300 IN A 142.251.111.102
google.com. 300 IN A 142.251.111.139
;; Query time: 108 msec
;; SERVER: 127.0.0.1#53(localhost) (UDP)
;; WHEN: Thu Jun 16 13:30:12 UTC 2022
;; MSG SIZE rcvd: 135
108ミリ秒のクエリ時間に注意してください。それはかなり速いです。ただし、コマンドをもう一度実行してみましょう:
dig google.com @localhost
クエリ時間はかなり短くする必要があります。 2回目の試行で4ミリ秒、3回目の試行でゼロのクエリ時間を受け取りました。
おめでとうございます。オープンソースのUnboundDNSリゾルバーのおかげで、DNSクエリが高速になりました。必要に応じて、そのサーバーをLANベースのDNSサーバーとして使用することもできます。