Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


RESOLVCONF.CONF(5)            File Formats Manual           RESOLVCONF.CONF(5)

NAME
     resolvconf.conf - resolvconf configuration file

DESCRIPTION
     resolvconf.conf is the configuration file for resolvconf(8).  The
     resolvconf.conf file is a shell script that is sourced by resolvconf(8),
     meaning that resolvconf.conf must contain valid shell commands.  Listed
     below are the standard resolvconf.conf variables that may be set.  If the
     values contain whitespace, wildcards or other special shell characters,
     ensure they are quoted and escaped correctly.  See the replace variable
     for an example on quoting.

     After updating this file, you may wish to run resolvconf -u to apply the
     new configuration.

     When a dynamically generated list is appended or prepended to, the whole
     is made unique where left-most wins.

RESOLVCONF OPTIONS
     resolvconf
             Set to NO to disable resolvconf from running any subscribers.
             Defaults to YES.

     allow_interfaces
             If set, only these interfaces will be processed.

     deny_interfaces
             If set, these interfaces will not be processed.

     interface_order
             These interfaces will always be processed first.  If unset,
             defaults to the following:-
                   lo lo[0-9]*

     dynamic_order
             These interfaces will be processed next, unless they have a
             metric.  If unset, defaults to the following:-
                   tap[0-9]* tun[0-9]* vpn vpn[0-9]* wg[0-9]* ppp[0-9]* ippp[0-9]*

     inclusive_interfaces
             Ignore any exclusive marking for these interfaces.  This is handy
             when 3rd party integrations force the resolvconf -x option and
             you want to disable it easily.

     local_nameservers
             If unset, defaults to the following:-
                   127.* 0.0.0.0 255.255.255.255 ::1

     search_domains
             Prepend search domains to the dynamically generated list.

     search_domains_append
             Append search domains to the dynamically generated list.

     domain_blacklist
             A list of domains to be removed from consideration.  To remove a
             domain, you can use foo.* To remove a sub domain, you can use
             *.bar

     name_servers
             Prepend name servers to the dynamically generated list.  You
             should set this to 127.0.0.1 if you use a local name server other
             than libc.

     name_servers_append
             Append name servers to the dynamically generated list.

     name_server_blacklist
             A list of name servers to be removed from consideration.  The
             default is 0.0.0.0 as some faulty routers send it via DHCP.  To
             remove a block, you can use 192.168.*

     private_interfaces
             These interfaces name servers will only be queried for the
             domains listed in their resolv.conf.  Useful for VPN domains.
             Setting private_interfaces="*" will stop the forwarding of the
             root zone and allows the local resolver to recursively query the
             root servers directly.  Requires a local nameserver other than
             libc.  This is equivalent to the resolvconf -p option.

     public_interfaces
             Force these interface to be public, overriding the private
             marking.  This is handy when 3rd party integrations force the
             resolvconf -p option and you want to disable it easily.

     replace
             Is a space separated list of replacement keywords.  The syntax is
             this: $keyword/$match/$replacement

             Example, given this resolv.conf:
                   domain foo.org
                   search foo.org dead.beef
                   nameserver 1.2.3.4
                   nameserver 2.3.4.5
             and this configuration:
                   replace="search/foo*/bar.com"
                   replace="$replace nameserver/1.2.3.4/5.6.7.8"
                   replace="$replace nameserver/2.3.4.5/"
             you would get this resolv.conf instead:
                   domain foo.org
                   search bar.com
                   nameserver 5.6.7.8

     replace_sub
             Works the same way as replace except it works on each space
             separated value rather than the whole line, so it's useful for
             the replacing a single domain within the search directive.  Using
             the same example resolv.conf and changing replace to replace_sub,
             you would get this resolv.conf instead:
                   domain foo.org
                   search bar.com dead.beef
                   nameserver 5.6.7.8

     state_dir
             Override the default state directory of /var/run/resolvconf.
             This should not be changed once resolvconf is in use unless the
             old directory is copied to the new one.

LIBC OPTIONS
     The following variables affect resolv.conf(5) directly:-

     resolv_conf
             Defaults to /etc/resolv.conf if not set.

     resolv_conf_options
             A list of libc resolver options, as specified in resolv.conf(5).

     resolv_conf_passthrough
             When set to YES the latest resolv.conf is written to resolv_conf
             without any alteration.  When set to /dev/null or NULL,
             resolv_conf_local_only is defaulted to NO, local_nameservers is
             unset unless overridden and only the information set in
             resolvconf.conf is written to resolv_conf.

     resolv_conf_sortlist
             A libc resolver sortlist, as specified in resolv.conf(5).

     resolv_conf_local_only
             If a local name server is configured then the default is just to
             specify that and ignore all other entries as they will be
             configured for the local name server.  Set this to NO to also
             list non-local nameservers.  This will give you working DNS even
             if the local nameserver stops functioning at the expense of
             duplicated server queries.

     append_nameservers
             Append name servers to the dynamically generated list.

     prepend_nameservers
             Prepend name servers to the dynamically generated list.

     append_search
             Append search domains to the dynamically generated list.

     prepend_search
             Prepend search domains to the dynamically generated list.

     resolv_conf_mv
             Defaults to NO.  Defines if /etc/resolv.conf is updated by
             writing to a temporary file and then moving it vs writing
             directly to it.

