DNS 에이전트 구성 파일 참조

DNS 에이전트 구성 파일 참조 (reference: configuration-file/dns)

Consul 에이전트 구성 파일의 DNS 매개변수에 대한 참조 정보를 제공하는 문서예요. DNS 및 도메인 매개변수와 dns_config 객체의 모든 하위 키를 다뤄요.

출처: 문서

본문

이 페이지는 Consul 에이전트 구성 파일의 DNS 매개변수에 대한 참조 정보를 제공해요.

DNS 및 도메인 매개변수 (DNS and Domain Parameters)

  • alt_domain - 이 매개변수는 기본 도메인 외에 대체 도메인에서 DNS 쿼리에 응답하도록 Consul을 구성해요. 설정하지 않으면 대체 도메인이 사용되지 않아요. -alt-domain 명령줄 플래그와 동일해요.

  • dns_config - DNS 쿼리가 처리되는 방식을 조정할 수 있는 여러 하위 키를 설정할 수 있는 객체예요. 자세한 내용은 DNS 캐싱을 참고하세요. 사용 가능한 하위 키는 다음과 같아요:

    • allow_stale - DNS 정보에 대한 stale 쿼리를 활성화해요. 이렇게 하면 리더뿐만 아니라 모든 Consul 서버가 요청을 처리할 수 있어요. 장점은 Consul 서버로 읽기 확장성이 선형적으로 얻어진다는 점이에요. Consul 0.7 이전 버전에서는 기본값이 false였으며 모든 요청이 리더가 처리해 더 강한 일관성을 제공하지만 처리량은 적고 지연 시간은 높았어요. Consul 0.7 이상에서는 사용 가능한 서버를 더 잘 활용하기 위해 기본값이 true예요.
    • max_stale - allow_stale이 지정되면 결과가 얼마나 stale해도 되는지 제한하는 데 사용돼요. Consul 서버가 리더보다 max_stale보다 더 뒤처져 있으면 쿼리가 리더에서 다시 실행되어 더 최신 결과를 얻을 수 있어요. Consul 0.7.1 이전에는 기본값이 5초였고, 0.7.1 이상에서는 기본값이 10년("87600h")이어서 아무리 stale하더라도 모든 서버가 DNS 쿼리에 응답할 수 있게 해요. 실제로 서버는 보통 리더보다 불과 수 밀리초 뒤처지므로, 리더를 선출할 수 없는 장기 중단 시나리오에서도 요청을 계속 처리할 수 있게 해줘요.
    • node_ttl - 기본값은 "0s"이므로 모든 노드 조회가 0 TTL 값으로 제공돼요. 이 값을 설정하면 노드 조회에 대한 DNS 캐싱을 활성화할 수 있어요. 초의 경우 "s" 접미사, 분의 경우 "m" 접미사로 지정해야 해요.
    • service_ttl - 서비스 조회에 서비스별 정책으로 TTL을 설정할 수 있는 하위 객체예요. 서비스에 대한 특정 정책이 없을 때 " * " 와일드카드 서비스를 사용할 수 있어요. 기본적으로 모든 서비스가 0 TTL 값으로 제공돼요. 이 값을 설정하면 서비스 조회에 대한 DNS 캐싱을 활성화할 수 있어요.
    • enable_truncate - true로 설정하면 3개 이상의 레코드를 반환하거나 유효한 UDP 응답에 맞지 않는 UDP DNS 쿼리가 truncated 플래그를 설정해, 클라이언트가 전체 레코드 집합을 얻기 위해 TCP로 다시 쿼리해야 함을 나타내요.
    • only_passing - true로 설정하면 헬스 체크가 warning 또는 critical인 노드는 DNS 결과에서 제외돼요. false(기본값)면 헬스 체크가 critical로 실패한 노드만 제외돼요. 서비스 조회의 경우 노드 자체의 헬스 체크와 서비스별 체크가 모두 고려돼요. 예를 들어 노드의 헬스 체크가 critical이면 해당 노드의 모든 서비스도 critical로 간주되어 제외돼요.
    • recursor_strategy - sequential로 설정하면 Consul은 recursors 옵션에 나열된 순서대로 리커서를 쿼리해요. random으로 설정하면 Consul은 업스트림 DNS 리졸버를 무작위 순서로 쿼리해요. 기본값은 sequential이에요.
    • recursor_timeout - Consul이 업스트림 DNS 서버를 재귀적으로 쿼리할 때 사용하는 타임아웃이에요. 자세한 내용은 recursors를 참고하세요. 기본값은 2초예요. Consul 0.7 이상에서 사용할 수 있어요.
    • disable_compression - true로 설정하면 DNS 응답이 압축되지 않아요. 압축은 Consul 0.7에서 추가되어 기본적으로 활성화됐어요.
    • udp_answer_limit - UDP 기반 DNS 응답의 answer 섹션에 포함되는 리소스 레코드 수를 제한해요. 이 매개변수는 512바이트 미만의 UDP DNS 쿼리에만 적용돼요. 이 설정은 Consul 1.0.7에서 a_record_limit로 대체되어 더 이상 사용되지 않아요.
    • a_record_limit - A, AAAA 또는 ANY DNS 응답(TCP 및 UDP 모두)의 answer 섹션에 포함되는 리소스 레코드 수를 제한해요. 질문에 응답할 때 Consul은 일치하는 호스트의 전체 목록을 사용하고 무작위로 섞은 다음 답변 수를 a_record_limit(기본값: 제한 없음)으로 제한해요. 이 제한은 SRV 레코드에는 적용되지 않아요. RFC 3484 섹션 6 규칙 9가 구현되어 시행되는 환경(즉 DNS 응답이 항상 정렬되어 절대 무작위가 아닌 환경)에서는 클라이언트가 예상된 무작위 분포 동작을 유지하기 위해 이 값을 1로 설정해야 할 수 있어요(RFC 3484는 RFC 6724로 대체되어 현대 리졸버에서 이 값을 변경할 필요가 점점 드물어짐).
    • enable_additional_node_meta_txt - true로 설정하면 Consul이 SRV 쿼리 같은 여러 쿼리 유형에 대해 DNS 응답의 Additional 섹션에 노드 메타데이터용 TXT 레코드를 추가해요. false로 설정하면 해당 레코드가 방출되지 않아요. 이는 TXT나 ANY 유형으로 쿼리할 때처럼 응답의 Answer 섹션에 추가되는 동일한 TXT 레코드의 동작에는 영향을 주지 않아요. 기본값은 true예요.
    • soa - SOA에 설정된 설정을 조정할 수 있어요. 지정되지 않은 값은 기본값으로 폴백되며, 모든 값은 정수이고 초로 표현돼요. 다음 설정이 가능해요:
      • expire - SOA Expire 기간을 초 단위로 구성해요. 기본값은 86400, 즉 24시간이에요.
      • min_ttl - SOA DNS 최소 TTL을 구성해요. RFC-2308에 설명된 대로 이는 대부분의 구현에서 음수 캐시 TTL도 제어해요. 기본값은 0, 즉 최소 지연이나 음수 TTL이 없음을 의미해요.
      • refresh - SOA Refresh 기간을 초 단위로 구성해요. 기본값은 3600, 즉 1시간이에요.
      • retry - Retry 기간을 초 단위로 구성해요. 기본값은 600, 즉 10분이에요.
    • use_cache - true로 설정하면 DNS 해석이 에이전트 캐싱에 설명된 에이전트 캐시를 사용해요. 이 설정은 모든 서비스 및 prepared query DNS 요청에 영향을 줘요. allow_stale을 암시해요.
    • cache_max_age - use_cache가 활성화되면 에이전트는 캐시된 값이 이 기간보다 오래되면 서버에서 결과를 다시 가져오려 시도해요. 참고: 에이전트 캐싱. max-age HTTP 헤더와 달리 이 필드의 0 값은 "최대 나이 없음"과 동일함을 참고하세요. 캐시에서 새 값을 얻으려면 0 대신 매우 작은 값인 1ns를 사용해요.
    • prefer_namespace - 엔터프라이즈. Consul 1.11에서 더 이상 사용되지 않음. 대신 엔터프라이즈 서비스 조회용 정식 DNS 형식을 사용하세요. - true로 설정하면 서비스 DNS 쿼리에서 도메인과 service 레이블 사이의 단일 레이블이 데이터센터가 아니라 네임스페이스 이름으로 처리돼요. false(기본값)로 설정하면 비엔터프라이즈 버전과 동일하게 동작하며 단일 레이블을 데이터센터로 처리해요.
  • domain - 기본적으로 Consul은 consul. 도메인의 DNS 쿼리에 응답해요. 이 플래그를 사용해 그 도메인을 변경할 수 있어요. 이 도메인의 모든 쿼리는 Consul이 처리한다고 가정하며 재귀적으로 해석되지 않아요.

  • recursors - Consul의 서비스 도메인 안에 없는 쿼리를 재귀적으로 해석하는 데 사용되는 업스트림 DNS 서버의 주소를 제공해요. 예를 들어 노드는 Consul을 DNS 서버로 직접 사용할 수 있고, 레코드가 "consul." 도메인 밖에 있으면 쿼리가 업스트림에서 해석돼요. Consul 1.0.1부터 리커서는 IP 주소 또는 go-sockaddr 템플릿으로 제공할 수 있어요. IP 주소는 순서대로 해석되며 중복은 무시돼요.

더 알아보기 (Learn more)