Site Tools


advanced-dhcpdns

DHCP/DNS

The Advanced / DHCP/DNS page allows you to configure advanced settings for the DHCP and DNS services for both LAN and WAN. Most of this functionality is provided by dnsmasq.

DHCP Client (WAN)

The DHCP Client (WAN) section includes a dhcpc (dhcp client) options field. Here you can set parameters for your router's DHCP client.




Enable DNSSEC support: DNSSEC is a way to secure DNS by introducing authentication for DNS servers. This prevents DNS hacking and poisoning. To make it backward compatible with traditional DNS, there is no encryption. If the authoritative DNS server is DNSSEC-enabled, enabling DNSSEC ensure that queries you make are answered by that authoritative DNS server, and not an imposter. Enable this if your chosen DNS server supports it for enhanced security.

Use dnscrypt-proxy: DNSCrypt works to encrypt DNS resolution. When a DNSCrypt-enabled server is chosen, a unique key pair is generated and regenerated every hour. Queries are then encrypted using the generated key pair before they are sent to the server, usually on TCP port 443. The reply is similarly encrypted. Checking Use dnscrypt-proxy enables FreshTomato' built-in dnscrypt proxy client. The dnscrypt module and Stubby cannot both be used at the same time.

When dnscrypt-proxy is checked, the following options/fields are revealed:

  • Ephemeral Keys - If checked, a new key pair is generated for each DNS query. Use with care, this is very cpu-intensive. It may slow DNS resolution.
  • Manual Entry - If enabled, 3 more fields are displayed:
    • Resolver Address - The IP address of the dnscrypt-enabled DNS server, for example 1.2.3.4;
    • Provider Name - The name of the DNS provider, for instance FreshTomato;
    • Provider Public Key - A public key provided by the DNSCRYPT-enabled DNS provider used to generate a valid key pair
      e.g. 0000:1111:2222:3333:4444:5555:6666:7777:8888:9999:AAAA:BBBB:CCCC:DDDD:EEEE:FFFF
  • Resolver - This dropdown list currently contains about 200 DNS servers. Some support DNSSEC. Some don't log queries. Some are filtered. To help you choose a DNSCrypt DNS provider, import the file /etc/dnscrypt-resolvers.csv in a spreadsheet. Once chosen, the server's IP address, provider name, and public key can be extracted from that file.
  • Priority - Leave this at no-resolv to prevent DNS leaks! This should never be a choice when using DNSCRYPT. To prevent leaks, also enable Intercept DNS port on this page.
  • Local Port - Specifies the port on which dnscrypt-proxy communicates with FreshTomato's DNS. Leave this at 40 unless you know why to change it. Do NOT set it to 53, it might create a loop.
  • Log Level - This sets the level of messages logged in syslog (when activated).

Use Stubby (DNS-over-TLS): This enhances DNS privacy. Checking this enables Stubby, a DNS Stub resolver. DNS over TLS (or “DoT”) sends DNS queries over a secure connection, encrypted with TLS. TLS is the same technology that encrypts secure Web traffic. This prevents third parties from seeing your DNS queries.

When Stubby is enabled some extra options are appearing on your configuration:

Upstream resolvers: You can specify here the upstream servers responsible to perform the actual name resolution.

Priority:

  • Strict-Order = prefer Stubby but if this is experiencing issue fail back to “other way of resolve names” e.g. standard DNS resolution
  • No-Resolv = If Stubby fails or has issue you will want DNS resolution not to be failed back anywhere. A.k.a. Stubby or nothing.
  • None = This option adds stubby as a resolution method for the build in dnsmasq. Note this doesn't guarantee encryption by itself.

Local Port: The port number where Stubby is serving clients. Also note the only client for Stubby will actually be dnsmasq and this latter serves the end clients.

Log Level: Define here the log verbosity needed.

Force TLS1.3: Impose the usage of the latest TLS version for encryption (must be supported by the upstream).

WINS (for DHCP): Here, you can specify the IP address of a WINS Server which will be given to DHCP clients. This does NOT actually enable the WINS service. FreshTomato's WINS Server function is enabled on the USB and NAS/File Sharing menu.

Windows Internet Name Service (WINS) is a legacy name registration and resolution service which maps computer NetBIOS names to IP addresses. Officially, WINS is outdated and largely obsolete. DNS was supposed to have replaced WINS functionality. However, Microsoft has not officially deprecated WINS. WINS may still be necessary for some Windows LAN browsing functions, especially on old Windows versions.

DHCPC Options: In this field you can enter custom configuration settings for the dhcp client.

