
Linuxサーバーやデスクトップのパフォーマンスを最大限に引き出したいと考えている方も多いのではないでしょうか。特にネットワークに関してはなおさらです。Linuxでは、マシンを最適化するための調整方法が驚くほど多く、その数は驚くほどです。DNSルックアップを大幅に削減できる調整方法の一つが、dnsmasqの追加です。
Dnsmasqは軽量なDHCPおよびDNSキャッシュネームサーバーです。BINDとは異なり、dnsmasqは驚くほど簡単に起動して実行できます。これを追加することによるメリットは明らかです(DNSクエリが劇的に高速化するなど)。
dnsmasqのインストールと設定の手順を詳しく説明します。Ubuntu 16.10マシンでデモを行いますが、このソフトウェアはほとんどのディストリビューションの標準リポジトリで入手できます(つまり、異なるLinuxフレーバーを使用している場合でも、手順を少し変更するだけで済みます)。
インストール
まず最初に、dnsmasq をインストールする必要があります。これを行うには、ターミナルウィンドウを開き、次のコマンドを実行します。
sudo apt install dnsmasq
コマンドが完了すると、ソフトウェアがインストールされ、構成できる状態になります。
構成
設定が必要なファイルは3つあります。1つ目は/etc/dnsmasq.confです。このファイルをお好みのテキストエディタで開き、次の行を探します。
#listen-address=
上記の行を次のように変更します。
listen-address=127.0.0.1
オプションとして、dnsmasqのキャッシュサイズを増やすことができます。#cache-size=150という行を探してください。#を削除し、150を1000、あるいは必要なサイズに変更してください(10000というハードリミットがあります)。この値を増やすと、dnsmasqはより多くの名前をキャッシュできるようになります(特に、作業中のマシンでデフォルトよりも多くのキャッシュが必要になる場合は重要です)。
ファイルを保存して閉じます。
次に、 /etc/dhcp/ dhclient.conf ファイルを開きます。#supersede domain-name “fugue.com home.vix.com”; という行を探し、次のセクションが以下のようになっていることを確認します。
prepend domain-name-servers 127.0.0.1;
ârequest subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
注意: request から netbios-scope まではすべて 1 行です。
そのファイルを保存して閉じます。
最後に、/etc/resolv.conf ファイルを開き、少なくとも次の行が含まれていることを確認します。
nameserver 127.0.0.1
次のコマンドで dnsmasq サービスを再起動します。
sudo service dnsmasq restart
改善点のテスト
dnsmasqのテストは非常に簡単です。ターミナルウィンドウに戻り、「dig techrepublic.com」のようなコマンドを実行してください。初めて実行した時は、ほぼ正常な結果が表示されるはずです(図A)。
図A

クエリ時間が 48 ミリ秒であることに注意してください。
同じコマンドをもう一度実行すると、クエリ時間が大幅に改善されることがわかります (図 B )。
図B

同じコマンドのクエリ時間は0、あるいはほぼ0になりました。マシンが大量のアドレスをクエリする必要がある場合、この時間節約は積み重なっていきます。
待望の改善
dnsmasq を複数の Linux マシンで使用してきましたが、ネットワーク速度に非常に必要な改善が常に得られました。この簡単な DHCP および DNS キャッシュネームサーバーを試してみて、Linux マシンがネットワーク上で悲鳴を上げているかどうかを確認してください。