Dnscache

Simple DNS proxy supporting one upstream. Designed for using slow and unreliable upstream DNS servers like Tor's DNS resolver. Trades consistency for availability. Not for serious use.

License = MIT or Apache 2.0

There are some pre-built versions on Github releases.


``` dnscache 0.1.2 Vitaly _Vi Shukela vi0oss@gmail.com Simple DNS cacher.

USAGE: dnscache [OPTIONS]

FLAGS: -h, --help Prints help information -V, --version Prints version information

OPTIONS: --max-ttl Maximum TTL of A or AAAA entry, seconds [default: 4294967295] --min-ttl Minimum TTL of A or AAAA entry, seconds [default: 0] --neg-ttl Negative reply TTL, seconds [default: 30]

ARGS: Listen address and port Upstream DNS server address and port Path to LevelDB database directory ```


Features:

Notes:

Concerns:


Database format: LevelDB database with domain names like internals.rust-lang.org as keys and CBOR as values. Sample value:

``` {"a4": [1513726378, [[[64, 71, 168, 211], 599]]], "a6": [1513726378, [[[32, 1, 4, 112, 0, 1, 3, 168, 0, 0, 0, 0, 0, 0, 2, 17], 599]]]}

00000000 a2 62 61 34 82 1a 5a 39 a1 aa 81 82 84 18 40 18 |.ba4..Z9......@.| 00000010 47 18 a8 18 d3 19 02 57 62 61 36 82 1a 5a 39 a1 |G......Wba6..Z9.| 00000020 aa 81 82 90 18 20 01 04 18 70 00 01 03 18 a8 00 |..... ...p......| 00000030 00 00 00 00 00 02 11 19 02 57 |.........W| 0000003a ```

Simple description:

{"a4": [timestamp_unix, [IPv4/TTL pairs list]], "a6": null (for never requested value)}

The format is subject to change.