DNSとは
DNS(Domain Name System)とは、IPアドレスとドメインを紐付けてネットワーク上で管理するシステムです。
IPアドレスとは
IPアドレスとは、ネットワークに割り当てられた識別番号、いわば「コンピュータやネットワークを識別するためのネットワーク上の住所」です。Webサイトのデータが格納されているサーバにもIPアドレスが割り当てられており、これがWebサイトの住所になります。
インターネット通信やメールの送受信を行う際は、このIPアドレスで通信先のデバイスを識別・特定する仕組みになっています。IPアドレスはコンピュータ向けの識別番号であり、「351.651.24.61」といったような形式になっています。
ドメイン名とは
ドメイン名とは、IPアドレスを人が理解し易いように任意で設定した名称です。URLの一部となる文字列であり、当サイトで言うところの「techmania.jp」がドメイン名に該当します。
Webサイトの住所はサーバのIPアドレスと紹介しましたが、数字が何桁も羅列されているIPアドレスでは、人がWebサイトを直感的に判別できない・覚えられないので、その解決策として文字列で表記し、直感的に判りやすくしたのがドメイン名です。
DNSの仕組み
WebページのデータはWebサーバに格納されています。それぞれの格納場所に付与されたIPアドレスが、Webページの住所となっています。しかし、ユーザがWebページにアクセスする場合、WebブラウザにIPアドレスではなくドメイン名(URL)を入力します。これはドメイン名とIPアドレスが紐付けされているからです。ドメイン名を入力すると、それに紐付けられたデータが呼び出されるようになっています。このようにIPアドレスとドメイン名の紐づけ・管理・変換を行う仕組みを「DNS」といい、それを実行する機器が「DNSサーバ」です。
コンピュータはIPアドレスしか識別できず、ドメイン名では識別できません。しかし、そうすると今度は人間が困ってしまいます。「351.651.24.61」と「351.651.42.61」と「351.651.24.16」の違いをぱっと見で判断できる人はそういないでしょう。そこで、コンピュータにはコンピュータが理解できる住所、すなわち「IPアドレス」、人には人が理解しやすい形式の住所、すなわち「ドメイン名」を事前に対応づけ、必要に応じて変換するようにしました。
DNSを実行するDNSサーバにはドメイン名と紐づけたIPアドレスデータが格納されています。言ってしまえば電話帳です。ブラウザにURLを入力すると、PCはDNSサーバにドメイン名に紐づくIPアドレスを問い合わせ、そのIPアドレスを有するWebサーバからデータを取り寄せます。
DNSがないと、ドメインを任意でつけられず、すべて識別番号で管理しなくてはならなくなります。結果的にIPアドレスを利用しなければならないので、利便性も劣ってしまいます。
Webサイトにアクセスする際のDNSの役割
ユーザがWebページにアクセスする際のDNSの仕組み・役割を紹介します。ユーザがドメイン名を入力してからWebページが表示されるまで、デバイスとDNSサーバ、Webサーバ間では次のような処理が行われています。
- ユーザが閲覧したいWebサイトの住所をドメイン名(URL)で指定します。当サイトで言えば、「techmania」がそれに該当します。
- コンピュータは「techmania」といわれても理解できないため、デバイスからDNSサーバにIPアドレスを問い合わせます。
- DNSサーバがドメイン名に対応するIPアドレスに変換してコンピュータに返します。(=名前解決)
- デバイスからIPアドレスを有するコンピュータにWebページのデータファイルを要求します。
- WebサーバからWebページのデータファイルが返されます。
- コンピュータがデータファイルを表示する。
用語解説
IPアドレスからドメイン名への変換、またはドメイン名からIPアドレスへの変換するを「名前解決」といいます。そして、ドメイン名をIPアドレスに変換することを「正引き」、IPアドレスをドメイン名に変換することを「逆引き」といいます。
DNSサーバには2種類ある
DNSサーバには2種類あります。
DNSキャッシュサーバ(フルサービスリゾルバ)
ドメイン名のIPアドレスを問い合わせる役割があるDNSサーバです。権威DNSサーバにアクセスしてIPアドレスを問い合わせてデバイスに返します。基本的にはインターネットプロバイダが運用しています。一度問い合わせた情報を一定期間保持して再利用する「キャッシュ」という仕組みが用いられているため「キャッシュDNSサーバ」と呼ばれます。
権威DNSサーバ(コンテンツサーバ/ネームサーバー)
ドメイン名とIPアドレスの対応情報を管理するDNSサーバです。ドメイン名に対応するIPアドレスが管理下にある場合、キャッシュDNSサーバに渡す役割があります。「コンテンツサーバー」や「ネームサーバ」とも呼ばれます。
権威DNSサーバは、ドメイン名の「.」で区切られた構造に合わせてツリー状の階層構造になっており、階層に対応するIPアドレスを管理しています。対応する階層と、その下位の階層に関する情報をどのサーバで保有しているかを管理しています。
DNSは、キャッシュDNSサーバが複数の権威DNSサーバにアクセスして情報を参照し、IPアドレスを特定する仕組みになっています。2種類のDNSサーバに着目し、先ほどより詳しく紹介します。
- ユーザがブラウザにドメイン名を入力する
- デバイスからキャッシュDNSサーバに対してドメイン名に紐づくIPアドレスを要求する
- キャッシュDSNサーバが入力されたドメイン名を基に権威DNSサーバに情報を確認し、該当するIPアドレスを探し始める
- キャッシュDNSサーバに情報を保有するサーバの情報が返される(=名前解決)
- キャッシュDNSサーバが得た情報を要求元のデバイスに送信する
- IPアドレスを素に、デバイスからWebサーバにWebサイトのデータを要求する
- WebサーバからWebサイトのデータが返される
- 画面にWebサイト表示させる
Webサイトの表示には、Webサイトのデータが格納されたWebサーバから、データを読み込む必要があるからです。そのためWebサーバの住所(IPアドレス)が必要になるのです。
キャッシュDSNサーバが権威DNSサーバに該当する情報が格納されたIPアドレスがあるか確認し、デバイスにはドメイン名に紐づいたIPアドレスをレスポンスします。ドメイン名からIPアドレスを導く過程を、名前解決といいます。なお、名前解決にDNSサーバ内にあるIPアドレスの一覧表が用いられます。
以上が、ユーザのURL入力からWebサイトの表示まで、コンピュータ内部で行われる処理です。2回目以降の問い合わせはキャッシュDNSサーバからレスポンスがあるため、1度目よりも速く処理されます。
ゾーンファイル
デバイスがまず問い合わせるのはキャッシュDNSサーバです。キャッシュDNSサーバが問い合わせに対応するデータを所有している場合は、それを返します。キャッシュDNSサーバ内に対応するデータがない場合は、キャッシュDNSサーバがほかのDNSサーバ、すなはち権威DNSサーバに問い合わせます。対応するデータが見つかるまで反復的に繰り返します。キャッシュDNSサーバと権威DNSサーバは協力関係にあるんですね。権威DNSサーバは、マニュアルの役割を持つ「ゾーンファイル」を所有しています。ゾーンファイルにはIPアドレスとドメイン名の対応が書かれています。
$TTL 86400
example.jp IN SOA ns1.example.jp. root.example.jp. (
2024053001
10800
3600
604800
86400
)
; example.jp
IN NS ns1.example.com.
IN NS ns2.example.com.
; mail server
IN MX 10 mail.example.com.
; IP Address
example.jp. IN A 199.50.105.1
ns1.example.jp. IN A 199.50.105.2
ns2.example.jp. IN A 199.50.105.3
mail IN A 199.50.105.4
ゾーンファイルの1行を「DNSレコード」といいます。
主なDNSレコードの種類は次のとおりです。
DNSレコードの種類 | 説明 |
SOAレコード | 管理する領域(ゾーン)に関する情報を記載した行 |
NSレコード | 管理を委託するDNSサーバ名前を記載した行 |
MXレコード | メールの配送先メールサーバを記載した行 |
Aレコード | ドメイン名に対応するIPアドレス(IPv4形式)を記載した行 |
AAAAレコード | ドメイン名に対応するIPアドレス(IPv6形式)を記載した行 |
CNAMEレコード | ドメイン名の別名を記載した行 |
PTRレコード | IPアドレスに対応するドメイン名を記載した行(Aレコードの逆) |
HINFOレコード | ドメイン名に割り当てられたデバイスの追加情報(ハードウェア(CPU)の情報やOSの情報)を記載した行 |
WKSレコード | ドメイン名に割り当てられたデバイスで動くサービスを記載した行 |
TXTレコード | コメントなどを記載した行 |
DNSサーバの設定方法
DNSサーバの設定とは、ドメイン名とIPアドレスを紐づけ、インターネットで利用できるようにする設定です。ドメイン名とIPアドレスを紐づけるのをどのDNSサーバで管理するかを設定します。レンタルサーバでドメインを利用する場合はドメイン名をどのレンタルサーバで利用するかというものと捉えて問題ありません。
DNSサーバを設定することでドメイン名の「名前解決」が可能になるため、Webサイトにアクセスできるようになります。
ドメインサービスでの設定
ドメイン名の情報をどのDNSサーバで管理するかを指定します。利用するレンタルサーバのネームサーバを入力して設定する場合が多いです。
サーバサービスでの設定
レンタルサーバではDNSサーバにドメイン名とIPアドレスを紐づけます。この紐づけ情報を「DNSレコード(リソースレコード)」といい、IPアドレスなどの情報を設定します。多くの場合、レンタルサーバでドメイン名の利用設定を行うとDNSレコードも自動で設定されます。そのため、一般的にはDNSレコードを意識する必要はありません。
DNSサーバを機能させるには、次の手順を踏む必要があります。契約したサーバ会社から提供されるネームサーバを設定しましょう。
- バリュードメイン内のコントロールパネルで「登録しているドメイン一覧」項目から「ネームサーバ」を選択する
- ネームサーバを変更する
レンタルサーバを利用している場合は、レンタルサーバが提供するネームサーバに変更します。 - DNSレコードを変更するため、コントロールパネルの「DNS/URL」を選択する
- 変更したネームサーバから使用するDNSを選択する
DNS設定画面から「サービス内サーバの自動DNS設定」を選択し、使用するDNSサーバを入力すれば設定完了です。
ITスキルの習得方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。