RESOLVCONF.CONF(5)

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.
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]* 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 configuaration:
  replace="search/foo*/bar.com nameserver/1.2.3.4/5.6.7.8 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.

# SUBSCRIBER OPTIONS

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

To disable a subscriber, simply set it's 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 emtpy.
  label="empty";
  proxy_only=on;
  # file="/etc/pdnsd-resolv.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.

  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.
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 http://roy.marples.name/projects/openresolv

December 29, 2016 | NetBSD 9.4