Initial commit

Signed-off-by: Sam Therapy <sam@samtherapy.net>
This commit is contained in:
Sam Therapy 2022-10-03 17:51:48 +02:00
commit 7400dce9a8
Signed by: sam
GPG key ID: 4D8B07C18F31ACBD
8 changed files with 382 additions and 0 deletions

5
_werc/config.json Normal file
View file

@ -0,0 +1,5 @@
{
"title": "dns.froth.zone",
"subtitle": "DNS can be frothworthy too!",
"lang": "en"
}

13
_werc/pub/style.css Normal file
View file

@ -0,0 +1,13 @@
body { display: flex; flex-wrap: wrap; font-family: sans; background: black; color: white}
header { flex-basis: 100%; flex-shrink: 0; }
article { flex-basis: 60%; padding-left: 1em; }
article {padding: 0.5ex 0 5vh 1vw;}
footer { flex-basis: 100%; flex-shrink: 0; }
header nav { display: flex; justify-content: space-between; }
nav a, header a { text-decoration: none ; color: #c0c0c0; }
a { color: #a0a0a0}
header h1 span { margin-left: 1em; font-size: 50%; font-style: italic; }
body > nav { flex-basis: content; padding-right: 1vw; min-width: 16em; }
nav ul { display: flex; flex-direction: column; list-style-type: none; list-style-position: outside; padding-left: 0; }
nav li ul { padding-left: 0.6em }
footer { display: flex; justify-content: space-between; }

121
awl/index.md Normal file
View file

@ -0,0 +1,121 @@
[awl](./code) is a simple DNS query client, much like dig and drill.
```
awl NS froth.zone @https://dns.froth.zone/dns-query
;; opcode: QUERY, status: NOERROR, id: 46274
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 8
;; QUESTION SECTION:
;froth.zone. IN NS
;; ANSWER SECTION:
froth.zone. 1650 IN NS illya.froth.zone.
froth.zone. 1650 IN NS rin.froth.zone.
froth.zone. 1650 IN NS sakura.froth.zone.
froth.zone. 1650 IN NS saber.froth.zone.
;; ADDITIONAL SECTION:
rin.froth.zone. 1650 IN AAAA 2607:5300:201:3100::931b
sakura.froth.zone. 1650 IN AAAA 2001:41d0:304:200::d12b
saber.froth.zone. 1650 IN AAAA 2602:fe90:100:2::164d:4c70
illya.froth.zone. 1650 IN AAAA 2603:c020:4004:62ee::8888
rin.froth.zone. 1650 IN A 158.69.1.114
sakura.froth.zone. 1650 IN A 141.94.206.97
saber.froth.zone. 1650 IN A 45.13.232.162
illya.froth.zone. 1650 IN A 129.213.157.255
;; Query time: 404.9936ms
;; SERVER: https://dns.froth.zone/dns-query
;; WHEN: Never
;; MSG SIZE rcvd: 489
```
---
`awl` understands DNSSEC, like [`drill(1)`](https://linux.die.net/man/1/drill):
```
awl brokendnssec.net @1.1.1.1 --tcp
;; opcode: QUERY, status: SERVFAIL, id: 45766
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; Query time: 6.0461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 34
awl brokendnssec.net @1.1.1.1 --cd +tcp
;; opcode: QUERY, status: NOERROR, id: 37917
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; ANSWER SECTION:
brokendnssec.net. 294 IN A 172.67.36.129
brokendnssec.net. 294 IN A 104.22.35.212
brokendnssec.net. 294 IN A 104.22.34.212
;; Query time: 8.4461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 130
```
---
It supports many of the flags that [`dig(1)`](https://man.openbsd.org/dig.1)
does:
```
awl +noquestion +noauthority +nostats cat-v.org
;; opcode: QUERY, status: NOERROR, id: 39675
;; flags: qr rd ra; QUERY: 0, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; ANSWER SECTION:
cat-v.org. 9418 IN A 168.235.69.224
```
---
And [some new features](./man), too!
```xml
awl +quic --xml codeberg.org
<Msg>
<Id>22108</Id>
<Response>true</Response>
<Opcode>0</Opcode>
<Authoritative>false</Authoritative>
<Truncated>false</Truncated>
<RecursionDesired>true</RecursionDesired>
<RecursionAvailable>true</RecursionAvailable>
<Zero>false</Zero>
<AuthenticatedData>false</AuthenticatedData>
<CheckingDisabled>false</CheckingDisabled>
<Rcode>0</Rcode>
<Compress>false</Compress>
<Question>
<Name>codeberg.org.</Name>
<Qtype>1</Qtype>
<Qclass>1</Qclass>
</Question>
<Answer>
<Hdr>
<Name>codeberg.org.</Name>
<Rrtype>1</Rrtype>
<Class>1</Class>
<Ttl>3600</Ttl>
<Rdlength>4</Rdlength>
</Hdr>
<A>193.26.156.135</A>
</Answer>
</Msg>
```
------
A full list of the features `awl` supports can be found [here](https://git.froth.zone/sam/awl/wiki/Supported).

163
awl/man.txt Normal file
View file

@ -0,0 +1,163 @@
awl(1) awl(1)
NAME
awl - DNS lookup tool
SYNOPSIS
awl [ OPTIONS ] name [ @server ] [ type ]
where
name is the query to make (example: froth.zone)
@server is the server to query (example: dns.froth.zone)
type is the DNS resource type (example: AAAA)
DESCRIPTION
awl (awls want licorice) is a simple tool designed to make DNS queries, much like
the venerable dig(1). An awl is a tool used to make small holes, typically used in
leatherworking.
awl is designed to be a more "modern" version of drill(1) by including some more
recent RFCs and output options. awl is still heavily Work-In-Progress so some fea
tures may get added or removed.
OPTIONS
Dig-like +[no]flags are supported, see dig(1)
-D, --dnssec, +dnssec
Enable DNSSEC. This needs to be manually enabled.
-v value
Set verbosity (currently WIP)
-V
Print the version and exit.
-h
Show a "short" help message.
Query Options
-4
Only make query over IPv4
-6
Only make query over IPv6
-p, --port port
Sets the port to query.
Default Ports:
• 53 for UDP and TCP
• 853 for TLS and QUIC
• 443 for HTTPS
-q, --query domain
Domain to query (eg. example.com)
-c, --class class
DNS class to query (eg. IN, CH)
-t, --qType type
DNS type to query (eg. A, NS)
--no-truncate, +ignore
Ignore UDP truncation (by default, awl retries with TCP)
--tcp, +tcp, +vc
Use TCP for the query (see RFC 7766)
--dnscrypt, +dnscrypt
Use DNSCrypt
-T, --tls, +tls
Use DNS-over-TLS, implies --tcp (see RFC 7858)
-H. --https, +https
Use DNS-over-HTTPS (see RFC 8484)
-Q. --quic, +quic
Use DNS-over-QUIC (see RFC 9250)
-x, --reverse
Do a reverse lookup. Sets default type to PTR.
awl automatically makes an IP or phone number canonical.
--timeout seconds, +timeout=seconds
Set the timeout period. Floating point numbers are accepted.
0.5 seconds is the minimum.
--retries int, +tries=int, + retry=int
Set the number of retries.
Retry is one more than tries, dig style
DNS Flags
--aa=[false], +[no]aaflag
(Set, Unset) AA (Authoritative Answer) flag
--ad=[false], +[no]adflag
(Set, Unset) AD (Authenticated Data) flag
--tc=[false], +[no]tcflag
(Set, Unset) TC (TrunCated) flag
-z=[false], +[no]zflag
(Set, Unset) Z (Zero) flag
--cd=[false], +[no]cdflag
(Set, Unset) CD (Checking Disabled) flag
--qr=[false], +[no]qrflag
(Set, Unset) QR (QueRy) flag
--rd=[true], +[no]rdflag
(Set, Unset) RD (Recursion Desired) flag
--ra=[false], +[no]raflag
(Set, Unset) RA (Recursion Available) flag
Output Display
--no-question, +noquestion
Do not display the Question section
--no-answer, +noanswer
Do not display the Answer section
--no-answer, +noanswer
Do not display the Answer section
--no-authority, +noauthority
Do not display the Authority section
--no-additional, +noadditional
Do not display the Additional section
--no-statistics, +nostats
Do not display the Statistics (additional comments) section
Output Formats
-j, --json, +json
Print the query results as JSON.
-X, --xml, +xml
Print the query results as XML.
-y, --yaml, +yaml
Print the query results as YAML.
-s, --short, +short
Print just the address of the answer.
EXAMPLES
awl grumbulon.xyz -j +cd
Run a query of your local resolver for the A records of grumbulon.xyz, print them as
JSON and disable DNSSEC verification.
awl +short example.com AAAA @1.1.1.1
Query 1.1.1.1 for the AAAA records of example.com, print just the answers
awl -xT PTR 8.8.4.4 @dns.google
Query dns.google over TLS for the PTR record to the IP address 8.8.4.4
SEE ALSO
drill(1), dig(1), the many DNS RFCs
awl(1)

4
awl/repo.html Normal file
View file

@ -0,0 +1,4 @@
<a href="https://git.froth.zone/sam/awl">https://git.froth.zone/sam/awl</a>
<script>
window.location.replace("https://git.froth.zone/sam/awl");
</script>

16
index.md Normal file
View file

@ -0,0 +1,16 @@
# Welcome to the Froth DNS service!
---
This is a landing page for the DNS services that I host.
\
\
\
\
\
\
\
\
\
Yes, I know I have a problem.
No, you don't have to remind me.

32
nameservers.md Normal file
View file

@ -0,0 +1,32 @@
# Froth.zone Nameservers
I host four nameservers in servers all over ~~NATO~~ the world,
so anybody ~~in the US or Western Europe~~ can more easily access my
services:
The IP addresses are found by using [awl](./awl/):
- [rin.froth.zone](https://rin.froth.zone) (Hosted in Canada)\
awl +short rin.froth.zone && awl +short AAAA rin.froth.zone
: 158.69.1.114 \
2607:5300:201:3100::931b
- [sakura.froth.zone](https://sakura.froth.zone) (Hosted in France)\
awl --short sakura.froth.zone && awl --short AAAA sakura.froth.zone
: 141.94.206.97\
2001:41d0:304:200::d12b
- [saber.froth.zone](https://saber.froth.zone) (Hosted in the US)\
awl -s saber.froth.zone && awl -s AAAA saber.froth.zone
: 45.13.232.162 \
2602:fe90:100:2::164d:4c70
- [illya.froth.zone](https://illya.froth.zone) (Hosted in the US)\
awl +short illya.froth.zone && awl -s AAAA illya.froth.zone
: 129.213.157.255 \
2603:c020:4004:62ee::8888
---
Want to use them?
: If so, just [contact me](https://froth.zone/sam)!

28
resolver.md Normal file
View file

@ -0,0 +1,28 @@
# Froth.zone DNS resolving service
I also host an [OpenNIC](https://www.opennic.org/)-compatible DNS resolving server.
### Never asked questions (NAQs)
- *Why OpenNIC?*
: Why not? The root servers seamlessly connect to ICANN space, so it's just free extra domains.
- *Where is it?*
: Right here. This domain you're looking at right now.
- *What about DNS-over-TCP?*
: Yes.
- *DNS-over-TLS?*
: Yes, DNS-over-TLS too.
- *DNSCrypt?*
: Nope. ¯\\\_(ツ)\_/¯ \
Maybe when it becomes an RFC.
- *What about DNS-over-HTTPS?*
: Yes! Use __ht<span>tp</span>s://dns.froth.zone/dns-query__ as the endpoint URL.
- *What about QUIC?*
: Since the software I use doesn't support QUIC yet
(I don't think _any_ do yet), no. Maybe soon(tm)