Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@ichi_zamurai

<DNS>IPアドレスと名前解決の関係について

名前解決とは

端的にいうと、
「IPアドレス(MACアドレスも含む)をドメイン名に変換したり、ドメイン名をIPアドレスに変換したりする」ことをいう。

IPアドレスは、192.168.0.2こんなやつで、コンピュータ側が認識できるネットワーク上の住所。
※こちらの記事もご覧下さい:IPv4とIPv6の違いについて
※ちなみに、MACアドレスとはこんなやつ。FE-F8-AE-33-00-D2 ←適当です。

ドメイン名は、ichi_zamurai.comみたいなやつで、
IPアドレスに紐づける人間側がわかりやすく管理できる住所の名前

つまり、
〇〇町1-1-1(192.168.0.1) -> 田中さん家(tanaka.com)
みたいなイメージか。

たしかに、IPアドレス自体は、ネットワークエンジニアとかめっちゃ細かい人とかだったら管理できるかもだけど、
流石に一般人では、やっぱり具体的な名前がわかりやすいですねえ。

DNS(Domain Name System)

DNS(Domain Name System)とは、
IPアドレスとドメイン名をいい感じで変換してくれる仕組み・システムのことで、
その変換の処理を、生き甲斐かつ本業にしているのが、DNSサーバー

DNSサーバーには大まかに2種類ある

1.フルサービスリゾルバ(DNSキャッシュサーバー)

まず手元のパソコンが最初に問い合わせるのが、フルサービスリゾルバ
DNSキャッシュサーバーと、その名の通り、IPアドレスとドメインの変換をするキャッシュのレコードがあれば、
それを使って、名前解決してくれます。

もしキャッシュに、変換情報がなければ、
フルサービスリゾルバが頑張って、権威DNSサーバーの方に問い合わせに行きます。(こわいな〜こわいな〜)
※一度、権威に問い合わせたらもう一回聞くのが怖いので、ちゃんとキャッシュにカンペ用のメモをつけます。

2.権威DNSサーバ(DNSコンテンツサーバー)

フルサービスリゾルバが、キャッシュを持っていなくて、名前解決できなかった時に、
モノホンの情報をもっている権威DNSサーバーに問い合わせて、名前解決してもらいます。

DNSコンテンツサーバーと、その名の通り、いっぱいコンテンツを持っていますが、
管理しているエリアは範囲が決められています。

その情報が書かれているファイルは、いわゆるゾーンファイルと言われていますが、
その名前解決に使える情報が書かれていて、
宝の持ち腐れにならないように、
権威を奮って、フルサービスリゾルバに優しく答えを教えてあげます。

ゾーンファイルの中身は?

ゾーンファイルには、

【ドメイン名】 IN A 【IPアドレス】
【ドメイン名】 IN AAAA 【IPアドレス】

みたいに書かれています。
例えば、

ns1.exmaple.com. IN AAAA 0:0:0:ffff::c000:0201

みたいな。

流れを解説

名前解決の問い合わせの流れは、
パソコン(ブラウザ)=>DNSキャッシュサーバ=>DNSコンテンツサーバ

DNSでは、ドメイン情報を階層的に管理していて、
ドメイン解決する時にネームサーバーに問い合わせする流れは、
ホスト.ドメインをひっくり返して、
com.ichi_zamurai.www
という流れ。
comが上位ドメインにあたり、最初に問い合わせ。分からないときは、下位ドメインichi_zamuraiNSレコードに示されたサーバに問い合わせ…
という感じで、プロセスを繰り返していくシステムらしい。

てな感じで、仕組みがわかったところで

DNSレコードの種類

DNSレコードとは、ゾーンファイルに書かれた詳細データの単位、つまり「レコード」のことを言います。
種類としては、以下の表の通りです。
いっぱいあるので一部だけの紹介になります〜

