カスタムDNSリゾルバはドメインごとに変わりません。

カスタムDNSリゾルバはドメインごとに変わりません。

ConsulがDNSを提供する方法に似たカスタムDNSリゾルバがあります。彼らはすでにあなたのために設定していますこのようなシステムが解決します

# File /etc/systemd/resolved.conf.d/consul.conf
[Resolve]
DNS=127.0.0.1:8600
DNSSEC=false
Domains=~consul

を見つけるには、このDNSリゾルバー(ポート8600でリッスン)にのみ行く必要があるようです.consul。ただし、この設定を直接使用し、Consul以外の一部のコードを使用してクエリを受信したときにログに記録すると、すべてのDNSクエリを表示できます。はいdig example.com)は最終的にプログラムに転送されます!

特定のドメインに対するクエリのみを処理するために何が欠けているのかわかりません。関連文書は次のとおりです。

/etc/resolv.conf(はい、AWS EC2サーバー):

nameserver 127.0.0.53
options edns0 trust-ad
search us-east-2.compute.internal

ファイル/etc/systemd/resolved.conf.d/service.conf

[Resolve]
DNS=127.0.0.1:8600
DNSSEC=false
Domains=~service

コマンド出力resolvectl:

.service(はい、代わりにそれを使用しています.consul)。

#$ resolvectl status

Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 127.0.0.1:8600
       DNS Servers: 127.0.0.1:8600
        DNS Domain: ~service

Link 2 (ens5)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.0.0.2
       DNS Servers: 10.0.0.2
        DNS Domain: us-east-2.compute.internal

[Resolve]別のセクションを作成する必要がありますかDomains=~.?デフォルトゲートウェイ(10.0.0.2私の場合は同様のもの)を指すこともできます8.8.8.8

理想的には、これらのec2インスタンスのデフォルトのDNS設定を引き続き使用してそれに「接続」できますが、おそらくそれを吹き飛ばす必要があるかもしれません。

関連情報