Skip to content

Commit

Permalink
remove depdabot tag
Browse files Browse the repository at this point in the history
  • Loading branch information
bluejekyll committed Feb 26, 2022
1 parent 0d577f1 commit 47713cc
Showing 1 changed file with 33 additions and 29 deletions.
62 changes: 33 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
[![codecov](https://codecov.io/gh/bluejekyll/trust-dns/branch/main/graph/badge.svg)](https://codecov.io/gh/bluejekyll/trust-dns)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE-MIT)
[![License: Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE-APACHE)
[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=bluejekyll/trust-dns)](https://dependabot.com)
[![Discord](https://img.shields.io/discord/590067103822774272.svg)](https://discord.gg/89nxE4n)

![Trust-DNS](logo.svg)
Expand All @@ -26,7 +25,6 @@ This repo consists of multiple crates:
| **NativeTls** | [![](https://img.shields.io/crates/v/trust-dns-native-tls.svg)](https://crates.io/crates/trust_dns_native_tls) [![trust-dns-native-tls](https://docs.rs/trust-dns-native-tls/badge.svg)](https://docs.rs/trust-dns-native-tls) Implementation of DNS over TLS protocol using the Host OS' provided default TLS libraries |
| **OpenSsl** | [![](https://img.shields.io/crates/v/trust-dns-openssl.svg)](https://crates.io/crates/trust_dns_openssl) [![trust-dns-openssl](https://docs.rs/trust-dns-openssl/badge.svg)](https://docs.rs/trust-dns-openssl) Implementation of DNS over TLS protocol using OpenSSL |


# Goals

- Build a safe and secure DNS server and client with modern features.
Expand All @@ -37,7 +35,7 @@ This repo consists of multiple crates:
- Support options for Global Load Balancing functions
- Make it dead simple to operate

# Status:
# Status

## Resolver

Expand Down Expand Up @@ -117,6 +115,7 @@ Zones will be automatically resigned on any record updates via dynamic DNS. To e
- [RFC 8499](https://tools.ietf.org/html/rfc8499): No more master/slave, in honor of [Juneteenth](https://en.wikipedia.org/wiki/Juneteenth)

### Basic operations

- [RFC 1035](https://tools.ietf.org/html/rfc1035): Base DNS spec (see the Resolver for caching)
- [RFC 2308](https://tools.ietf.org/html/rfc2308): Negative Caching of DNS Queries (see the Resolver)
- [RFC 2782](https://tools.ietf.org/html/rfc2782): Service location
Expand All @@ -128,10 +127,12 @@ Zones will be automatically resigned on any record updates via dynamic DNS. To e
- [RFC ANAME](https://tools.ietf.org/html/draft-ietf-dnsop-aname-02): Address-specific DNS aliases (`ANAME`)

### Update operations

- [RFC 2136](https://tools.ietf.org/html/rfc2136): Dynamic Update
- [RFC 7477](https://tools.ietf.org/html/rfc7477): Child-to-Parent Synchronization in DNS

### Secure DNS operations

- [RFC 3007](https://tools.ietf.org/html/rfc3007): Secure Dynamic Update
- [RFC 4034](https://tools.ietf.org/html/rfc4034): DNSSEC Resource Records
- [RFC 4035](https://tools.ietf.org/html/rfc4035): Protocol Modifications for DNSSEC
Expand All @@ -149,15 +150,18 @@ Zones will be automatically resigned on any record updates via dynamic DNS. To e
## RFCs in progress or not yet implemented

### Basic operations

- [RFC 2317](https://tools.ietf.org/html/rfc2317): Classless IN-ADDR.ARPA delegation

### Update operations

- [RFC 1995](https://tools.ietf.org/html/rfc1995): Incremental Zone Transfer
- [RFC 1996](https://tools.ietf.org/html/rfc1996): Notify secondaries of update
- [Update Leases](https://tools.ietf.org/html/draft-sekar-dns-ul-01): Dynamic DNS Update Leases
- [Long-Lived Queries](https://tools.ietf.org/html/draft-sekar-dns-llq-01): Notify with bells

### Secure DNS operations

- [RFC 5155](https://tools.ietf.org/html/rfc5155): DNSSEC Hashed Authenticated Denial of Existence
- [DNSCrypt](https://dnscrypt.org): Trusted DNS queries
- [S/MIME](https://tools.ietf.org/html/draft-ietf-dane-smime-09): Domain Names For S/MIME
Expand All @@ -167,8 +171,8 @@ Zones will be automatically resigned on any record updates via dynamic DNS. To e
This assumes that you have [Rust](https://www.rust-lang.org) stable installed. These
presume that the trust-dns repos have already been synced to the local system:

$ git clone https://github.com/bluejekyll/trust-dns.git
$ cd trust-dns
git clone https://github.com/bluejekyll/trust-dns.git
cd trust-dns

## Prerequisites

Expand All @@ -180,9 +184,9 @@ presume that the trust-dns repos have already been synced to the local system:
### Mac OS X: using homebrew

```
$ brew install openssl
$ export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
$ export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
brew install openssl
export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
```

### Debian-based (includes Ubuntu & Raspbian): using apt-get
Expand All @@ -205,35 +209,35 @@ Trust-DNS uses `cargo-make` for build workflow management. While running `cargo
be run from the crate directory, i.e. `client` or `server` and `cargo test`

```shell
$ cargo make
cargo make
```

- Default feature tests

Trust-DNS has many features, to quickly test with them or without, there are three targets supported, `default`, `no-default-features`, `all-features`:

```shell
$ cargo make all-features
cargo make all-features
```

- Individual feature tests

Trust-DNS has many features, each individual feature can be tested in dependently, see individual crates for all their features, here is a not necessarily up to date list: `dns-over-rustls`, `dns-over-https-rustls`, `dns-over-native-tls`, `dns-over-openssl`, `dns-dnssec-openssl`, `dns-dnssec-openssl`, `dns-dnssec-ring`, `mdns`. Each feature can be tested with itself as the task target for `cargo-make`:

```shell
$ cargo make dns-over-https-rustls
cargo make dns-over-https-rustls
```

- Benchmarks
- Benchmarks

Waiting on benchmarks to stabilize in mainline Rust.

## Building

- Production build, from the `trust-dns` base dir, to get all features, just pass the `--all-features` flag.
- Production build, from the `trust-dns` base dir, to get all features, just pass the `--all-features` flag.

```shell
$ cargo build --release -p trust-dns
cargo build --release -p trust-dns
```

## Running
Expand All @@ -242,47 +246,47 @@ Warning: Trust-DNS is still under development, running in production is not
recommended. The server is currently only single-threaded, it is non-blocking
so this should allow it to work with most internal loads.

- Verify the version
- Verify the version

```shell
$ ./target/release/named --version
./target/release/named --version
```

- Get help
- Get help

```shell
$ ./target/release/named --help
./target/release/named --help
```

- Launch `named` server with test config
- Launch `named` server with test config

You may want not passing the `-p` parameter will run on default DNS ports. For the tls features, there are also port options for those, see `trust-dns --help`

```shell
$ ./target/release/named -c ./tests/test-data/named_test_configs/example.toml -z ./tests/test-data/named_test_configs/ -p 24141
./target/release/named -c ./tests/test-data/named_test_configs/example.toml -z ./tests/test-data/named_test_configs/ -p 24141
```

- Query the just launched server with `dig`
- Query the just launched server with `dig`

```shell
$ dig @127.0.0.1 -p 24141 www.example.com
dig @127.0.0.1 -p 24141 www.example.com
```

## Using the trust-dns-resolver CLI

Available in `0.20`

```shell
$ cargo install --bin resolve trust-dns-util
cargo install --bin resolve trust-dns-util
```

Or from source, in the trust-dns directory

```shell
$ cargo install --bin resolve --path util
cargo install --bin resolve --path util
```

example:
example:

```shell
$ resolve www.example.com.
Expand All @@ -303,7 +307,7 @@ The Client has a few features which can be disabled for different reasons when e

- `dns-over-native-tls`
Uses `native-tls` for DNS-over-TLS implementation, only supported in client and resolver, not server.

- `dns-over-openssl`
Uses `openssl` for DNS-over-TLS implementation supported in server and client, resolver does not have default CA chains.

Expand Down Expand Up @@ -333,7 +337,7 @@ $> cargo build --release --features dns-over-rustls

## FAQ

- Why are you building another DNS server?
- Why are you building another DNS server?

Because of all the security advisories out there for BIND.
Using Rust semantics it should be possible to develop a high performance and
Expand All @@ -347,8 +351,8 @@ For live discussions beyond this repository, please see this [Discord](https://d

Licensed under either of

* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <https://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <https://opensource.org/licenses/MIT>)

at your option.

Expand Down

0 comments on commit 47713cc

Please sign in to comment.