SUBSCRIBER OPTIONS
     openresolv ships with subscribers for the name servers dnsmasq(8),
     named(8), pdnsd(8), pdns_recursor(1), and unbound(8).  Each subscriber
     can create configuration files which should be included in the
     subscribers main configuration file.

     To disable a subscriber, simply set its name to NO.  For example, to
     disable the libc subscriber you would set:
           libc=NO

     dnsmasq_conf
             This file tells dnsmasq which name servers to use for specific
             domains.

     dnsmasq_resolv
             This file tells dnsmasq which name servers to use for global
             lookups.

             Example resolvconf.conf for dnsmasq:
                   name_servers=127.0.0.1
                   dnsmasq_conf=/etc/dnsmasq-conf.conf
                   dnsmasq_resolv=/etc/dnsmasq-resolv.conf

             Example dnsmasq.conf:
                   listen-address=127.0.0.1
                   # If dnsmasq is compiled for DBus then we can take
                   # advantage of not having to restart dnsmasq.
                   enable-dbus
                   conf-file=/etc/dnsmasq-conf.conf
                   resolv-file=/etc/dnsmasq-resolv.conf

     named_options
             Include this file in the named options block.  This file tells
             named which name servers to use for global lookups.

     named_zones
             Include this file in the named global scope, after the options
             block.  This file tells named which name servers to use for
             specific domains.

             Example resolvconf.conf for named:
                   name_servers=127.0.0.1
                   named_options=/etc/named-options.conf
                   named_zones=/etc/named-zones.conf

             Example named.conf:
                   options {
                           listen-on { 127.0.0.1; };
                           include "/etc/named-options.conf";
                   };

                   include "/etc/named-zones.conf";

     pdnsd_conf
             This is the main pdnsd configuration file which we modify to add
             our forward domains to.  If this variable is not set then we rely
             on the pdnsd configuration file setup to read pdnsd_resolv as
             documented below.

     pdnsd_resolv
             This file tells pdnsd about global name servers.  If this
             variable is not set then it's written to pdnsd_conf.

             Example resolvconf.conf for pdnsd:
                   name_servers=127.0.0.1
                   pdnsd_conf=/etc/pdnsd.conf
                   # pdnsd_resolv=/etc/pdnsd-resolv.conf

             Example pdnsd.conf:
                   global {
                           server_ip = 127.0.0.1;
                           status_ctl = on;
                   }
                   server {
                           # A server definition is required, even if empty.
                           label="empty";
                           proxy_only=on;
                           # file="/etc/pdnsd-resolv.conf";
                   }

     pdns_zones
             This file tells pdns_recursor about specific and global name
             servers.

             Example resolvconf.conf for pdns_recursor:
                   name_servers=127.0.0.1
                   pdns_zones=/etc/pdns/recursor-zones.conf

             Example recursor.conf:
                   allow-from=127.0.0.0/8, ::1/128
                   forward-zones-file=/etc/pdns/recursor-zones.conf

     unbound_conf
             This file tells unbound about specific and global name servers.

     unbound_insecure
             When set to YES, unbound marks the domains as insecure, thus
             ignoring DNSSEC.

     unbound_forward_zone_options
             Options appended to each forward zone.  Each option should be
             separated by an embedded new line.

             Example resolvconf.conf for unbound:
                   name_servers=127.0.0.1
                   unbound_conf=/etc/unbound-resolvconf.conf

             Example unbound.conf:
                   include: /etc/unbound-resolvconf.conf

SUBSCRIBER INTEGRATION
     Not all distributions store the files the subscribers need in the same
     locations.  For example, named service scripts have been called named,
     bind and rc.bind and they could be located in a directory called
     /etc/rc.d, /etc/init.d or similar.  Each subscriber attempts to
     automatically configure itself, but not every distribution has been
     catered for.  Also, users could equally want to use a different version
     from the one installed by default, such as bind8 and bind9.  To
     accommodate this, the subscribers have these files in configurable
     variables, documented below.

     dnsmasq_service
             Name of the dnsmasq service.

     dnsmasq_restart
             Command to restart the dnsmasq service.

     dnsmasq_pid
             Location of the dnsmasq pidfile.

     libc_service
             Name of the libc service.

     libc_restart
             Command to restart the libc service.

     named_service
             Name of the named service.

     named_restart
             Command to restart the named service.

     pdnsd_restart
             Command to restart the pdnsd service.

     pdns_service
             Command to restart the pdns_recursor service.

     pdns_restart
             Command to restart the pdns_recursor service.

     unbound_service
             Name of the unbound service.

     unbound_restart
             Command to restart the unbound service.

     unbound_pid
             Location of the unbound pidfile.

SEE ALSO
     sh(1), resolv.conf(5), resolvconf(8)

AUTHORS
     Roy Marples <roy@marples.name>

BUGS
     Each distribution is a special snowflake and likes to name the same thing
     differently, namely the named service script.

     Please report them to https://roy.marples.name/projects/openresolv

NetBSD 10.99                     May 23, 2023                     NetBSD 10.99