Initial commit
Signed-off-by: Sam Therapy <sam@samtherapy.net>
This commit is contained in:
commit
7400dce9a8
8 changed files with 382 additions and 0 deletions
5
_werc/config.json
Normal file
5
_werc/config.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"title": "dns.froth.zone",
|
||||
"subtitle": "DNS can be frothworthy too!",
|
||||
"lang": "en"
|
||||
}
|
13
_werc/pub/style.css
Normal file
13
_werc/pub/style.css
Normal 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
121
awl/index.md
Normal 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
163
awl/man.txt
Normal 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
4
awl/repo.html
Normal 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
16
index.md
Normal 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
32
nameservers.md
Normal 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
28
resolver.md
Normal 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)
|
Loading…
Reference in a new issue