LinuxOSでドメイン情報を確認する場合は、DNS(Domain Name System)を利用します。
インターネット上、もしくは内部のドメイン名はこのDNSによって管理されています。
DNSサーバーからIPアドレスなどのホストに関する情報を取得する際に「dig」コマンドを実行します。
「dig」コマンドの使い方(Linux)
「dig」コマンドは知りたいドメイン名のDNS情報を検索するために使用します。
名前解決の正常性、知りたいドメイン名の検索をしたいときによく使われるコマンドです。
「dig」コマンドのインストール
digコマンドを使用するには、以下コマンドでパッケージをインストールします。
CentOS8
[root@centos8 ~]# dnf -y install bind-utils
CentOS7
[root@centos7 ~]# yum -y install bind-utils
ドメイン名からIPアドレスを確認する
以下では「Google」のドメイン名からIPアドレスを確認した出力結果となります。
[root@centos8 ~]# dig google.com ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14104 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 122 IN A 216.58.199.238 ;; Query time: 25 msec ;; SERVER: 192.168.65.1#53(192.168.65.1) ;; WHEN: Sun Feb 14 08:12:41 UTC 2021 ;; MSG SIZE rcvd: 44
digコマンドで「google.com」のIPアドレスを調べます。
上記で問い合わせたドメイン名への回答が「ANSWER SECTION:」で表示されます。
ここでは、「google.com」のIPアドレスが「216.58.199.238」ということがわかります。
ただし、インターネット上のドメイン名によっては「ANSWER SECTION」などの表示がセキュリティ上表示されない場合があります。
ネームサーバーを指定した「dig」コマンド実行例
digコマンドには問い合わせを行うネームサーバーを指定することができます。
以下では「google.com」の公開ネームサーバーを確認するために、オプションで「ns」コマンドを指定しています。
[root@centos8 ~]# dig google.com ns ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> google.com ns ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19850 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN NS ;; ANSWER SECTION: google.com. 4502 IN NS ns1.google.com. google.com. 4502 IN NS ns2.google.com. google.com. 4502 IN NS ns3.google.com. google.com. 4502 IN NS ns4.google.com. ;; Query time: 22 msec ;; SERVER: 192.168.65.1#53(192.168.65.1) ;; WHEN: Sun Feb 14 09:34:06 UTC 2021 ;; MSG SIZE rcvd: 100
13-16行目でネームサーバー名が確認できます。
このネームサーバーを指名して「dig」コマンドを実行します。
コマンドは「dig」コマンドの直後に「@」をつけてネームサーバーを指定し、その後に問い合わせするドメイン名を指定します。
コマンドは以下で「google.com」をネームサーバー「ns1.google.com」を指名して検索します。
[root@centos8 ~]# dig @ns1.google.com google.com ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> @ns1.google.com google.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22364 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 300 IN A 216.58.196.238 ;; Query time: 90 msec ;; SERVER: 216.239.32.10#53(216.239.32.10) ;; WHEN: Sun Feb 14 09:35:31 UTC 2021 ;; MSG SIZE rcvd: 55
「example.com」のIPアドレスが「216.58.196.238」ということが確認できます。
GoogleDNSサーバーを指定した例
次にインターネット上で一般公開されているGoogleDNSサーバーへ問い合わせした例となります。
[root@centos8 ~]# dig @8.8.8.8 example.com ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> @8.8.8.8 example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53465 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 19467 IN A 93.184.216.34 ;; Query time: 15 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Feb 14 08:36:47 UTC 2021 ;; MSG SIZE rcvd: 56
こちらも同じ結果が帰ってきたことが確認できます。
「dig」コマンドオプション
digコマンドの主なオプションとしては「-x」オプションを利用することが多いです。
「-x」オプションはIPアドレスからドメイン名の情報を検索する際に使用します。
以下は逆引き検索の例となります。
[root@centos8 ~]# dig -x 216.58.196.238 ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> -x 216.58.196.238 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13383 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;238.196.58.216.in-addr.arpa. IN PTR ;; ANSWER SECTION: 238.196.58.216.in-addr.arpa. 4502 IN PTR kix06s01-in-f238.1e100.net. 238.196.58.216.in-addr.arpa. 4502 IN PTR kix06s01-in-f14.1e100.net. ;; Query time: 17 msec ;; SERVER: 192.168.65.1#53(192.168.65.1) ;; WHEN: Sun Feb 14 09:38:00 UTC 2021 ;; MSG SIZE rcvd: 115
「ANSWER SECTION:」でドメイン名が表示されています。
この「1e100.net」というドメイン名はGoogleが所有しているドメイン名となります。
ネームサーバーを指定した「dig」コマンド例
次にネームサーバーを指定した逆引きの検索例となります。
[root@centos8 ~]# dig @ns1.google.com -x 216.58.196.238 ; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> @ns1.google.com -x 216.58.196.238 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51334 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;238.196.58.216.in-addr.arpa. IN PTR ;; ANSWER SECTION: 238.196.58.216.in-addr.arpa. 86400 IN PTR kix06s01-in-f238.1e100.net. 238.196.58.216.in-addr.arpa. 86400 IN PTR kix06s01-in-f14.1e100.net. ;; Query time: 88 msec ;; SERVER: 216.239.32.10#53(216.239.32.10) ;; WHEN: Sun Feb 14 09:38:21 UTC 2021 ;; MSG SIZE rcvd: 126
主に使用するオプションは逆引きが多いですが、他にも以下のようなオプションが使用可能です。
[root@centos8 ~]# dig -h Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt} {global-d-opt} host [@local-server] {local-d-opt} [ host [@local-server] {local-d-opt} [...]] Where: domain is in the Domain Name System q-class is one of (in,hs,ch,...) [default: in] q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a] (Use ixfr=version for type ixfr) q-opt is one of: -4 (use IPv4 query transport only) -6 (use IPv6 query transport only) -b address[#port] (bind to source address/port) -c class (specify query class) -f filename (batch mode) -i (use IP6.INT for IPv6 reverse lookups) -k keyfile (specify tsig key file) -m (enable memory usage debugging) -p port (specify port number) -q name (specify query name) -r (do not read ~/.digrc) -t type (specify query type) -u (display times in usec instead of msec) -x dot-notation (shortcut for reverse lookups) -y [hmac:]name:key (specify named base64 tsig key) d-opt is of the form +keyword[=value], where keyword is: +[no]aaflag (Set AA flag in query (+[no]aaflag)) +[no]aaonly (Set AA flag in query (+[no]aaflag)) +[no]additional (Control display of additional section) +[no]adflag (Set AD flag in query (default on)) +[no]all (Set or clear all display flags) +[no]answer (Control display of answer section) +[no]authority (Control display of authority section) +[no]badcookie (Retry BADCOOKIE responses) +[no]besteffort (Try to parse even illegal messages) +bufsize=### (Set EDNS0 Max UDP packet size) +[no]cdflag (Set checking disabled flag in query) +[no]class (Control display of class in records) +[no]cmd (Control display of command line - global option) +[no]comments (Control display of packet header and section name comments) +[no]cookie (Add a COOKIE option to the request) +[no]crypto (Control display of cryptographic fields in records) +[no]defname (Use search list (+[no]search)) +[no]dnssec (Request DNSSEC records) +domain=### (Set default domainname) +[no]dscp[=###] (Set the DSCP value to ### [0..63]) +[no]edns[=###] (Set EDNS version) [0] +ednsflags=### (Set EDNS flag bits) +[no]ednsnegotiation (Set EDNS version negotiation) +ednsopt=###[:value] (Send specified EDNS option) +noednsopt (Clear list of +ednsopt options) +[no]expire (Request time to expire) +[no]fail (Don't try next server on SERVFAIL) +[no]header-only (Send query without a question section) +[no]identify (ID responders in short answers) +[no]ignore (Don't revert to TCP for TC responses.) +[no]keepopen (Keep the TCP socket open between queries) +[no]mapped (Allow mapped IPv4 over IPv6) +[no]multiline (Print records in an expanded format) +ndots=### (Set search NDOTS value) +[no]nsid (Request Name Server ID) +[no]nssearch (Search all authoritative nameservers) +[no]onesoa (AXFR prints only one soa record) +[no]opcode=### (Set the opcode of the request) +[no]qr (Print question before sending) +[no]question (Control display of question section) +[no]rdflag (Recursive mode (+[no]recurse)) +[no]recurse (Recursive mode (+[no]rdflag)) +retry=### (Set number of UDP retries) [2] +[no]rrcomments (Control display of per-record comments) +[no]search (Set whether to use searchlist) +[no]short (Display nothing except short form of answers - global option) +[no]showsearch (Search with intermediate results) +[no]sigchase (Chase DNSSEC signatures) +[no]split=## (Split hex/base64 fields into chunks) +[no]stats (Control display of statistics) +subnet=addr (Set edns-client-subnet option) +[no]tcp (TCP mode (+[no]vc)) +timeout=### (Set query timeout) [5] +[no]topdown (Do +sigchase in top-down mode) +[no]trace (Trace delegation down from root [+dnssec]) +trusted-key=#### (Trusted Key to use with +sigchase) +tries=### (Set number of UDP attempts) [3] +[no]ttlid (Control display of ttls in records) +[no]ttlunits (Display TTLs in human-readable units) +[no]unknownformat (Print RDATA in RFC 3597 "unknown" format) +[no]vc (TCP mode (+[no]tcp)) +[no]zflag (Set Z flag in query) global d-opts and servers (before host name) affect all queries. local d-opts and servers (after host name) affect only that lookup. -h (print help and exit) -v (print version and exit) [root@centos8 ~]#
Linux「dig」コマンドの使用例は以上となります。
エンジニアのオンライン学習
エンジニアにおすすめのオンライン教材比較 | |
ITエンジニアが自宅で学習ができるオンラインスクール比較 | |