- 現在利用している言語や技術の記法や不明点等を記録していく記事第二弾。
- WSL2の発表もあり、ついに「Linuxコマンドを知らないエンジニアは終わる」的な記事まで出ることに、冷静沈着の装い作業に尽力。
- 今回は、サーバー情報やドメイン情報等を確認するための「dig」コマンドを整理して、徐々にネットワーク系の知識も学ぶことにしよう。
前提知識
DNSの概要
- DNSとは、「IPアドレス(コンピュータ上の住所)をドメイン名(人が理解できる住所名)へ変換する仕組み。」
- DNSサーバーとは、「DNSの機能を管理・利用するために設置するサーバー。」
- DNSサーバー内では、IPアドレスと名前の関係記録を持っているデータベースがあり、それを検索して、結果のやり取りをしている。
- 正引きとは、「ドメインからIPアドレスを見つける仕組み。」
- 逆引きとは、「IPアドレスからドメインを見つける仕組み。」
- 通常DNSサーバーは、二台以上用意する必要がある。
- ※一台のプライマリ(マスター)サーバーしか用意していない場合、サーバーダウンの際に、修復に時間がかかるため。
DNSサーバーレコード
- 下記、サーバーに記録されているDNSレコード(ドメイン詳細データ)の基本一覧。
種別 | 内容 |
---|---|
SOA | ドメイン情報 |
NS | DNS(名前)サーバー情報 |
MX | メールサーバー情報 |
TXT | SPF(ドメイン偽造チェック)情報 |
A | IPアドレス |
AAAA | IPV6アドレス |
digコマンド
概要
- DNS管理ツールの一つ。
- ドメインの「正引き」や「逆引き」の機能や、詳細データ等の確認ができる。
- 類似コマンドに、nslookupコマンドがある。
- ※相違点として、対話モードがない。
準備
- Windowsで、digコマンドが入っていない場合、こちらのサイトを参考に導入する。
- MacやLinuxには、標準でdigコマンドが入っている場合が多い。
- ※Linuxに入っていない場合、下記のコマンドでいれる。
# centosの場合
$ sudo yum install bind-utils
# ubuntuの場合
$ sudo apt-get install bind-utils
環境
- macとlinuxの両方のパターンで利用したかったため、下記を利用。
- Mac OS X 10.13.4Mac OS X 10.13.4
- ※「dig」はインストール不要で、標準のターミナルで利用可能。
- Amazon Linux 2 AMI 2.0
- ※こちらもインストール不要で、標準のターミナルで利用可能。
- Mac OS X 10.13.4Mac OS X 10.13.4
- ※メインは、Amazon Linux 2 AMI 2.0を利用。
- ※下記以降での説明するdigコマンドでの、環境ごとの相違等はない。
操作
正引き
- 下記のコマンドをターミナル(コマンド)でうち、ドメインからIPアドレスを見つけ出す。
# 「dig ドメイン」
$ dig www.google.co.jp
# 結果情報
;;ANSWER SECTION:
www.google.co.jp. 60 IN A 172.217.9.67 # 割り当てIP
;; Query time: 1 msec # 応答時間
;; SERVER: 172.31.0.2#53(172.31.0.2) # 応答サーバー
;; WHEN: Sat May 18 01:59:44 UTC 2019 # 日時
;; MSG SIZE rcvd: 59
- 正引きで、IPアドレスのみ表示したいときは、下記のコマンドをうつ。
# 「dig ドメイン +short」
$ dig www.google.co.co.jp +short
172.217.4.99
逆引き
- 下記のコマンドをうち、IPアドレスからドメインを見つけ出す。
# 「dig -x ipアドレス」
$ dig -x 172.217.9.67
# 結果情報
;; ANSWER SECTION:
164.8.217.172.in-addr.arpa. 60 IN PTR ord37s08-in-f4.1e100.net. # 逆引き結果
;; Query time: 1 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Sat May 18 02:04:44 UTC 2019
;; MSG SIZE rcvd: 93
レコード情報確認
1. SOAレコード
- 下記のコマンドをうち、SOAレコード(ドメイン情報)の詳細情報を確認する。
# 「dig ドメイン soa」
$ dig google.co.jp soa
# 結果情報
# プライマリサーバー : ns1.google.com
# 管理者アドレス : dns-admin.google.com
;; ANSWER SECTION:
google.co.jp. 60 IN SOA ns1.google.com. dns-admin.google.com. 248823103 900 900 1800 60
;; Query time: 68 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:30:27 JST 2019
;; MSG SIZE rcvd: 101
2. NSレコード
- 下記のコマンドをうち、NSレコード(DNSの名前サーバー情報)の詳細情報を確認する。
# 「dig ドメイン ns」
$ dig google.co.jp ns
# 結果情報
# 下記、ネームサーバー一覧
;; ANSWER SECTION:
google.co.jp. 345600 IN NS ns2.google.com.
google.co.jp. 345600 IN NS ns4.google.com.
google.co.jp. 345600 IN NS ns3.google.com.
google.co.jp. 345600 IN NS ns1.google.com.
;; Query time: 70 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:32:16 JST 2019
;; MSG SIZE rcvd: 299
3. MXレコード
- 下記のコマンドをうち、MXレコード(メールサーバー情報)の詳細情報を確認する。
# 「dig ドメイン mx」
$ dig google.co.jp mx
# 結果情報
# 下記、メールサーバー一覧
;; ANSWER SECTION:
google.co.jp. 600 IN MX 20 alt1.aspmx.l.google.com.
google.co.jp. 600 IN MX 40 alt3.aspmx.l.google.com.
google.co.jp. 600 IN MX 10 aspmx.l.google.com.
google.co.jp. 600 IN MX 30 alt2.aspmx.l.google.com.
google.co.jp. 600 IN MX 50 alt4.aspmx.l.google.com.
;; Query time: 71 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:39:34 JST 2019
;; MSG SIZE rcvd: 207
4. TXTレコード
- 下記のコマンドをうち、TXTレコード(ドメイン偽造チェック情報)の詳細情報を確認する。
# 「dig ドメイン txt」
$ dig gmail.com txt
# 結果情報
# 「v= ~~~」の部分が、SPF(ドメイン偽造チェック)情報
;; ANSWER SECTION:
gmail.com. 300 IN TXT "v=spf1 redirect=_spf.google.com"
;; Query time: 68 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:44:51 JST 2019
;; MSG SIZE rcvd: 159
5. Aレコード
- 下記のコマンドをうち、aレコード(IPアドレス)の詳細情報を確認する。
# 「dig ドメイン a」
$ dig google.co.jp a
# 結果情報
;; ANSWER SECTION:
google.co.jp. 106 IN A 172.217.25.67
;; Query time: 53 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:50:11 JST 2019
;; MSG SIZE rcvd: 57
6. AAAAレコード
- 下記のコマンドをうち、AAAAレコード(IPV6アドレス)の詳細情報を確認する。
# 「dig ドメイン aaaa」
$ dig google.co.jp aaaa
# 結果情報
;; ANSWER SECTION:
google.co.jp. 265 IN AAAA 2404:6800:4004:80b::2003
;; Query time: 53 msec
;; SERVER: 2001:268:fd07:4::1#53(2001:268:fd07:4::1)
;; WHEN: Sat May 18 12:47:33 JST 2019
;; MSG SIZE rcvd: 69
まとめ
- 今回は、ドメイン関連学習ということで、「こんなサイトもawsを利用しているのか」という、発見と驚愕の連鎖が止まらずに、記事を書く。
- DNSの詳細な仕組みの理解から一旦逃避して、コマンド連打作業から始める学習スタイルをとる。
- この他に、「host」「whois」等といった便利コマンドがあるらしいから、次の整理はこれにすることにしよう。
参考・書籍
-
https://qiita.com/hypermkt/items/610b5042d290348a9dfa
→こちらを参考にしました。大変お世話になりました。 -
コマンドで覚えるLinux
→こちらを参考にしました。大変お世話になりました。 -
https://www.atmarkit.co.jp/ait/articles/1410/20/news122.html
→Windowsでのdig導入の際に参考にしました。大変お世話になりました。