awl 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)
:
❯ 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)
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, too!
❯ awl +quic --xml codeberg.orgMessage>
<opcode>QUERY</opcode>
<status>NOERROR</status>
<id>51837</id>
<response>true</response>
<authoritative>false</authoritative>
<truncated>false</truncated>
<recursionDesired>true</recursionDesired>
<recursionAvailable>true</recursionAvailable>
<zero>false</zero>
<authenticatedData>false</authenticatedData>
<checkingDisabled>false</checkingDisabled>
<opt>
<name>Version</name>
<value>0</value>
<opt>
</opt>
<name>Flags</name>
<value></value>
<opt>
</opt>
<name>UDP Buffer Size</name>
<value>1232</value>
<opt>
</question>
<name>codeberg.org.</name>
<class>IN</class>
<type>A</type>
<question>
</answer>
<response>193.26.156.135</response>
<name>codeberg.org.</name>
<ttl>449</ttl>
<class>IN</class>
<type>A</type>
<answer>
</queryTime>128.726593ms</queryTime>
<server>dns.adguard.com:853 (QUIC)</server>
<when>Thu, 13 Oct 2022 15:29:58 +0200</when>
<msgSize>69</msgSize>
<Message> </
A full list of the features awl
supports can be found
here.