Skip to content
Snippets Groups Projects
  1. May 09, 2017
    • Daniel Danzberger's avatar
      dnsmasq: add interface-name uci list. · eb99f891
      Daniel Danzberger authored
      
      This patch adds the interface-name option for each dhcp config
      in /etc/config/dhcp.
      
      With the interface_name option users can define a DNS name for each dhcp section
      that will be resolved by dnsmasq with the underlaying interface address.
      
      For example:
      config dhcp 'lan'
      	option interface 'lan'
      	...
      	list interface_name 'home.lan'
      	...
      
      Signed-off-by: default avatarDaniel Danzberger <daniel@dd-wrt.com>
      Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
      eb99f891
  2. May 04, 2017
  3. Apr 27, 2017
  4. Apr 17, 2017
  5. Apr 08, 2017
  6. Mar 29, 2017
  7. Mar 18, 2017
  8. Mar 09, 2017
    • Kevin Darbyshire-Bryant's avatar
      dnsmasq: do not forward rfc6761 excluded domains · 3a06dd60
      Kevin Darbyshire-Bryant authored
      
      RFC 6761 defines a number of top level domains should not be forwarded
      to the Internet's domain servers since they are not responsible for
      those domains.
      
      This change adds a list of domains that will be blocked when 'boguspriv'
      is used and augments that which is already blocked by dnsmasq's notion
      of 'local service' using '--bogus-priv' i.e. RFC 1918 private addresses
      and IPv6 prefixes as defined in RFC 6303.
      
      To make this configurable rather than hard coded in dnsmasq's init
      script, a new file /usr/share/dnsmasq/rfc6761.conf is conditionally
      included.
      
      The default file matches the RFC 6761 recommendation along with a few
      other top level domains that should not be forwarded to the Internet.
      
      Compile & run tested Archer C7 v2
      
      Signed-off-by: default avatarKevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
      3a06dd60
  9. Feb 05, 2017
  10. Feb 01, 2017
    • Eric Luehrsen's avatar
      dnsmasq: make DHCPv6 viable for standalone dnsmasq install · 9525743c
      Eric Luehrsen authored
      
      dnsmasq has sufficient services to meet the needs of DHCP
      and RA with IP6 for single router router users. This is
      the most common use for consumer routers. Its reenforced
      as most ISP tend to only DHCP-PD /64. dnsmasq has year
      over year demonstrated great flexibility in its option
      set, and support for off-standard DHCP clients.
      
      odhcpd has enhanced capabilities focused on IP6 such
      as DHCP/RA relay and NDP proxy. However, it is not as
      flexible in its option set. odhcpd is not as forgiving
      with off-standard DHCP clients. Some points may represent
      a long term TODO list, but it is the state currently.
      
      These changes make any such combination possible. Already
      odhcpd can be set as the main dhcp server. Now odhcpd
      can be removed or disabled and dnsmasq will take over
      if DHCPv6 compiled in. The existing DHCPv6 and RA UCI
      are translated into dnsmasq.conf. The changes focus on
      '--dhcp-range', '--dhcp-host', and '--dhcp-options'.
      
      DHCP host ID is least 16 bits [::1000-::FFFF], but
      leaves low range for typical infrastructure assignments.
      dnsmasq accepts DHCPv6 options in the tranditional
      '--dhcp-option' put they must be prefixed 'option6:'.
      dnsmasq will also discover SLAAC DNS entries from DHCPv4
      clients MAC, and confirm with a ping at least renew.
      
      Long term TODO include improving use of dnsmasq relay
      options for DHCPv4 and DHCPv6 in parallel. It would also
      be possible to preconfigure DHCP-PD in host-with-options
      records for fixed infrastructure.
      
      Signed-off-by: default avatarEric Luehrsen <ericluehrsen@hotmail.com>
      [Jo-Philipp Wich: emit proper IPv6 hostid format in dhcp-host directive]
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      9525743c
    • Eric Luehrsen's avatar
      dnsmasq: expand 'add_local_hostname' fexibility including FQDN · 1b4e3eda
      Eric Luehrsen authored
      
      ref commit 612e2276
      ref commit ec63e3bf
      
      'option add_local_hostname' scripted implementation statically assigns
      this host in auto generated host file at init. If IFUP or other signals
      do not occur, then address changes are not tracked. The script doesn't
      apply all the addresses at an interface. This may make logs obscure.
      The script only puts the bare host name (maybe not FQDN) in host file,
      but if '--exapandhosts' is enabled, then /etc/hosts entries will be
      suffixed, and "127.0.0.1 localhost" becomes "localhost.lan".
      
      dnsmasq provides an option to perform this function, but it is rather
      greedy. '--interface-name=<name>,<iface>' will assign the name to all
      IP on the specified interface (except link local). This is a useful
      feature, but some setups depend on the original restrictive behavior.
      
      'option add_local_fqdn' is added to enhance the feature set, but
      if not entered or empty string, then it will default to original
      option and behavior. This new option has a few settings. At each
      increased setting the most detailed name becomes the PTR record:
      0 - same as add_local_hostname 0 or disabled
      1 - same as add_local_hostname 1
      2 - assigns the bare host name to all IP w/ --dnsmasq-interface
      3 - assigns the FQDN and host to all IP w/ --dnsmasq-interface
      4 - assigns <iface>.<host>.<domain> and above w/ --dnsmasq-nterface
      
      'option add_wan_fqdn' is added to run the same procedure on
      inferred WAN intefaces. If an interface has 'config dhcp' and
      'option ignore 1' set, then it is considered WAN. The original
      option would only run on DHCP serving interfaces.
      
      Signed-off-by: default avatarEric Luehrsen <ericluehrsen@hotmail.com>
      1b4e3eda
  11. Jan 12, 2017
    • Hans Dedecker's avatar
      Revert "dnsmasq: change 'add_local_hostname' to use dnsmasq '--interface-name'" · ec63e3bf
      Hans Dedecker authored
      
      This causes problem when a FQDN is configured in /etc/config/system. The
      domain name will appear twice in reverse DNS.
      
      Next to that, there seems to be a bug in dnsmasq. From the manual page:
      
      --interface-name=<name>,<interface>[/4|/6]
      Return  a  DNS  record  associating  the  name  with  the primary address
      on the given interface. This flag specifies an A or AAAA record for the
      given name in the same way as an /etc/hosts line, except that the address
      is not constant, but taken from the given interface. The interface may be
      followed by "/4" or "/6" to specify  that  only  IPv4  or  IPv6 addresses
      of the interface should be used. If the interface is down, not configured
      or non-existent, an empty record is returned. The matching PTR record is
      also created, mapping the interface address to the name. More than one name
      may be associated with an interface address by repeating the flag; in that
      case the first instance is used for  the  reverse address-to-name mapping.
      
      It does not just create an A/AAAA record for the primary address, it creates
      one for all addresses. And what is worse, it seems to actually resolve to the
      non-primary address first. This is quite annoying when you use floating IP
      addresses (e.g. VRRP), because when the floating IP is on the other device,
      SSH failes due to incorrect entry in the known hosts file.
      
      I know that this is not a common setup, but it would be nice if there was an
      option to restore the previous behaviour, rather than just forcing this new
      feature on everybody.
      
      Reported-by: default avatarStijn Tintel <stijn@linux-ipv6.be>
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      ec63e3bf
  12. Jan 05, 2017
    • Eric Luehrsen's avatar
      dnsmasq: change 'add_local_hostname' to use dnsmasq '--interface-name' · 612e2276
      Eric Luehrsen authored
      
      'add_local_hostname' previous implementation may drop some addresses.
      Soft addition of IP6 addresses may not cause a reload or restart event.
      dnsmasq '--interface-name' robustly applies DNS to all addresses per
      interface (except fe80::/10).
      
      Change UCI 'add_local_hostname' to expand during each interface assignement
      during add_dhcp().
      Assign '<iface>.<host>.<domain>' as true name (reflexive A, AAAA, and PTR).
      Assign '<host>.<domain>' and '<host>' as convinience aliases (no PTR, not
      technically CNAME).
      This is accomplished with the '--interface-name' order, first is PTR.
      We could also assign each <ip4/6>.<iface>.<host>.<domain> to the respective
      dual stack on the interface.
      That seemed excessive so it was skipped (/4 or /6 suffix to the interface).
      Add UCI 'add_wan_hostname' similar to 'add_local_hostname' function for
      external WAN.
      
      WAN IP4 are less often named by the ISP and rarely WAN IP6 due to complexity.
      For logs, LuCI connection graph, and other uses assigning a WAN name is desired.
      'add_local_hostname' only applies with DHCP and 'add_wam_hostname' only applies
      without DHCP. Common residential users will want to set both options TRUE.
      Businesses will probably have global DNS, static IP, and 'add_wan_hostname' FALSE.
      
      Signed-off-by: default avatarEric Luehrsen <ericluehrsen@hotmail.com>
      612e2276
    • Eric Luehrsen's avatar
  13. Jan 03, 2017
  14. Dec 23, 2016
  15. Dec 16, 2016
  16. Dec 13, 2016
  17. Dec 06, 2016
  18. Dec 04, 2016
  19. Nov 08, 2016
    • Hans Dedecker's avatar
      dnsmasq: Support add-mac option · a50243ea
      Hans Dedecker authored
      
      Adds the mac address of the DNS requestor to DNS queries which
      are forwarded upstream and can be used to do filtering by the
      upstream servers. This only works if the requestor is on the
      same subnet as the dnsmasq server
      
      The addmac parameter can hold the following values:
      	0 : mac address is not added
      	1 : mac address is added in binary format
      	base64 : mac address is added base64 encoded
      	text: : mac address is added in human readable format
      		as hex and colons
      
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      a50243ea
  20. Nov 02, 2016
  21. Oct 26, 2016
    • Hans Dedecker's avatar
      dnsmasq: Multiple dnsmasq instances support · a35f9bbc
      Hans Dedecker authored
      
      Adds support in uci for configuring multiple dnsmasq instances via
      multiple dnsmasq sections.
      The uci sections host, boot, mac, tag, vendorclass, userclass,
      circuitid, ... will refer to a dnsmasq instance via the instance
      parameter defined in the section; if the instance parameter is
      not specified backwards compatibility is preserved.
      
      Start/Stopping a dnsmasq instance can be achieved by passing the
      dnsmasq instance name as argument to start/stop via the init script.
      
      Multiple dnsmasq instances is usefull in scenarios where you want to
      bind a dnsmasq instance to an interface in order to isolate networks.
      
      This patch is a rework of a multiple dnsmasq instance patch by Daniel Dickinson
      
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      a35f9bbc
  22. Sep 19, 2016
    • Hans Dedecker's avatar
      dnsmasq: Add match section support · 32f47775
      Hans Dedecker authored
      
      Match sections allow to set a tag specified by the option networkid if the client
      sends an option and optionally the option value specified by the match option.
      The force option will convert the dhcp-option to force-dhcp-option if set to 1 in
      the dnsmasq config if options are specified in the dhcp_option option.
      
      config match
          option networkid tag
          option match 12,myhost
          option force 1
          list dhcp_option '3,192.168.1.1'
      
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      32f47775
  23. Sep 06, 2016
  24. Jul 29, 2016
  25. Jun 24, 2016
    • Kevin Darbyshire-Bryant's avatar
      dnsmasq: dnssec time handling uses ntpd hotplug · 5acfe55d
      Kevin Darbyshire-Bryant authored
      
      Change dnsmasq's dnssec time check handling to use time validity
      indicated by ntpd rather than maintaining a cross boot/upgrade
      /etc/dnsmasq.time timestamp file.  This saves flash device wear.
      
      If ntpd client is configured in uci and you're using dnssec, then
      dnsmasq will not check dnssec timestamp validity until ntpd hotplug
      indicates sync via a stratum change. The ntpd hotplug leaves a status
      flag file to indicate to dnsmasq.init that time is valid and that it
      should now start in 'check dnssec timestamp valid' mode.
      
      If ntpd client is not configured and you're using dnssec, then it is
      presumed you're using an alternate time sync mechanism and that time is
      correct, thus dnsmasq checks dnssec timestamps are valid from 1st start.
      
      Signed-off-by: default avatarKevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
      
      V2 - stratum & step ntp changes indicate time is valid
      V3 - on initial flag file step signal dnsmasq with SIGHUP if running
      V4 - only accept step ntp changes. Accepting both stratum & step could
      result in unpleasant script race conditions
      V5 - Actually only accepting stratum is the correct thing to do after
      further testing
      V6 - improve handling of non busybox ntpd
      if sysntpd not executable
        dnsmasq checks dnssec timestamps
      else
        sysntp script disabled - look for timestamp file - allows external mechanism to use hotplug flag file
        sysntp script enabled & uci ntp enabled  - look for timestamp file
        sysntp script enabled & uci ntp disabled - dnsmasq checks dnssec
      timestamps
      fi
      5acfe55d
  26. Jun 10, 2016
    • Kevin Darbyshire-Bryant's avatar
      dnsmasq: support hostid ipv6 address suffix option · e8150364
      Kevin Darbyshire-Bryant authored
      
      Add support for hostid dhcp config entry to dnsmasq. This allows
      specification of dhcpv6 hostid suffix and works in the same way as
      odhcpd.
      
      Entries in auto generated dnsmasq.conf should conform to:
      
      dhcp-host=mm:mm:mm:mm:mm:mm,IPv4addr,[::V6su:ffix],hostname
      
      example based on sample config/dhcp entry:
      
      config host
              option name 'Kermit'
              option mac 'E0:3F:49:A1:D4:AA'
              option ip '192.168.235.4'
              option hostid '4'
      
      dhcp-host=E0:3F:49:A1:D4:AA,192.168.235.4,[::0:4],Kermit
      
      Signed-off-by: default avatarKevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
      e8150364
    • Hans Dedecker's avatar
      dnsmasq: Add option --max-port · 7eaacd4d
      Hans Dedecker authored
      
      By default dnsmasq uses random ports for outbound dns queries;
      when the maxport UCI option is specified the ports used will
      always be smaller than the specified value.
      This is usefull for systems behind firewalls.
      
      Signed-off-by: default avatarHans Dedecker <dedeckeh@gmail.com>
      7eaacd4d
  27. May 24, 2016
  28. Mar 24, 2016
  29. Apr 26, 2016
  30. Apr 17, 2016
  31. Feb 26, 2016
    • John Crispin's avatar
      dnsmasq: add host-specific lease time option for static hosts · b5bfb353
      John Crispin authored
      
      Enable setting a host-specific lease time for static hosts.
      The new option is called "leasetime" and the format is similar
      as for the default lease time: e.g. 12h, 3d, infinite
      
      Default lease time is used for all hosts for which there is
      no host-specific definition.
      
      The option is added to /etc/config/dhcp for the selected hosts:
        config host
              option name 'Nexus'
              option mac 'd8:50:66:55:59:7c'
              option ip '192.168.1.245'
              option leasetime '2h'
      
      It gets appended to /var/etc/dnsmasq.conf like this:
        dhcp-host=d8:50:66:55:59:7c,192.168.1.245,Nexus,2h
      
      Signed-off-by: default avatarHannu Nyman <hannu.nyman@iki.fi>
      
      SVN-Revision: 48801
      b5bfb353
Loading