lwres

lwresとは

lwresとはLight Weight RESolverの略です。名前解決を行うアプリケーションは、名前解決の行為自体に時間がかかってしまったりするのはよくあることです。

DNS設定が正しくされていないサーバ(特にUnix系)にログインしてwしてみると結果が表示されるのが遅かったりすることないですか?あれは正に、名前解決に時間がかかって表示できてないからです。(たぶん)

この解決のためのデーモンがlwresdという訳です。詳細は以下で説明しますが、解決した名前をキャッシュしてアプリケーションの動作を軽くしてやることがlwresdの存在意義のようです。

 

lwres書式・設定

lwres {
    [ listen-on { ip_addr [port ip_port] ;
                [ ip_addr [port ip_port] ; ... ] }; ]
    [ view view_name; ]
    [ search { domain_name ; [ domain_name ; ... ] }; ]
    [ ndots number; ]
};

lwresによってリゾルバサーバの設定を行います。これは軽量リゾルバと考えて問題ないです。named.confの中に複数のlwres設定をすることも可能です。

  • listen-on : listen-onでリゾルバがListenするアドレスとポートを設定できる。特に指定が無い場合、デフォルトの921番ポートが使用されます。listen-onを設定しない場合には127.0.0.1 921番になります。
  • view : viewはlwresを特定のviewに紐づける設定です。レスポンスは当然viewで設定したルールに従います。この設定が無く、デフォルトviewもなければエラーになります。
  • search : searchは /etc/resolv.conf のsearchと同じ設定です。ここでドメインが指定された場合は関連あるドメイン名として扱われます。
  • ndots : ndotsは /etc/resolv.conf のndotsと同じ設定です。指定ドメイン名の中に何個のドットが含まれるのを許容するかを設定します。

lwresについて

lwresインタフェースを使うために、lwresdデーモンを起動するか、ローカルサーバをlwres設定付きで起動する必要があります。基本的に、アプリケーションはlwresライブラリを使用します。このライブラリはUDPで、IPv4ループバック(127.0.0.1) 921番に問い合わせます。(このアドレス等の設定は /etc/resolv.conf で変更することが可能です)

lwresdデーモンはキャッシュするだけのネームサーバであり、DNSプロトコルというよりも light weight resolverプロトコルを
使ってリクエストに応答します。これはlwresdが各ホストで実行されることを前提としているためで、最小の設定で動作するように設計されています。設定以外に関しても、lwresdはForwarderとして /etc/resolv.conf に記載されいている情報を参照します。仮にこの設定ファイルがなくても、もちろん自動で名前解決を行います。

lwresdデーモンは、named.confスタイルで設定可能で、/etc/lwresd.conf にデフォルト設定ファイルが置かれます。基本的にネームサーバはnamed.conf中のlwresステートメントを参照して、同じ動作をするように設定されます。