Skip to content

Docs Update: Introducing DNS Features List #609

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Nov 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 0 additions & 109 deletions README.md

This file was deleted.

1 change: 1 addition & 0 deletions README.md
42 changes: 38 additions & 4 deletions docs/content/2-features/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,32 @@ title: Features
weight: 2
pre: "<b>2. </b>"
---
## Features

## DNS Features List

* [🟡 Authoritative][1]
* [✅ Recursive][2]
* [❌ Recursion ACL][3]
* ✅ Secondary mode
* [✅ Caching][4]
* [✅ IPv6][7]
* [✅ Wildcard][8]
* [❌ Split horizon][9]
* [❌ DNS over HTTPS][10]
* [❌ DNS over QUIC][11]
* [❓DNSSEC][5]
* [❓TSIG][6]

```
❓ = Unknown
❌ = Not implemented
✅ = Implemented
🟡 = Partially Implemented
```

## Other Features Manual

{{%children style="li" %}}
* IPV4/IPV6 Support

## Main features use cases

Expand Down Expand Up @@ -54,7 +76,7 @@ Name: dps-sample.dev
Address: 192.168.0.254
```

Access the gui by using http://localhost:5380 , see [this link][1].
Access the gui by using http://localhost:5380 , see [this link][12].

## DNS resolution order
**DPS** follow the below order to solve hostnames
Expand All @@ -63,4 +85,16 @@ Access the gui by using http://localhost:5380 , see [this link][1].
* Then from local database file
* Then from 3rd configured remote DNS servers

[1]: {{%relref "2-features/gui/_index.md" %}}

[1]: https://en.wikipedia.org/wiki/Name_server#Authoritative_name_server
[2]: https://en.wikipedia.org/wiki/Name_server#Recursive_query
[3]: https://en.wikipedia.org/wiki/Access_control_list
[4]: https://en.wikipedia.org/wiki/Name_server#Caching_name_server
[5]: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
[6]: https://en.wikipedia.org/wiki/TSIG
[7]: https://en.wikipedia.org/wiki/IPv6
[8]: https://en.wikipedia.org/wiki/Wildcard_DNS_record
[9]: https://en.wikipedia.org/wiki/Split-horizon_DNS
[10]: https://en.wikipedia.org/wiki/DNS_over_HTTPS
[11]: https://en.wikipedia.org/wiki/DNS_over_QUIC
[12]: {{%relref "2-features/gui/_index.md" %}}
108 changes: 102 additions & 6 deletions docs/content/_index.en.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: "Getting Started"
---
[![CI](https://github.com/mageddo/dns-proxy-server/actions/workflows/ci.yml/badge.svg)](https://github.com/mageddo/dns-proxy-server/actions/workflows/ci.yml)
[![help me to keep DPS up to date][7]][6]

### Main features

Expand All @@ -9,13 +8,110 @@ which make it easy to develop in systems where one hostname can solve to differe
on the configured environment, so you can:

* Solve hostnames from local configuration database
* Solve hostnames from [docker containers][1]
* Solve hostnames from [docker containers][11]
* Solve hostnames from a list of configured remote DNS servers(as a proxy) if no answer of two above
* Solve hostnames using wildcards
* Graphic interface to Create/List/Update/Delete **A/CNAME** records
* Solve host machine IP using `host.docker` hostname


![](https://i.imgur.com/aR9dl0O.png?width=60pc)
Checkout the [full list of features][4] with examples

[1]: {{%relref "2-features/docker-solving/_index.md" %}}
![](https://i.imgur.com/aR9dl0O.png)

### Basic running it

You can run DPS as native binary downloading the latest [binaries releases][2]
or via docker looking at [Dockerhub images][3]. See [complete running it][5] documentation for running on
Mac, Windows, Docker, etc.

Basic running it on Linux or Mac

```bash
sudo ./dns-proxy-server --server-port 5555 --register-container-names
```

Solving docker container [from container name][11]
```bash
$ docker run --rm --name nginx-app nginx

$ nslookup -po=5555 nginx-app.docker 127.0.0.1
172.17.0.3
```

Solving docker container from hostname
```bash
$ docker run --rm --hostname nginx.dev nginx

$ nslookup -po=5555 nginx.dev 127.0.0.1
172.17.0.3
```

Solving from pre-configured entries (conf/config.json):
```bash
$ nslookup -po=5555 dps-sample.dev 127.0.0.1
192.168.0.254
```

Solving from Internet
```bash
$ nslookup -po=5555 google.com 127.0.0.1
142.250.79.174
```

Solving stub hostnames like nip.io or sslip.io
```bash
$ nslookup -po=5555 machine-1.192.168.0.1.stub 127.0.0.1
192.168.0.1
```

Solving host machine IP
```bash
$ nslookup -po=5555 host.docker 127.0.0.1
172.22.230.67
```

Solving all subdomains to a specific docker container

```bash
$ docker run --rm --hostname .nginx.dev nginx

$ nslookup -po=5555 site1.nginx.dev 127.0.0.1
172.17.0.3
```

Check more [samples][9] to learn by practice.

### Documents
* [Full documentation](http://mageddo.github.io/dns-proxy-server/)
* [Running it documentation][5]
* [Tutorials and Examples][9]
* [Coding at the DPS][10]
* [RFC-1035][1]

### Versioning and Releasing
Please be aware of [how DPS controls the releases][8] so you can use the most recent features and updates or
prefer to choose the more stable and old builds.

### Donation
Help me to keep DPS up to date

Via PayPal

[![][7]][6]

Or via QR code

![](https://i.imgur.com/LmN7g2j.png)

[1]: https://www.ietf.org/rfc/rfc1035.txt
[2]: https://github.com/mageddo/dns-proxy-server/releases
[3]: https://hub.docker.com/r/defreitas/dns-proxy-server
[4]: http://mageddo.github.io/dns-proxy-server/latest/en/2-features/
[5]: http://mageddo.github.io/dns-proxy-server/latest/en/1-getting-started/running-it/
[6]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PYFAZCXL442B6&source=url
[7]: https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif
[8]: http://mageddo.github.io/dns-proxy-server/latest/en/1-getting-started/versioning
[9]: http://mageddo.github.io/dns-proxy-server/latest/en/5-tutorials/
[10]: http://mageddo.github.io/dns-proxy-server/latest/en/4-developing/
[11]: https://mageddo.github.io/dns-proxy-server/latest/en/2-features/docker-solving/
Loading