Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:base-system:dns_configuration [2019/04/07 11:35] – [Examples] merged with dhcp#examples vgaeteradocs:guide-user:base-system:dns_configuration [2019/04/10 10:52] – title vgaetera
Line 1: Line 1:
 ====== DNS configuration ====== ====== DNS configuration ======
-The dns configuration is located in ''/etc/config/dhcp'' and controls both DNS and DHCP server options on the device (both DHCP and DNS services are implemented using //dnsmasq//). +Follow: [[docs:guide-user:base-system:dhcp|DNS and DHCP configuration /etc/config/dhcp]]
- +
-In the default configuration this file contains one //common section// to specify DNS and daemon related options and one or more //DHCP pools// to define DHCP serving on network interfaces. +
- +
-===== Sections ===== +
-Possible section types of the ''dhcp'' configuration file are defined below. Not all types may appear in the file and most of them are only needed for special configurations. The common ones are the //Common Options//, the //DHCP Pools// and //Static Leases//. +
- +
-==== Common Options ==== +
-The config section type ''dnsmasq'' determines values and options relevant to the overall operation of dnsmasq +
-and the DHCP options on all interfaces served. The following table lists all available options, their default value, +
-as well as the corresponding //dnsmasq// command line option. See [[http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html|the dnsmasq man page]] for further details. +
- +
-These are the default settings for the common options: +
- +
-<code> +
-config 'dnsmasq' +
-    option  local               '/lan/' +
-    option  domain              'lan' +
-    option  leasefile           '/tmp/dhcp.leases' +
-    option  resolvfile          '/tmp/resolv.conf.auto' +
-    option  domainneeded        1 +
-    option  boguspriv           1 +
-    option  filterwin2k         0 +
-    option  localise_queries    1 +
-    option  rebind_protection   1 +
-    option  rebind_localhost    0 +
-    option  expandhosts         1 +
-    option  nonegcache          0 +
-    option  authoritative       1 +
-    option  readethers          1 +
-</code> +
-  * Options: +
-    * ''local'' and ''domain'' enable //dnsmasq// to serve entries in ''/etc/hosts'', as well as DHCP client's names if configured under //lan// domain. +
-    * ''domainneeded'', ''boguspriv'', ''localise_queries'', and ''expandhosts'' ensure requests for local host names are not forwarded to upstream DNS servers. +
-    * ''authoritative'' makes router the only DHCP server on this network; clients get their IP lease a lot faster this way. +
-    * ''leasefile'' stores leases in a file so they can be picked up again if //dnsmasq// is restarted. +
-    * ''resolvfile'' tells //dnsmasq// to use this file to find upstream name servers; it gets created by the WAN DHCP or PPP client. +
-    * ''enable_tftp'' and ''tftp_root'' turn on the TFTP server and serve files from tftp_root. +
-      * May need to set server's IP on client, changing it by setting ''serverip'' (e.g. ''setenv serverip 192.168.1.10''). +
- +
-==== All Options ==== +
- +
-^ Name ^ Type ^ Default ^ Option ^ Description ^ +
-| ''add_local_domain'' | boolean | ''1'' | | Add the local domain as search directive in resolv.conf. | +
-| ''add_local_hostname'' | boolean | ''1'' | | Add A, AAAA, & PTR records only on DHCP served LAN. \\ :!: enhanced function available on Trunk with option ''add_local_fqdn''+
-| ''add_local_fqdn'' | integer | ''1'' | | Add A, AAAA, & PTR records only on DHCP served LAN.\\ :!: ''add_local_fqdn'' on Trunk but not 17.01.0 \\ ''0''**:** Disable.\\ ''1''**:** Hostname on Primary Address.\\ ''2''**:** Hostname on All Addresses.\\ ''3''**:** FDQN on All Addresses.\\ ''4''**:** ''iface.host.domain'' on All Addresses. | +
-| ''add_wan_fqdn'' | integer | ''0'' | | Labels WAN interfaces like ''add_local_fqdn'' instead of your ISP assigned default which may be obscure. WAN is inferred from ''config dhcp'' sections with ''option ignore 1'' set, so they do not need to be named //WAN// \\ :!: ''add_wan_fqdn'' on Trunk but not 17.01.0 |  +
-| ''addnhosts'' | list of file paths | //(none)// | ''-H'' | Additional host files to read for serving DNS responses | +
-| ''authoritative'' | boolean | ''1'' | ''-K'' | Force //dnsmasq// into authoritative mode. This speeds up DHCP leasing. Used if this is the only server on the network | +
-| ''bogusnxdomain'' | list of IP addresses | //(none)// | ''-B'' | IP addresses to convert into NXDOMAIN responses (to counteract "helpful" upstream DNS servers that never return NXDOMAIN). | +
-| ''boguspriv'' | boolean | ''0'' | ''-b'' | Reject reverse lookups to private IP ranges where no corresponding entry exists in ''/etc/hosts''+
-| ''cachelocal'' | boolean | ''1'' | | When set to ''0'', use each network interface's ''dns'' address in the local ''/etc/resolv.conf''. Normally, only the loopback address is used, and all queries go through //dnsmasq//. | +
-| ''cachesize'' | integer | ''150'' | ''-c'' | Size of //dnsmasq// query cache. | +
-| ''dbus'' | boolean | ''0'' | ''-1'' | Enable DBus messaging for //dnsmasq//.\\ :!: Standard builds of //dnsmasq// on OpenWrt do not include DBus support. | +
-| ''dhcp_boot'' | string | //(none)// | ''-''''-dhcp-boot'' | Specifies BOOTP options, in most cases just the file name. You can also use"''file name'', ''tftp server name'', ''tftp ip address''"+
-| ''dhcphostsfile'' | file path | //(none)// | ''-''''-dhcp-hostsfile'' | Specify an external file with per host DHCP options | +
-| ''dhcpleasemax'' | integer | ''150'' | ''-X'' | Maximum number of DHCP leases | +
-| ''dnsforwardmax'' | integer | ''150'' | ''-0'' (zero) | Maximum number of concurrent connections | +
-| ''domain'' | domain name | //(none)// | ''-s'' | DNS domain handed out to DHCP clients | +
-| ''domainneeded'' | boolean | ''1'' | ''-D'' | Tells //dnsmasq// never to forward queries for plain names, without dots or domain parts, to upstream nameservers. If the name is not known from /etc/hosts or DHCP then a "not found" answer is returned | +
-| ''dnssec'' | boolean | ''0'' | ''-''''-dnssec'' | Validate DNS replies and cache DNSSEC data.\\ :!: Requires the //dnsmasq-full// package. | +
-| ''dnsseccheckunsigned'' | boolean | ''0'' | ''-''''-dnssec-check-unsigned'' | Check the zones of unsigned replies to ensure that unsigned replies are allowed in those zones. This protects against an attacker forging unsigned replies for signed DNS zones, but is slower and requires that the nameservers upstream of //dnsmasq// are DNSSEC-capable.\\ :!: Requires the //dnsmasq-full// package.\\ :!: Caution: If you use this option on a device that doesn't have a hardware clock, dns resolution may break after a reboot of the device due to an incorrect system time. | +
-| ''ednspacket_max'' | integer | ''1280'' | ''-P'' | Specify the largest EDNS.0 UDP packet which is supported by the DNS forwarder | +
-| ''enable_tftp'' | boolean | ''0'' | ''-''''-enable-tftp'' | Enable the builtin TFTP server | +
-| ''expandhosts'' | boolean | ''1'' | ''-E'' | Add the local domain part to names found in ''/etc/hosts''+
-| ''filterwin2k'' | boolean | ''0'' | ''-f'' | Do not forward requests that cannot be answered by public name servers | +
-| ''fqdn'' | boolean | ''0'' | ''-''''-dhcp-fqdn'' | Do not resolve unqualifed local hostnames. Needs ''domain'' to be set. | +
-| ''interface'' | list of interface names | //(all interfaces)// | ''-i'' | List of interfaces to listen on. If unspecified, //dnsmasq// will listen to all interfaces except those listed in ''notinterface''. Note that //dnsmasq// listens on loopback by default. | +
-| ''leasefile'' | file path | //(none)// | ''-l'' (ell) | Store DHCP leases in this file | +
-| ''local'' | string | //(none)// | ''-S'' | Look up DNS entries for this domain from ''/etc/hosts''. This follows the same syntax as ''server'' entries, see the man page. | +
-| ''localise_queries'' | boolean | ''0'' | ''-y'' | Choose IP address to match the incoming interface if multiple addresses are assigned to a host name in ''/etc/hosts''. :!: Note well the spelling of this option. | +
-| ''localservice'' | boolean | ''1'' | ''-''''-local-service'' | Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server. | +
-| ''logqueries'' | boolean | ''0'' | ''-q'' | Log the results of DNS queries, dump cache on SIGUSR1 | +
-| ''nodaemon'' | boolean | ''0'' | ''-d'' | Don't daemonize the //dnsmasq// process | +
-| ''nohosts'' | boolean | ''0'' | ''-h'' | Don't read DNS names from ''/etc/hosts''+
-| ''nonegcache'' | boolean | ''0'' | ''-N'' | Disable caching of negative "no such domain" responses | +
-| ''noresolv'' | boolean | ''0'' | ''-R'' | Don't read upstream servers from ''/etc/resolv.conf''+
-| ''notinterface'' | list of interface names |  //(none)// | ''-I'' (eye) | Interfaces //dnsmasq// should not listen on. | +
-| ''nonwildcard'' | boolean | ''0'' | ''-z'' | Bind only configured interface addresses, instead of the wildcard address. +
-| ''port'' | port number | ''53'' | ''-p'' | Listening port for DNS queries, disables DNS server functionality if set to ''0''+
-| ''queryport'' | integer | //(none)// | ''-Q'' | Use a fixed port for outbound DNS queries | +
-| ''readethers'' | boolean | ''0'' | ''-Z'' | Read static lease entries from ''/etc/ethers'', re-read on SIGHUP | +
-| ''rebind_protection'' | boolean | ''1'' | ''-''''-stop-dns-rebind'' | Enables DNS rebind attack protection by discarding upstream RFC1918 responses | +
-| ''rebind_localhost'' | boolean | ''0'' | ''-''''-rebind-localhost-ok'' | Allows upstream 127.0.0.0/8 responses, required for DNS based blacklist services, only takes effect if rebind protection is enabled | +
-| ''rebind_domain'' | list of domain names | //(none)// | ''-''''-rebind-domain-ok'' | List of domains to allow RFC1918 responses for, only takes effect if rebind protection is enabled | +
-| ''resolvfile'' | file path | ''/etc/resolv.conf'' | ''-r'' | Specifies an alternative resolv file | +
-| ''server'' | list of strings | //(none)// | ''-S'' | List of DNS servers to forward requests to. See the //dnsmasq// man page for syntax details. | +
-| ''strictorder'' | boolean | ''0'' | ''-o'' | Obey order of DNS servers in ''/etc/resolv.conf''+
-| ''tftp_root'' | directory path | //(none)// | ''-''''-tftp-root'' | Specifies the TFTP root directory | +
- +
- +
  
  • Last modified: 2023/12/10 08:54
  • by vgaetera