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 설정을 계속 사용하고 이에 "연결"할 수 있지만 아마도 이를 날려버려야 할 수도 있습니다.