Rescached

rescached is a daemon that caching internet name and address on local memory for speeding up DNS resolution.

rescached is not a reimplementation of a DNS server like BIND. The primary goal of rescached is only to cache DNS queries and answers to minimize unneeded traffic to the outside network. It is intended for personal systems or serving a small group of users.

Features

List of current features,

  • Enable to handle request from UDP and TCP connections
  • Enable to forward request using UDP or TCP
  • Load and serve addresses and host names in /etc/hosts
  • Load and serve hosts formatted files inside directory /etc/rescached/hosts.d/
  • Blocking ads and/or malicious websites through host list in /etc/rescached/hosts.d/
  • Support loading and serving zone file format from /etc/rescached/zone.d/
  • Integration with openresolv
  • Support DNS over TLS (DoT) (RFC:7858)
  • Support DNS over HTTPS (DoH) (RFC:8484)

How cache in rescached works

Each DNS record in cache have the time last accessed field, which defined how the cache will be ordered in memory. The last queried host-name will be at the bottom of cache list, and the oldest queried host-name will at the top of cache list.

The following table illustrate list of caches in memory,

Accessed At Hostname
2018-01-01 00:00:01 kilabit.info
2018-01-01 00:00:02 archlinux.org
... ...
2018-01-01 00:01:00 wiki.archlinux.org

Every cache.prune_delay (let say every 5 minutes), rescached will try to pruning old records from cache. If the accessed-at value of record in cache is less than current-time + cache.threshold (remember that "cache.threshold" value must be negative) it will remove the record from cache.

Installation

Install the rescached-gitAUR package.

Post-installation configuration

The default configuration enables a direct start of the daemon.

Rescached configuration resides in /etc/rescached/rescached.cfg. Select entries to change are:

  • Set your parent DNS server
Change the value of based on your preferred DNS server.
  • Set the cache prune delay and threshold
Edit rescached configuration, /etc/rescached/rescached.cfg, change the value of cache.prune_delay and/or cache.threshold to match your needs.

After editing the configuration file, modify the resolv.conf file and replace the current set of resolver addresses with loopback address

nameserver 127.0.0.1

Other programs may overwrite this setting; see Domain name resolution#Overwriting of /etc/resolv.conf for details.

Finally, enable and start .

Integration with OpenResolv

Rescached can detect change on resolv.conf file generated by resolvconf. To use this feature set the to in configuration file. In /etc/resolvconf.conf set either , , or to point to the same file .

Web user interface

The rescached service provide a web user interface that can be accessed at http://127.0.0.1:5380. The following user interfaces are available on the latest release,

The front page

The front page allow user to monitor active caches, query the caches, and removing the caches.

The environment page

The Environment page allow user to modify the rescached configuration on the fly.

The Hosts Blocks page

The Hosts Blocks page allow user to enable or disable the external sources of hosts blocks list.

The hosts.d page

The Hosts.d page allow user to manage hosts file, creating new hosts file, create new record, or delete a record.

The zone.d page

The Zone.d page allow user manage zone file, creating new zone file, adding or deleting new resource record in the zone file.

gollark: C badâ„¢
gollark: Well, AutoBotRobot does a similar thing with deleted items.
gollark: C does not appear to want to cooperate with my dream of zero-punctuation code.
gollark: ```c#include <stdio.h>#define begin {#define end }#define params (#define endparams )#define paramseparator ,#define beginstring \"#define endstring \"#define pointer *int main params char argv paramseparator char pointer pointer endparams beginprintf params beginstring hello, world endstring endparamsend```
gollark: tio!debug

See also

  • For more information and configuration see once installed
  • Report bug and feature requests are preferred on the GitHub
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.