はじめに
CentOS 6.6サーバに対して、DNS/DNSSEC名前解決用のdrillコマンドをインストールする手順です。
drillコマンドとは、NDSやunboundを開発したNLnet Labs様が開発したDNS/DNSSEC名前解決用コマンドになります。
drillコマンドはldnsパッケージに含まれております。今回はrpmでldnsをインストールして、drillコマンドをインストールします。
drillコマンドインストール対象の環境について
・CentOS release 6.6 (2.6.32-504.3.3.el6.x86_64)
参考サイト
以下のサイトを参考にさせて頂きました。
http://unbound.jp/ldns/drill/
https://www.nlnetlabs.nl/projects/drill/
drillコマンドインストールにあたり、以下のサイトのrpmを利用させて頂きました。
http://rpmfind.net/linux/rpm2html/search.php?query=ldns
ftp://rpmfind.net/linux/epel/6/x86_64/ldns-1.6.17-1.el6.x86_64.rpm
CentOS 6.6サーバへのdrillコマンドインストール手順
・drillコマンドはデフォルトではCentOS 6.6にはインストールされていないと思います。
# rpm -qa | grep ldns
#
# which drill
/usr/bin/which: no drill in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
#
・まずは、CentOS 6.6にdrillコマンドを動かす上で必要なパッケージをインストールします。
openssl-develはインストールしなくてもdrillコマンドは動きましたが、drill -TDオプションでOpenSSLが必要そうなので、openssl-develもインストールする事にしました。
# cat /etc/redhat-release
CentOS release 6.6 (Final)
# uname -a
Linux *********** 2.6.32-504.3.3.el6.x86_64 #1 ******** x86_64 x86_64 x86_64 GNU/Linux
#
# yum -y install wget
# yum -y install gcc
# yum -y install glibc-devel
# yum -y install libpcap-devel
# yum -y install openssl-devel
・drillコマンドを含んでいるldns 1.6.17をインストールします。
# cd /usr/local/src
# pwd
/usr/local/src
# wget ftp://rpmfind.net/linux/epel/6/x86_64/ldns-1.6.17-1.el6.x86_64.rpm
# ll /usr/local/src/ldns-1.6.17-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 290556 Jan 20 00:51 /usr/local/src/ldns-1.6.17-1.el6.x86_64.rpm
#
# rpm -ivh /usr/local/src/ldns-1.6.17-1.el6.x86_64.rpm
warning: /usr/local/src/ldns-1.6.17-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:ldns ########################################### [100%]
#
・ldnsとdrillコマンドがインストールされた事を確認します。
# rpm -qa | grep ldns
ldns-1.6.17-1.el6.x86_64
#
# which drill
/usr/bin/drill
#
drillコマンドを使用した名前解決テスト
以下のようにdrillコマンドを利用して、DNS名前解決をテストする事が出来ます。
# drill www.google.co.jp A
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 47537
;; flags: qr rd ra ; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; www.google.co.jp. IN A
;; ANSWER SECTION:
www.google.co.jp. 220 IN A 173.194.120.87
www.google.co.jp. 220 IN A 173.194.120.88
www.google.co.jp. 220 IN A 173.194.120.95
www.google.co.jp. 220 IN A 173.194.120.79
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
;; Query time: 0 msec
;; SERVER: XX.XX.XX.XX
;; WHEN: Tue Jan 20 01:10:57 2015
;; MSG SIZE rcvd: 98
#
以下はdrillコマンドで、ルートサーバからwww.google.co.jpまでDNSSEC(-D)の追跡(-T)をする例です。
# drill -TD www.google.co.jp
Warning: No trusted keys were given. Will not be able to verify authenticity!
;; Domain: .
;; Signature ok but no chain to a trusted key or ds record
[S] . 172800 IN DNSKEY 257 3 8 ;{id = 19036 (ksk), size = 2048b}
. 172800 IN DNSKEY 256 3 8 ;{id = 16665 (zsk), size = 1024b}
Checking if signing key is trusted:
New key: . 172800 IN DNSKEY 256 3 8 AwEAAe3fSrbLBy3LOS7pnxEUhvPZTE2H5dIGsI/UfruI/nOEvWWa/PSX2BFedBkEqOlYdjdNF2f+6lmfk2Od/xu0v5bVqxFE+/24v3hZSlWBxvXzPTAGHrbW/IJYEPqlzVOAS4XdUgHg0N7IbLywNHMvB+Yf+Nm6ctyXXFLV4WTNnzs7 ;{id = 16665 (zsk), size = 1024b}
[S] jp. 86400 IN DS 36484 8 1 4b95f2d988e20f5ed9a9207782e933f8b0db089e
jp. 86400 IN DS 36484 8 2 f45229ac573050e1d4b3089943bdb1d38704b827c441a4fa5ff43bb03f7b3b58
;; Domain: jp.
;; Signature ok but no chain to a trusted key or ds record
[S] jp. 86400 IN DNSKEY 256 3 8 ;{id = 5511 (zsk), size = 1024b}
jp. 86400 IN DNSKEY 257 3 8 ;{id = 36484 (ksk), size = 2048b}
jp. 86400 IN DNSKEY 256 3 8 ;{id = 61398 (zsk), size = 1024b}
[S] Existence denied: co.jp. DS
;; No ds record for delegation
[S] Existence denied: co.jp. NS
#
以上になります。