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

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

# use OpenDNS service
server=208.67.222.123
server=208.67.220.123
