2019年4月10日水曜日

VyOSでDNSキャッシュサーバを構築する

DNSフォワーディングをするだけのDNSキャッシュサーバを作るのであれば、VyOSで簡単にできるよ、という話。

DNSフォワーディング設定方法

まず、現在の設定を確認してみる。設定前なので、「not configured」と表示される。
vyos:~$ show dns forwarding statistics
DNS forwarding not configured
DNSフォワーディングの設定を実施してみよう。1.1.1.18.8.8.8を上位のDNSサーバとしてフォワーディングする設定となる。
vyos# set service dns forwarding listen-on eth1
vyos# set service dns forwarding name-server 1.1.1.1
vyos# set service dns forwarding name-server 8.8.8.8
vyos@t3033vyos# compare
+dns {
+    forwarding {
+        cache-size 150
+        listen-on eth1
+        name-server 1.1.1.1
+        name-server 8.8.8.8
+    }
+}
vyos# commit
vyos# save
Saving configuration to '/config/config.boot'...
Done
listen-onで問い合わせを受け付けるインタフェースを指定し、name-serverでフォワーディングする上位のDNSサーバーを指定する。cache-sizeはデフォルトで150となっている(単位は「個」)。0に設定すれば、キャッシュがされないため、必ずDNS問い合わせはフォワーディングされる動作となる。

ちなみに、以下のように設定も可能な模様。VyOSサーバーのOS自体のDNSサーバー設定を行い、そちらをフォワーディング先とする設定となる。
vyos# set system name-server 1.1.1.1
vyos# set system name-server 8.8.8.8
vyos# set service dns forwarding listen-on eth1
vyos# set service dns forwarding system

DNSフォワーディング状況確認方法

設定後のDNS問い合わせ状況を確認するコマンドを以下に記載する。
vyos:~$ show dns forwarding statistics
----------------
Cache statistics
----------------
Cache size: 150
Queries forwarded: 15
Queries answered locally: 5
Total DNS entries inserted into cache: 22
DNS entries removed from cache before expiry: 0

---------------------
Nameserver statistics
---------------------
Server: 8.8.8.8
Queries sent: 12
Queries retried or failed: 0

Server: 1.1.1.1
Queries sent: 11
Queries retried or failed: 0
Queries forwardedが上位DNSに問い合わせをした回数となり、Queries answered locallyがキャッシュにて問い合わせを返すことができた回数となる。

人気の投稿