DNS | |||
---|---|---|---|
DNSサーバー (ネームサーバー) とは
DNS 名前解決をする場合、以下の4つの構成要素が存在します。
DNS の構成要素 | 機能説明 | 具体例 | 別名 |
---|---|---|---|
DNS クライアント | 名前解決を依頼 | ・dig コマンド ・ブラウザ | スタブリゾルバー |
DNS プロキシ | 名前解決を中継 | ・ホームルーター | DNSフォワーダー |
キャッシュ DNS サーバー | 名前解決を実行 | ・Google Public DNS ・bind ・dnsmasq | ・DNS サーバー ・フルサービスリゾルバー ・参照サーバー |
権威 DNS サーバー | 実データを管理 | ・Amazon Route 53 ・bind | ・DNS サーバー ・DNSコンテンツサーバー ・権威ネームサーバー ・ゾーンサーバー |
DNS サーバー (ネームサーバー) は、「キャッシュ DNS サーバー」と「権威 DNS サーバー」の両方を指します。
「ネームサーバー」は、文脈により二つの意味で使われます。
一つはNSリソースレコードにより指定されるサーバーで、権威サーバー(権威DNSサーバー)を指しますもう一つはDNSのサービスを提供するサーバーで、権威サーバーに加え、フルサービスリゾルバー(キャッシュDNSサーバー)も含みます
https://jprs.jp/glossary/index.php?ID=0157
ドメイン名前空間とは
ドメイン名前空間の葉から根まで辿るとドメイン名となります。
例えば、「葉 (www)」から「根 (.)」まで辿ると、「www.nintendo.co.jp.」となります。
なお、末尾のピリオドを含むかどうかで以下のように名前が変わります。
- Absolute Domain Name (絶対ドメイン名):www.nintendo.co.jp. (末尾のピリオドを含む)
- Fully Qualified Domain Name (完全修飾ドメイン名):www.nintendo.co.jp (含まない)
ドメインの種類
ドメイン名前空間にあるドメインには、以下のような種類があります。
ドメイン名では、一番最後の部分にあたります。(google.co.jp の「.jp」の部分)
トップレベルドメインは次の2種類が存在します。
TDL の種類 | 説明 | 例 |
---|---|---|
ccTLD (Country Code TLD) | 国を表す TDL | 「.jp」「.us」「.de」「.cn」 |
gTLD (Generic TLD) | 国や地域によらないト TDL | 「.com」「.edu」「.gov」 「.mil」「.net」「.org」「.info」 |
ドメイン名はピリオドで区切られますが、右側から2番目の文字列がSLDです。「jprs.co.jp」の場合、SLDは「co」になります。
https://jprs.jp/glossary/index.php?ID=0055
ゾーンとは
権威 DNS サーバーは、「自分」と「自分の子ノード」の情報を管理します。
この管理する情報の範囲を「ゾーン」と言います。
リソースレコードとタイプ
リソースレコードのタイプには以下の種類が存在します。
コード | タイプ | 説明 |
---|---|---|
1 | A | ドメイン名に対応する IP アドレス |
2 | NS | ドメイン名に対応する権威 DNS サーバーの IP アドレス |
5 | CNAME | ドメイン名の別名(エイリアス) |
6 | SOA | ゾーンの情報 |
12 | PTR | 逆引き DNS (IP アドレス-->ホスト名) 等に使用する |
15 | MX | ドメイン名に対応するメールサーバの IP アドレス |
リソースレコードには「クラス」も指定しますが、通常「IN (the Internet system)」を使います。
ドメインの Aリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: nintendo.co.jp. 300 IN A 13.248.184.86 nintendo.co.jp. 300 IN A 76.223.57.182
nintendo.co.jp. は TTL が 300秒で IP アドレスが「13.248.184.86」もしくは「76.223.57.182」であることがわかります。
ドメインの NSリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: nintendo.co.jp. 600 IN NS ns-742.awsdns-28.net. nintendo.co.jp. 600 IN NS ns-1222.awsdns-24.org. nintendo.co.jp. 600 IN NS ns-19.awsdns-02.com. nintendo.co.jp. 600 IN NS ns-1938.awsdns-50.co.uk.
nintendo.co.jp. ドメインは、4つの権威 DNS サーバーで管理されていることがわかります。
もちろん、権威 DNS サーバー自体の Aリソースレコードもあります。
205.251.194.230
ドメインの CNAMEリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: www.nintendo.co.jp. 201 IN CNAME www.nintendo.co.jp.edgekey.net.
何も指定しない場合、Aリソースレコードまで再帰的に解決してくれます。
;; ANSWER SECTION: www.nintendo.co.jp. 300 IN CNAME www.nintendo.co.jp.edgekey.net. www.nintendo.co.jp.edgekey.net. 187 IN CNAME e5192.b.akamaiedge.net. e5192.b.akamaiedge.net. 20 IN A 184.26.241.185
以下の3つは全て同じという意味です。
- 「www.nintendo.co.jp.」
- 「www.nintendo.co.jp.edgekey.net.」
- 「e5192.b.akamaiedge.net.」
権威 DNS サーバーは、1つのプライマリーサーバーと複数のセカンダリーサーバーから構成されます。
権威 DNS サーバーの種類 | 説明 |
---|---|
プライマリーサーバー | リソースレコードを更新 |
セカンダリーサーバー | プライマリーサーバーのリソースレコードをコピー |
ドメインの SOAリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: nintendo.co.jp. 900 IN SOA ns-19.awsdns-02.com. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
SOAリソースレコードの意味は以下のとおりです。
項目名 | 説明 | 例 |
---|---|---|
MName | 権威 DNS サーバー名 (プライマリーサーバー) | ns-19.awsdns-02.com. |
RName | ドメインの管理者 (メールアドレス) | awsdns-hostmaster.amazon.com. (awsdns-hostmaster@amazon.com のこと) |
Serial | ゾーン情報のシリアル番号 (更新のバージョン) | 1 |
Refresh | 更新までの時間 | 7200 |
Retry | 更新の再試行間隔 | 900 |
Expire | 更新の終了時間 | 1209600 |
Minimum TTL | リソースレコードの最小TTL | 86400 |
ドメインの PTRリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: 49.16.11.202.in-addr.arpa. 3439 IN PTR ns1.jprs.co.jp.
IP アドレス「202.11.16.49」のホスト名が「ns1.jprs.co.jp.」であることがわかります。
IP アドレスを後ろから読むのが混乱する場合は -x オプションを使います。
;; ANSWER SECTION:
ns1.jprs.co.jp. 2673 IN A 202.11.16.49
ドメインの MXリソースレコードは、以下のコマンドで名前解決可能です。
;; ANSWER SECTION: nintendo.co.jp. 300 IN MX 10 mxb-0039de01.gslb.pphosted.com. nintendo.co.jp. 300 IN MX 10 mxa-0039de01.gslb.pphosted.com.
上記は xxx@nintendo.co.jp 宛のメールを、以下のメールサーバーで処理するという意味です。
なお、先頭にある数字は優先度です。数字の低い方が名前解決の優先順位が高くなります。
(今回は優先度が同じなので、ラウンドロビン方式で名前解決します。)
DNS クエリ (問い合わせ) の種類
DNS サーバーにリソースレコードを問い合わせ (クエリ) する方法は、以下の2つがあります。
dig コマンドによる再帰問い合わせ方法
「非再帰問い合わせ」は「反復問い合わせ(iterative query)」とも呼ばれます。
dig コマンドによる非再帰問い合わせ方法
+norec で非再帰問い合わせを行い、"@x.x.x.x" で権威 DNS サーバーを指定します。
;; AUTHORITY SECTION:
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
(中略)
;; AUTHORITY SECTION:
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; ANSWER SECTION:
google.com. 300 IN A 142.250.196.110
3回の非再帰問い合わせで google.com の IP アドレスが 142.250.196.110 とわかりました。
なお、trace オプションを利用すると、一括で非再帰問い合わせを行うことができます。
DNS メッセージ
DNS メッセージは、以下のような DNS クエリ (問い合わせ) で利用します。
DNS メッセージのフォーマット
DNS メッセージのフォーマットは以下のとおりです。
名前 | 説明 |
---|---|
識別(ID) | 識別子 問い合わせと応答で同じ値を利用し、1:1で対応 |
フラグ | フラグ (後述) を記載 |
質問の数(QD Count) | QUESTION セクションのリソースレコードの数 |
回答の数(AN Count) | ANSWER セクションのリソースレコードの数 |
オーソリティの数(NS Count) | AUTHORITY セクションのリソースレコードの数 |
追加情報の数(AR Count) | ADDITIONAL セクションのリソースレコードの数 |
QUESTION セクション | DNS クエリ (問い合わせ) の内容 |
ANSWER セクション | DNS クエリ (問い合わせ) に対する回答 (リソースレコード) |
AUTHORITY セクション | 権威 DNS サーバーの情報 (NS レコードなど) |
ADDITIONAL セクション | 追加情報 (権威 DNS サーバー自体の A、AAAA レコードなど) |
フラグ
名前 | 説明 |
---|---|
問い合わせ/応答(qr) | 0…問い合わせ 1…応答 |
オペレーションコード(opcode) | 0…問い合わせ 1…逆問い合わせ 2…サーバ状態要求 |
オーソリティ応答(aa) | 0…反復の結果の応答 1…そのネームサーバからの応答 |
切捨て(tc) | 0…データサイズ512バイト以下 1…512バイト超 |
再帰要望(rd) | 0…反復問い合わせ 1…再帰問い合わせをネームサーバに要求 |
再帰有効(ra) | 0…再帰不可能 1…再帰可能 |
予約 | すべて0 |
戻りコード(Rcode/status) | 0…応答成功 3…問い合わせの名前なし |
DNS メッセージを確認
dig コマンドを用いて、実際の DNS メッセージを確認します。
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54497 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 9
名前 | 値 |
---|---|
識別(ID) | 54497 |
フラグ | 問い合わせ/応答(qr):1(応答) オペレーションコード(opcode):0(QUERY/問い合わせ) オーソリティ応答(aa):0(反復の結果の応答) 切捨て(tc):0(データサイズ512バイト以下) 再帰要望(rd):1(再帰問い合わせをネームサーバに要求) 再帰有効(ra):1(再帰可能) 予約:0 戻りコード(Rcode/status):0(NOERROR/応答成功) |
質問の数(QD Count) | 1 |
回答の数(AN Count) | 2 |
オーソリティの数(NS Count) | 4 |
追加情報の数(AR Count) | 9 |
QUESTION セクション | ;; QUESTION SECTION: ;nintendo.co.jp. IN A |
ANSWER セクション | ;; ANSWER SECTION: nintendo.co.jp. 103 IN A 76.223.57.182 nintendo.co.jp. 103 IN A 13.248.184.86 |
AUTHORITY セクション | ;; AUTHORITY SECTION: nintendo.co.jp. 403 IN NS ns-742.awsdns-28.net. nintendo.co.jp. 403 IN NS ns-1938.awsdns-50.co.uk. nintendo.co.jp. 403 IN NS ns-1222.awsdns-24.org. nintendo.co.jp. 403 IN NS ns-19.awsdns-02.com. |
ADDITIONAL セクション | ;; ADDITIONAL SECTION: ns-1222.awsdns-24.org. 3172 IN A 205.251.196.198 ns-1222.awsdns-24.org. 3172 IN AAAA 2600:9000:5304:c600::1 ns-19.awsdns-02.com. 574 IN A 205.251.192.19 ns-19.awsdns-02.com. 574 IN AAAA 2600:9000:5300:1300::1 ns-1938.awsdns-50.co.uk. 194 IN A 205.251.199.146 ns-1938.awsdns-50.co.uk. 194 IN AAAA 2600:9000:5307:9200::1 ns-742.awsdns-28.net. 1934 IN A 205.251.194.230 ns-742.awsdns-28.net. 1934 IN AAAA 2600:9000:5302:e600::1 |
最後に
関連記事
DNS | |||
---|---|---|---|
参考資料
https://2014.seccon.jp/dns/dns_basics_in_30minutes.pdf
https://www.janog.gr.jp/meeting/janog35/download_file/view/83/175/index.pdf