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設定を引き続き使用してそれに「接続」できますが、おそらくそれを吹き飛ばす必要があるかもしれません。