# This file autogenerated by vCPE observer
# It contains a list of DNS servers for dnsmasq to use.
no-resolv

{% if cdn_enable %}
# CDN
{% for prefix in cdn_prefixes %}
server=/{{ prefix }}/{{ dnsdemux_ip }}
{% endfor %}
{% endif %}

# use google's DNS service
server=8.8.8.8
server=8.8.4.4
