options { querylog yes; {% if ':' in SELF_ADDR %} listen-on-v6 { {{SELF_ADDR}}; }; query-source-v6 address {{SELF_ADDR}}; {% else %} listen-on { {{SELF_ADDR}}; }; query-source address {{SELF_ADDR}}; {% endif %} edns-udp-size 4096; max-cache-size 2097152; {% if QMIN == "false" %} qname-minimization off; {% else %} qname-minimization strict; {% endif %} // Disable RFC8145 signaling, scenario doesn't provide expected ansers trust-anchor-telemetry no; {% if not TRUST_ANCHOR_FILES %} dnssec-validation no; {% else %} unsupported as of yet -- make sure that value specified at compile-time does not break tests {% for TAF in TRUST_ANCHOR_FILES %} trust_anchors.add_file('{{TAF}}') {% endfor %} {% endif %} {% if NEGATIVE_TRUST_ANCHORS %} unsupported as of yet validate-except { {% for DI in NEGATIVE_TRUST_ANCHORS %} {{DI}} {% endfor %} }; {% endif %} }; {% if FORWARD_ADDR %} zone "." { type forward; forward only; forwarders { {{FORWARD_ADDR}}; }; }; {% endif %} zone "." { type hint; file "hints.zone"; }; {% if DO_NOT_QUERY_LOCALHOST == "false" %} {% endif %} {% if HARDEN_GLUE == "true" %} {% endif %} {% if DO_IP6 == "true" %} {% else %} server ::/0 { bogus true; }; {% endif %} {% if DO_IP4 == "true" %} {% else %} server 0.0.0.0/0 { bogus true; }; {% endif %} {% if FEATURES.min_ttl is defined %} min-cache-ttl {FEATURES.min_ttl}}; min-ncache-ttl {FEATURES.min_ttl}}; {% endif %} {% if FEATURES.max_ttl is defined %} max-cache-ttl {{FEATURES.max_ttl}}; {% endif %} {% if FEATURES.dns64_prefix is defined %} // dns64.config('{{FEATURES.dns64_prefix}}') {% endif %} {% if FEATURES.static_hint_name is defined %} static hint unsupported {% endif %} logging { category resolver { stderr; }; channel stderr { stderr; severity debug 10; }; };