Bind를 사용하는 기업 DNS 서버가 있습니다.
영사 서버가 3개 있습니다. Consul은 로컬호스트 포트 8660에서 DNS를 수신하고 있습니다. 이 서버에서는 DNSmasq를 사용하여 공용 IP 포트 53의 DNS 요청을 localhost의 Consul로 전달합니다.
Consul의 구성은 매우 간단합니다. 방금 DNS 포트를 활성화했습니다. 포트 8660에서 로컬 DNS를 확인하면 제대로 작동합니다.
각 영사 서버의 DNSmasq 구성은 다음과 같습니다.
server=/subdomain.example.com/127.0.0.1#8600
server=XX.XX.XX.XX (first ip of the corporate DNS)
server=XX.XX.XX.XX (second ip of the corporate DNS)
listen-address=XX.XX.XX.XX (ip of the server)
엔터프라이즈 DNS의 구성은 다음과 같습니다.
zone "subdomain.example.com" {
type forward;
forward only;
forwarders {
XX.XX.XX.XX; (ip of the first consul)
XX.XX.XX.XX; (ip of the second consul)
XX.XX.XX.XX; (ip of the third consul)
};
};
consul에서 특정 항목이 추가되거나 제거되면 기업 DNS의 DNS 영역이 즉시 업데이트됩니다.
서비스에 대한 모든 항목이 consul에서 제거되면 Enterprise DNS는 해당 테이블의 모든 항목을 삭제합니다(이는 정상입니다). 하지만 항목이 다시 생성되면 영사의 DNS는 업데이트되지만 기업 DNS는 업데이트되지 않습니다. 회사 DNS를 업데이트하려면 다음 명령을 실행해야 합니다.rndc flushtree subdomain.example.com
답변1
이는 영사 문서의 "1일차"라는 제목 아래에 설명되어 있습니다. ☺
soa.min_ttl
구성 옵션을 설정합니다 . 이것이 없으면 캐싱 DNS 프록시는 "해당 이름 없음" 및 "데이터 없음" 메시지가 얼마나 오래 지속되어야 하는지 알 수 없으며 최선을 다해 추측하게 됩니다. 이는 캐싱 DNS 프록시 버그로 약간 잘못 표현되었습니다. 그러나 실제로는 그렇지 않습니다. "No such name" 및 "No data" 응답 데이터그램은 (합성된) SOA 리소스 레코드에 TTL 정보를 포함해야 합니다.
추가 읽기
- https://learn.hashicorp.com/consul/security-networking/dns-caching
- 조나단 드 보인 폴라드"
MINIMUM
필드".SOA 리소스 레코드 필드의 의미. 자주 주어지는 답변입니다.