特定のドメイン名のみにアップストリームDNSサーバーを使用するようにdnsmasqを強制するにはどうすればよいですか?


15

今、私はdnsmasq.confに次の行を持ってい/#/ます。これはすべての要求をうまく処理します(どのドメインにも一致します。これは必須です)。

address=/#/127.0.0.1

それでも、以外のIPアドレスに解決する必要があるドメインがあります127.0.0.1

一時的な解決策として、次のものに追加されました/etc/hosts

209.85.148.95   ajax.googleapis.com
207.97.227.245  underscorejs.org
72.21.194.31    s3.amazonaws.com

残念ながら、これは非常に一時的なソリューションです。ターゲットドメインのIPアドレスが変更されるとすぐに機能しなくなります。

私の質問は:いくつかの(指定された)ドメイン名のIPアドレスを解決するためにアップストリームDNSサーバーを使用するようにdnsmasqを実施する方法ですか?

回答:


28

これは、server=たとえばディレクティブを使用して行うことができます

server=/ajax.googleapis.com/8.8.8.8

同様に、ajax.googleapis.comドメインのgoogleパブリックDNSサーバーを照会します。

server=/amazonaws.com/209.244.0.3

amazonaws.comドメインのLevel3のパブリックDNSサーバーを照会します。

複数のドメインをグループ化できます

server=/co.uk/com/8.8.4.4

.co.ukおよび.comドメインを8.8.4.4のDNSサーバーに送信します

複数のserver=ディレクティブを持つこともできます

-S、-server = [/ [<ドメイン>] / [ドメイン/]] [<IPアドレス> [#<ポート>] [@ <ソース> [#<ポート>]]]

アップストリームサーバーのIPアドレスを直接指定します。このフラグを設定しても/etc/resolv.confの読み取りは抑制されません。これを行うには-Rを使用します。1つ以上のオプションのドメインが指定されている場合、そのサーバーはそれらのドメインにのみ使用され、指定されたサーバーのみを使用してクエリされます。これはプライベートネームサーバーを対象としています:192.168.1.1の形式xxx.internal.thekelleys.org.ukの名前を扱うネームサーバーがネットワーク上にある場合は、フラグ-S /internal.thekelleys.org.uk/を指定します192.168.1.1は、内部マシンのすべてのクエリをそのネームサーバーに送信し、他のすべては/etc/resolv.confのサーバーに送信されます。空のドメイン指定//は、「非修飾名のみ」、つまりドットのない名前の特別な意味を持ちます。非標準ポートは、#文字を使用してIPアドレスの一部として指定できます。

また、ドメインを指定するがIPアドレスを指定しない-Sフラグも許可されます。これはdnsmasqにドメインがローカルであり、/ etc / hostsまたはDHCPからのクエリに応答する可能性があることを伝えますが、そのドメインのクエリを上流サーバーに転送することはありません。localは、この場合、構成ファイルをより明確にするためのサーバーの同義語です。

@文字の後のオプションの2番目のIPアドレスは、dnsmasqにこのネームサーバーへのクエリのソースアドレスを設定する方法を指示します。dnsmasqが実行されているマシンに属するアドレスである必要があります。そうでない場合、このサーバー行はログに記録されて無視されます。query-portフラグは、ソースアドレスが指定されているサーバーでは無視されますが、ポートはソースアドレスの一部として直接指定できます。


彼は複数のserver行を必要とは考えていません。解決に失敗したいアドレス(127.0.0.1)には、address行でそれらを追加できます。それ以外の場合、DNSMasqはを照会しserverます。それが私の設定方法です。
-gravyface

1
@gravyace:アドレスを変更した場合に解決するためにDNSを使用したいいくつかの例外を除いて、すべてを127.0.0.1に解決したいという質問を読みました。
user9517

たぶん。知るか。いずれにせよ、それで彼は元気になります。
gravyface

チャームのように機能します!
-nrph
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.