[Unbound][redis][自分用メモ] Unboundでbackendにredisを利用できることを今さらながら知った

2019-02-11 09:55:32AIX、UNIX、Linuxin-memory, redis, unbound

Unbound logo

DNSのキャッシュサーバとして有名なUnboundですが(最近はコンテンツサーバ的な機能を実装しているみたいですが)、今さらながらバックエンドにredisなどを指定できるようになっていたこと知りました・・・

Changelogを確認する限り、1.7.1からみたいですね。

Add --with-libhiredis, unbound support for a new cachedb backend that uses a Redis server as the storage. This implementation depends on the hiredis client library (https://redislabs.com/lp/hiredis/). And unbound should be built with both --enable-cachedb and --with-libhiredis[=PATH] (where $PATH/include/hiredis/hiredis.h should exist). Patch from Jinmei Tatuya (Infoblox).

バックエンドのredisを使用する場合は、以下のパラメータを設定するだけのようです。

server:
  <snip>
  module-config: "subnetcache validator cachedb iterator"
<snip>
cachedb:
  backend: "redis"
  redis-server-host: 192.168.1.2
  redis-server-port: 6379
  redis-timeout: 100

パッケージをbuildする際は--enable-cachedb --with-libhiredisを付けてbuildすることが必要です(現在配布されているパッケージでデフォルトでこのフラグがONになっているかは未確認です)。

フロントエンドはdockerなどでscaleするようにして、バックエンドにredisを使用するようにしてやれば、ある程度性能を確保できそうな気がします(quad9とかCloudflare DNSとかもフロントエンドにknot-resolverで、バックエンドに何らかのDBの構成のようですが)。

2019-02-11 09:55:32AIX、UNIX、Linuxin-memory, redis, unbound