awl/doc/awl.1
Sam Therapy 4c9221ee29
Some checks failed
continuous-integration/drone/push Build is failing
Another huge refactor/rework
:^)

Signed-off-by: Sam Therapy <sam@samtherapy.net>
2022-08-06 01:45:31 +02:00

285 lines
5.7 KiB
Groff

.\" Generated by scdoc 1.11.2
.\" Complete documentation for this program is not available as a GNU info page
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.nh
.ad l
.\" Begin generated content:
.TH "awl" "1" "2022-08-05"
.PP
.SH NAME
.PP
awl - DNS lookup tool
.PP
.SH SYNOPSIS
.PP
\fIawl\fR [ \fIOPTIONS\fR ] \fIname\fR [ \fI@server\fR ] [ \fItype\fR ], where
.PP
\fIname\fR is the query to make (\fIexample: froth.\&zone\fR)
.br
\fI@server\fR is the server to query (\fIexample: dns.\&froth.\&zone\fR)
.br
\fItype\fR is the DNS resource type (\fIexample: AAAA\fR)
.PP
.SH DESCRIPTION
.PP
\fIawl\fR (\fBa\fRwls \fBw\fRant \fBl\fRicorice) is a simple tool designed to make DNS queries,
much like the venerable \fIdig\fR(1).\& An awl is a tool used to make small holes,
typically used in leatherworking.\&
.PP
\fIawl\fR is designed to be a more "modern" version of \fIdrill\fR(1) by including
some more recent RFCs and output options.\& \fIawl\fR is still heavily
Work-In-Progress so some features may get added or removed.\&
.PP
.SH OPTIONS
.PP
Dig-like +[no]flags are supported, see dig(1)
.PP
\fI-D\fR, \fI--dnssec\fR, \fI+dnssec\fR
.RS 4
Enable DNSSEC.\& This needs to be manually enabled.\&
.PP
.RE
\fI-v\fR \fIvalue\fR
.RS 4
Set verbosity (currently WIP)
.PP
.RE
\fI-V\fR
.RS 4
Print the version and exit.\&
.PP
.RE
\fI-h\fR
.RS 4
Show a "short" help message.\&
.PP
.RE
.SS Query Options
.PP
\fI-4\fR
.RS 4
Only make query over IPv4
.PP
.RE
\fI-6\fR
.RS 4
Only make query over IPv6
.PP
.RE
\fI-p\fR, \fI--port\fR \fIport\fR
.RS 4
Sets the port to query.\& Default ports listed below.\&
.PP
.PD 0
.IP \(bu 4
\fI53\fR for \fIUDP\fR and \fITCP\fR
.IP \(bu 4
\fI853\fR for \fITLS\fR and \fIQUIC\fR
.IP \(bu 4
\fI443\fR for \fIHTTPS\fR
.PD
.PP
.RE
\fI-q\fR, \fI--query\fR \fIdomain\fR
.RS 4
Domain to query (eg.\& example.\&com)
.PP
.RE
\fI-c\fR, \fI--class\fR \fIclass\fR
.RS 4
DNS class to query (eg.\& IN, CH)
.PP
.RE
\fI-t\fR, \fI--qType\fR \fItype\fR
.RS 4
DNS type to query (eg.\& A, NS)
.PP
.RE
\fI--no-truncate\fR, \fI+ignore\fR
.RS 4
Ignore UDP truncation (by default, awl \fIretries with TCP\fR)
.PP
.RE
\fI--tcp\fR, \fI+tcp\fR, \fI+vc\fR
.RS 4
Use TCP for the query (see \fIRFC 7766\fR)
.PP
.RE
\fI--dnscrypt\fR, \fI+dnscrypt\fR
.RS 4
Use DNSCrypt
.PP
.RE
\fI-T\fR, \fI--tls\fR, \fI+tls\fR
.RS 4
Use DNS-over-TLS, implies \fI--tcp\fR (see \fIRFC 7858\fR)
.PP
.RE
\fI--tls-host\fR \fIstring\fR
.RS 4
Set hostname to use for TLS certificate validation.\&
Default is the name of the domain when querying over TLS, and empty for IPs.\&
.PP
.RE
\fI--tls-no-verify\fR
.RS 4
Ignore TLS validation when performing a DNS query.\&
.PP
.RE
\fI-H\fR.\& \fI--https\fR, \fI+https\fR
.RS 4
Use DNS-over-HTTPS (see \fIRFC 8484\fR)
.PP
.RE
\fI-Q\fR.\& \fI--quic\fR, \fI+quic\fR
.RS 4
Use DNS-over-QUIC (see \fIRFC 9250\fR)
.PP
.RE
\fI-x\fR, \fI--reverse\fR
.RS 4
Do a reverse lookup.\& Sets default \fItype\fR to PTR.\&
.br
\fIawl\fR automatically makes an IP or phone number canonical.\&
.PP
.RE
\fI--timeout\fR \fIseconds\fR, \fI+timeout=\fR\fIseconds\fR
.RS 4
Set the timeout period.\& Floating point numbers are accepted.\&
.br
0.\&5 seconds is the minimum.\&
.PP
.RE
\fI--retries\fR \fIint\fR, \fI+tries\fR=\fIint\fR, \fI+ retry\fR=\fIint\fR
.RS 4
Set the number of retries.\&
Retry is one more than tries, dig style
.PP
.RE
.SS DNS Flags
.PP
\fI--aa=[false]\fR, \fI+[no]aaflag\fR
.RS 4
(Set, Unset) AA (Authoritative Answer) flag
.PP
.RE
\fI--ad=[false]\fR, \fI+[no]adflag\fR
.RS 4
(Set, Unset) AD (Authenticated Data) flag
.PP
.RE
\fI--tc=[false]\fR, \fI+[no]tcflag\fR
.RS 4
(Set, Unset) TC (TrunCated) flag
.PP
.RE
\fI-z=[false]\fR, \fI+[no]zflag\fR
.RS 4
(Set, Unset) Z (Zero) flag
.PP
.RE
\fI--cd=[false]\fR, \fI+[no]cdflag\fR
.RS 4
(Set, Unset) CD (Checking Disabled) flag
.PP
.RE
\fI--qr=[false]\fR, \fI+[no]qrflag\fR
.RS 4
(Set, Unset) QR (QueRy) flag
.PP
.RE
\fI--rd=[true]\fR, \fI+[no]rdflag\fR
.RS 4
(Set, Unset) RD (Recursion Desired) flag
.PP
.RE
\fI--ra=[false]\fR, \fI+[no]raflag\fR
.RS 4
(Set, Unset) RA (Recursion Available) flag
.PP
.RE
.SS Output Display
.PP
\fI--no-question\fR, \fI+noquestion\fR
.RS 4
Do not display the Question section
.PP
.RE
\fI--no-answer\fR, \fI+noanswer\fR
.RS 4
Do not display the Answer section
.PP
.RE
\fI--no-answer\fR, \fI+noanswer\fR
.RS 4
Do not display the Answer section
.PP
.RE
\fI--no-authority\fR, \fI+noauthority\fR
.RS 4
Do not display the Authority section
.PP
.RE
\fI--no-additional\fR, \fI+noadditional\fR
.RS 4
Do not display the Additional section
.PP
.RE
\fI--no-statistics\fR, \fI+nostats\fR
.RS 4
Do not display the Statistics (additional comments) section
.PP
.RE
.SS Output Formats
.PP
\fI-j\fR, \fI--json\fR, \fI+json\fR
.RS 4
Print the query results as JSON.\&
.PP
.RE
\fI-X\fR, \fI--xml\fR, \fI+xml\fR
.RS 4
Print the query results as XML.\&
.PP
.RE
\fI-y\fR, \fI--yaml\fR, \fI+yaml\fR
.RS 4
Print the query results as YAML.\&
.PP
.RE
\fI-s\fR, \fI--short\fR, \fI+short\fR
.RS 4
Print just the address of the answer.\&
.PP
.RE
.SH EXAMPLES
.PP
.nf
.RS 4
awl grumbulon\&.xyz -j +cd
.fi
.RE
.PP
Run a query of your local resolver for the A records of grumbulon.\&xyz, print
them as JSON and disable DNSSEC verification.\&
.PP
.nf
.RS 4
awl +short example\&.com AAAA @1\&.1\&.1\&.1
.fi
.RE
.PP
Query 1.\&1.\&1.\&1 for the AAAA records of example.\&com, print just the answers
.PP
.nf
.RS 4
awl -xT PTR 8\&.8\&.4\&.4 @dns\&.google
.fi
.RE
.PP
Query dns.\&google over TLS for the PTR record to the IP address 8.\&8.\&4.\&4
.PP
.SH SEE ALSO
.PP
\fIdrill\fR(1), \fIdig\fR(1), the many DNS RFCs