この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
DNSサーバーへ問い合わせるツールとしては BIND に付属する dig が定番です。
dig で足りない機能やDNSSECをいい感じにやりたいときの代替ツールの一つとして、ldns に付属する drill があります。
drill の最新機能を使いたいために、drill をソースコードからインストールする機会があったので、その手順を紹介します。
環境
- Ubuntu 20.04(EC2を利用)
パッケージからインストール
特殊な要件がなければ、ソースコードからインストールする必要はありません。
素直に ldnsutils
パッケージからインストールしましょう。
$ sudo apt install ldnsutils
ソースコードからインストール
やんごとなき理由により、ソースコードからインストールする手順です。
まず、コンパイルに必要なパッケージをインストールします。
$ sudo apt install unzip build-essential libtool libssl-dev
次にソースコードを取得します。
ソースコードは https://github.com/NLnetLabs/ldns で管理されています。 ソースコードを展開します。
git レポジトリを clone しても OK です。
$ curl -L -o ldns.zip https://github.com/NLnetLabs/ldns/archive/refs/heads/develop.zip
$ unzip ldns.zip
$ cd ldns-develop/
最後に、コンパイルします。
コンパイル手順は README.git にあります。
configure
時に --with-drill
をつけ忘れないようにしてください。
$ libtoolize -ci
$ autoreconf -fi
$ ./configure --enable-rrtype-svcb-https --with-drill
$ make
$ sudo make install
$ sudo ldconfig # drill は共有ライブラリ LDNS に依存するため
インストールした drill コマンドを確認します。
$ which drill
/usr/local/bin/drill
$ drill -v
drill version 1.7.2 (ldns version 1.7.2)
Written by NLnet Labs.
Copyright (c) 2004-2008 NLnet Labs.
Licensed under the revised BSD license.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.
最後に、最新の drill 1.7.2 で追加された HTTPS リソースレコード機能を確認します。
$ drill https cloudflare.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 17104
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; cloudflare.com. IN HTTPS
;; ANSWER SECTION:
cloudflare.com. 300 IN HTTPS 1 . alpn=h3-29,h3-28,h3-27,h2 ipv4hint=104.16.132.229,104.16.133.229 ipv6hint=2606:4700::6810:84e5,2606:4700::6810:85e5
...
めでたしめでたし。