Reduce Packet Size: udhcpc (the DHCP client FreshTomato uses to obtain a WAN IP address) has a problem. It has a DHCP discovery packet size 590 bytes long. However, DHCP relay servers can only handle DHCP discovery packets up to 576 bytes. If there are DHCP relay servers between your FreshTomato router and your Internet provider's DHCP server, FreshTomato might fail to acquire a DHCP lease on the WAN interface. The extra bytes appeared to be entirely padding, and not necessary. FreshTomato developers eliminated the padding, which reduced udhcpc's DHCP discovery packet size to only 331 bytes. This 331 byte size eventually became FreshTomato's default setting. This way, udhcpc can successfully obtain a DHCP lease from a provider which might have DHCP relays. However, some users may not be able to obtain a WAN IP address unless they disable this feature. (Default: Enabled). Please note this has now been removed from the FT GUI.

DHCP / DNS Server (LAN)



Use internal DNS: Uses dnsmasq as the DNS server on your LAN. DHCP clients will receive your router's local IP address as the DNS server. (Default: Enabled).

Debug mode: Checking this makes FreshTomato write detailed information to the log file.

Use received DNS with user-entered DNS: Add DNS servers received from DHCP on your WAN connection to the manual DNS server list. See Basic/Network for more information. (Default: Disabled).

Intercept DNS port: Any DNS requests/packets sent out on UDP/TCP port 53 are redirected to the internal DNS server. Only IPv4 DNS requests are intercepted. (Default: Disabled).

Use user-entered gateway if WAN is disabled: DHCP will assign the router's IP address as the default gateway on the LAN. (Default:Disabled)

Ignore DHCP requests from unknown devices: dnsmasq will ignore DHCP requests from MAC addresses not listed on the DHCP Reservation page. These clients won't be able to obtain an IP address through DHCP. Note that this setting is also available on the DHCP Reservation page. (Default: Disabled).

Generate a name for DHCP clients which do not otherwise have one: If the hostname in the device list is not reported, this will generate an automatic name based on the device's mac address.



Solve .onion using Tor (Enable Tor first): As the option suggests the otherwise unsolvable TLD .onion would fail. Enabling this allows proper DNS resolution using the Tor network.

Maximum active DHCP leases: Maximum allowed active DHCP leases at one time. (Default: 255).

Static lease time: The absolute maximum valid time for any DHCP lease.

  • Same as Normal Lease Time
    The Static lease time is the same as the normal (1440 minute) lease time. (Default.)
  • Infinite
    The Static lease time is infinity
  • Custom
    This allows you to enter a custom Static DHCP lease time.

Announce IPv6 on LAN (SLAAC): Enabling this turns on router advertisements for IPv6 Stateless Address Autoconfiguration (SLAAC) protocol. This allows hosts to self-configure an IP address with minimal contact with a server. The client sends out an RS (router solicitation) ICMP packet. The nearest router responds with a RA (router advertisement) packet. The client uses the IPv6 prefix provided in the RA packet as the first 64 bits of its address. It then derives the last 64 bits of its address using the EUI-64 process or a randomization algorithm.

Announce IPv6 on LAN (DHCP): Enabling this makes FreshTomato turn on router advertisements using IPv6 DHCP.

Fast RA mode: Forces dnsmasq to be always in frequent RA mode.

DHCP IPv6 lease time: The number entered here sets the default lease time for IPv6 DHCP leases.

Mute dhcpv4 logging: Enabling this stops FreshTomato from logging IPv4 dhcp activity. (Default: Disabled).

Mute dhcpv6 logging: Enabling this stops FreshTomato from logging IPv6 dhcp activity. (Default: Disabled).

Mute RA logging: This prevents logging of Router Advertisement activity.




Prevent client auto DoH: Modern browsers such as Firefox have a built-in function called DNS Over HTTP(s). When DoH is enabled, a browser can completely bypass the sytem's DNS server. Enabling the Prevent client auto DOH option prevents DoH communication. This is often helpful for getting FreshTomato's Adblock function to work properly, since the Adblock function relies on unencrypted DNS resolution.

Enable DNS Rebind protection: DNS rebinding protection is a type of malicious attack affecting domain resolution. Please note that enabling this may have secondary effects. (Default: Enabled).

Forward local domain queries to the upstream DNS: Enabling this forwards local domains to the router's upstream DNS server. You would probably not want this unless you have a fully (publicly)-registered domain in use on your LAN.

Enable multicast DNS (Avahi mDNS): FIXME

Enable reflector FIXME

Custom configuration: This features allows you to add extra (custom) options to the dnsmasq configuration file.

DHCP / DNS Notes

  • DNSSEC and DNSCrypt / Stubby complement each other.
advanced-dhcpdns.txt · Last modified: 2022/04/20 18:29 by rs232