種類 説明
Aレコード IPv4でドメイン名(FQDN)とIPアドレスを紐づけるレコード www.ichi_zamurai.com IN A 192.168.1.10
AAAAレコード IPv6でドメイン名(FQDN)とIPアドレスを紐づけるレコード www.ichi_zamurai.com IN AAAA 0:0:0:ffff::c000:0201
CNAMEレコード ドメイン名(正規ホスト)のエイリアス(別名)を紐づけるレコード。
特定のドメイン名(FQDN)を別のものに転送する時などに利用。
mobile.ichi_zamurai.com. IN CNAME www.ichi_zamurai.com.
MXレコード ドメイン宛のメール送信先(メールサーバ)のドメイン名(FQDN)を紐づけるレコード。

「~@ichi_zamurai.com」宛のメールは「mail.ichi_zamurai.com」へ送信してって意味。

「10」は任意の整数で、優先度をで表したもの。同じドメインにサーバを複数設定したとき、小さい値から優先的に配送をやってくれる
ichi_zamurai.com IN MX 10 mail.ichi_zamurai.com.
NSレコード ドメインのゾーン情報を管理するDNSサーバを定義するレコード
複数の権威DNSサーバがあれば、同じドメインに対してサーバの数だけNSレコードを列挙
ichi_zamurai.com IN NS ns1.ichi_zamurai.com.
ichi_zamurai.com IN NS ns2.ichi_zamurai.com.
TXT(SPF)レコード ホスト名の付加情報を自由に定義するレコード。

DNSを拡張してプロトコルや仕組みを実装する際、必要な情報の定義などに使われることが多い。いわゆる人間用のメモみたいな

SPFやDKIMなどのメール送信元認証・確認などの技術でも使われる
www.ichi_zamurai.com IN TXT "Please Dont Touch Me"
ichi_zamurai.com. IN TXT "v=spf1 ip4:198.51.100.1 ~all"
意味:「198.51.100.1」から送られたメールは正規のもので、それ以外からのは不正だよ
SRVレコード 負荷分散サービスの提供/冗長性の確保/サービスポート番号の通知を可能にするレコード
提供しているホスト名や下位プロトコル(UDPかTCPか)、ポート番号などを任意に定義することができる
ichi_zamurai.comドメインのFTPサービスはftp.ichi_zamurai.comのTCPの21番ポートで提供してるよみたいな
DSレコード サブドメインでDNSSEC(DNS Security Extension)を利用するためのレコード DNSクライアントがサーバへ問い合わせを行なう際に、サーバからの応答が悪意の第三者によって差し替えや改竄が行われていないことを検証するなど応答が正当なものであることを確認する方式を定めた規格
PTRレコード IPアドレスに対するドメイン名 192.168.1.10 IN PTR www.ichi_zamurai.com.
HINFOレコード ホストの追加情報リソース、ハードウェア・ソフトウェア(OS)情報を記述するレコード ichi_zamurai.com. IN HINFO SonyL700 Linux-Kernel2.4
SOAレコード 権威DNSサーバが管理しているゾーン情報が書いてある行 @ IN SOA 【DNSサーバのドメイン名】 【連絡先】 (
【シリアル番号】
【更新チェックの間隔】
【リトライ間隔】
【問い合わせ諦めるぜ期間】
【ネガティブキャッシュの有効期限】
)

<補足>

  • FQDNとはFully Qualified Domain Nameの略で、ホスト名+ドメイン名のこと。
    • .」がついているのはFQDNであることを意味する。
    • 例:www+.+ichizamurai.comみたいな。
  • CNAMEレコード:ドメイン名(FQDN)は、Aレコードが登録されている必要がある。※特定のファイルやサブディレクトリは指定不可
    • ホスト名なしのCNAMEレコードは登録できない。
    • CNAMEレコードで定義された別名は、MXレコードやNSレコードを設定できない
  • MXレコード、NSレコードを設定するには、ドメイン名(FQDN)は、Aレコードが登録されている必要がある
  • ININ/OUTではなく、InternetのIN!!

まとめ

名前解決はちゃんとされましたが、頭の中では解決されておりません。

以上、
ありがとうございました。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ichi_zamurai
フルスタック目指すアプリケーションエンジニア。 異色な経歴ですがw アメリカ大学卒 →イベント系派遣設営スタッフ →元消防士 →アフィリエイター →ITマーケター(2社経験) →Java習得@ハロワ →エンジニアデビュー@31歳 →AWS SAA-C02,DVA-C01取得@32歳 →現在のカオスに至る

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?