web-dev-qa-db-ja.com

ソースに基づいてdnsmasqの異なる返信

Dnsmasqを使用して一部のドメインのDNS構成を上書きし、クエリが他の場所に転送されて解決されるようにしたい。私はこの構成スニペットでこれを行うことができます:

 server=/msecnd.net/10.0.0.10
 server=/samsungotn.net/10.0.0.10
 server=/samsungcloudsolution.net/10.0.0.10

問題は、LAN内の特定のクライアント(スマートTV)に対してのみこのオーバーライドが必要であり、他のすべてのクライアントに対して通常のDNSで同じクエリを解決することです。

マニュアルを読んでも方法が見つからなかったので、dnsmasqがそのような構成をサポートしているかどうかを尋ねたいと思います(何かが足りないか、間違った用語を検索している可能性があります)。

それを解決する別の方法は、これを行うことです。

  1. たとえば、宛先UDPポートを53053に書き換え/マングルする必要があるソースに一致するiptablesINPUTルールを作成します。
  2. 必要な構成を使用して、ポート53053でリッスンしている別のdnsmasqインスタンスを実行します
  3. 利益。

ただし、動作するはずですが、複雑に見え、追加の起動スクリプトを設定する必要があります。

私はこれを行うためのよりクリーンで簡単な方法を望んでいました。

ありがとう!

1
user39049

セットアップでこれを実行しましたが、NAT /ポートリダイレクションのiptablesルールのみを使用しています。いくつかの点で、これは実際にはより洗練された方法です。iptablesはDNSクエリを実行するクライアントの送信元MACアドレスでのマッチングをサポートし、IPアドレスが変更されてもクライアントをキャッチします。

あなたの提案する方法は私が物事をする方法です。これは、dnsmasqの2つ以上のインスタンスを実行することを意味しますが、dnsmasqはこの種の機能をサポートしていないため、代替手段はありません。

1
parkamark

すでにdnsmasqの2つのインスタンスを使用していて、それらを異なるIPでリッスンさせることができる場合は、DHCPを使用して異なるDNSを異なるクライアントに割り当てることができるため、iptablesをいじる必要はありません。

0
JimmyZ