はじめてさわる人のためのDNS(ドメインネームシステム)入門

ご注意(2019年10月17日追記)

この記事に紹介されているDNS「DOZENS」ですが、2019年10月末日をもってサービスを終了します。「ムームードメイン」や「お名前.com」「Google Domains」といったサービスの中で使えるDNSや、AWSの「Amazon Route 53」といったサービスのご利用をご検討ください。

基本的にレコードの設定方法はここで紹介されているものとほぼ共通していますので、設定の参考になさってください。


あなたはDNS(ドメインネームシステム)の設定をさわったことはありますか? 私のようなウェブデザイナーであっても、制作するサイトをホスティングするサーバやサイトの独自ドメインを用意・手配するとなると、その設定は避けては通れないところです。今回は「黒い画面なんてムリムリ」「サーバ周りのことはできるだけ触りたくない」そんなあなたに、DNS設定の入り口に立ってもらうための記事です。

とはいえ私もDNSを自前で用意したりしたことはありませんし、その働きを細かく掴んでいるわけではありません。なるべくおかしな表現はしないようにしますが、もしもおかしな点があればお知らせくださいませ…。

DNSってどんな働きをするの?

あなたがウェブサイトを閲覧したりメールを送ったりするときに、必要になる情報はなんでしょう?

そう、ドメインです。このサイトなら「suikoudesign.com」という文字列、これがドメインですね。

このドメインというのは通常「ある特定のサーバ」を指しています。ウェブサイトのデータを置いてるサーバだったり、メールをやり取りするサーバだったり、まあいろんな働きをするサーバがこの世にはあります。

これらのサーバには所在地があります。IPアドレスというもので、例えば198.51.100.24といったような数字の羅列がそれにあたります(左のものは正確にはIPv4アドレス、というものです)。これはウェブサーバやメールサーバであれば、通常固定されているものであり、そのサーバ固有の番号です。なので、私たちはそのIPアドレスが分かればこのブログにアクセスできるはず…なのですが、こんな番号はとても覚えにくいですよね。

だから、この198.51.100.24にあるサーバに「suikoudesign.com」という名札をつけて、「suikoudesign.comを見たい」とリクエストすれば「198.51.100.24にご案内しますね」と結びつけてくれる、そんな仕組みがあるわけです。まさにそのドメインとIPアドレスをはじめとするいろんな情報を結びつけてくれるのが、今日の主役であるDNS(ドメインネームシステム)の役割なのです。

DNSはどんなときに設定するの?

独自ドメインを扱うようになれば、多くの場合そのドメインとサーバの結びつけの作業が必要になります。そのときにDNSをさわることになりますが、私の場合はあまり意識しなくてもよいようになっていました。というのは私の場合ドメイン登録もレンタルサーバもすべてさくらインターネットにお願いしていたからです。さくらでドメインを取得し、これをさくらのレンタルサーバで利用する場合、すべてはマニュアルにしたがって、さくらのレンタルサーバ側の管理画面で済んでしまうようにできています。そこでDNSを意識する必要はほとんどなかったと思います。

しかし例えば他のドメイン登録業者(専門用語でレはジストラ、と呼びます)である「お名前.com」で取得したドメインをさくらのレンタルサーバで使用したい、というときに、私たちはDNSを意識する必要が出てきます。さらに言うと、同じドメインでもウェブサーバとメールサーバを分離したい場合や、サブドメインを別のサーバで運用したい(たとえばexample.comをサーバAで・blog.example.comをサーバBで運用したい)場合にはしっかりとDNSの基本を押さえる必要があります。

DNSから、ドメインをいろんなサーバへ向ける設定をしてみよう

あなたは「お名前.com」などのドメインサービス業者と契約してドメインを取得しました。そのとき、もちろんそのドメインを「どのサーバに向けるか」を決める必要があります。それを決めるのがDNSの設定です。世の中にはたくさんのDNSがありますので、まずは「どのDNSを利用するか」を決める必要があります。通常はドメインサービス業者は自前でDNSを用意しており、デフォルトではそのDNSを利用するように設定されていると思います。

ですが今回はあえて別のDNSを利用してみることにしましょう。無料から使いはじめることができるDNSに「DOZENS(ダズンズ)」という国内サービスがあります。今回はこのDNSを利用します。簡単なステップですので、DOZENSへの会員登録(無料)をまずは済ませましょう。

DNSはさきほど書いたように、ドメインの向かう先を指示する交通整理のガードマンのような役割を果たします。まずは今回使うDOZENSのDNSにドメインを任せるその前に、ドメインの問い合わせがあったときに「どこに案内するか」を教えてあげる必要があります。これがDNSの「レコード設定」という作業です。

まずはDNSに以下のように設定したいと思います。

「example.comはどこですか」という問い合わせをもらったならば…

  1. ウェブブラウザからのリクエストならばウェブサーバA(192.0.2.15)に案内したい
  2. メール送信のリクエストならば、ウェブサーバとは別のメールサーバ(mail.example.net)に案内したい
  3. 「blog.example.com」というサブドメインへのリクエストならばAとは別のウェブサーバB(198.51.100.24)に案内したい

 

DNSがリクエストを振り分けるイメージ図

ではさっそくDOZENSの管理画面で上の要望に沿うように設定してあげましょう。

Dozensでのレコード設定手順

※以下キャプチャではexample.comに代えてsuikoudesign.comを利用しています。DOZENSではexample.comの登録はできないからです。suikoudesign.comは記事執筆現在、著者の所有する実在するドメインですが、それに当てているIPアドレス等は例示用のものであり、実際に割り当てられているものではありません。登場するドメイン名やIPアドレスは適宜、あなたが利用したい独自ドメインやサーバのIPアドレスに読み替えてください。

「Add a new domain」をクリックし、「example.com」を登録します。Domain Nameのみ登録し、後の欄はまずは空けたままでOKです。

Dozens画面キャプチャ

「Create」ボタンを押してドメインを登録したら、次はいよいよレコード(リクエストに対してDNSが指示する行き先の情報)の登録です。

Dozens画面キャプチャ

先ほど作成したドメイン名かその横の「EDIT」ボタンを押してドメインへのレコード登録画面へ。

Dozens画面キャプチャ

「+Record」ボタンを押してレコードを追加します

Record Nameは空欄のまま、Typeは「A」、Priorityは空欄、Contentに「192.0.2.15」と入力します。

Dozens画面キャプチャ

「example.com A 7200 192.0.2.15」というレコードが登録されました。これは「ウェブブラウザからのリクエストならばウェブサーバA(192.0.2.15)に案内する」という指示に相当します。Aレコードは「ドメイン名からIPアドレス(IPv4アドレス)を関連づける」ためのレコードです。なおここでの「7200」はTTL値というものです。後で説明します。

Dozens画面キャプチャ

さらに「+Record」ボタンを押してレコードを追加します。Record Nameは空欄のまま、Typeは「MX」、Priorityは「10」、Contentに「mail.example.net」と入力します。

Dozens画面キャプチャ

「example.com MX 7200 10 mail.example.net」というレコードが登録されました。これは「メール送信のリクエストならばメールサーバ(mail.example.net)に案内したい」という指示に相当します。MX(Mail Exchanger)レコードは「そのドメイン宛のメールをどこに送るか」を指示するレコードです。IPアドレスでなくホスト名で指定する必要がある点に注意が必要です。

Dozens画面キャプチャ

なお、ひとつのドメインに対してMXレコードは複数指定できます。Priorityの数字が低い順に接続がトライされる仕組みになっており、あるメールサーバが動かなくても他のメールサーバで受ける、ということができるようになっています。

「+Record」ボタンを押して最後のレコードを追加します。Record Nameに「blog」、Typeは「A」、Priorityは空欄、Contentに「198.51.100.24」と入力します。

Dozens画面キャプチャ

「blog.example.com A 7200 198.51.100.24」というレコードが登録されました。もうおわかりでしょう、「blog.example.comというサブドメインへのリクエストならばウェブサーバB(198.51.100.24)に案内する」という内容です。

Dozens画面キャプチャ

以上、DOZENSの設定が終わりました。いわばDNSに指示書を渡すことができた、という状態です。あとは取得したドメインを「DOZENSのDNSに任せるよー」という操作が必要になります。

なお、DOZENSに無料で登録できるレコードの数は12までです。

ドメインサービスの管理画面から、ドメインをDNSへ向けてみよう

DOZENSのホスト名は以下の4つです。

  • ns1.dzndns.com
  • ns2.dzndns.com
  • ns3.dzndns.com
  • ns4.dzndns.com

通常DNSは一つのサーバがダウンしてもいいように、複数台のサーバで構成されています。ひとつめのサーバが何らかの原因で動かなくなってもふたつめ、ふたつめがダメでもみっつめが…というふうに保険がかけられている、というわけです。

「お名前.com」や「ムームードメイン」などのドメインサービスの管理画面から「他のDNSを利用する」などの設定画面を見つけ出し、ネームサーバのホスト名を入力し、設定を完了します(記述内容に間違いがないかよく確かめてください。仮に間違いが見つかった場合、反映は数時間後〜数日後になるため不具合を起こすと長引くことになります)

「お名前.com」管理画面でのネームサーバ設定画面。
「お名前.com」管理画面でのネームサーバ設定画面。

これでドメイン管理業者の管理下にあるドメインがDOZENSのDNSに向きました。DNSの変更が反映されるタイミングは、ドメインにアクセスする端末によって異なります。通常数時間〜1日(数日かかる場合もあるようです)かかりますので、気長に待ちましょう。上手くいっていれば「ドメインがDOZENSのDNSに向き」「DOZENSに設定したとおりにドメインが各種サーバにつながっている」状態になるはずです。

なお正確にはドメイン登録業者(レジストラ)はより上位の機関であるドメイン管理者(レジストリ)のデータベースにドメインの情報(whois。とくにこの場合、どのDNSを使用するかという情報)を登録します。私たちがドメインをリクエストしたとき、まず私たちはレジストリのデータベースに問い合わせを行い、その後登録されているDNSに問い合わせを行います(下図)。

レジストリとレジストラ、DNSの関係図

コマンドラインから、ドメインの向かう先を問い合わせてみよう(2016年1月22日追記)

なお、DNSに対してどのようなレコードが登録されているかをコマンドラインから問い合わせることができます。DNSのトラブルシューティングには必ず使われるコマンドですので、ぜひ覚えておくとよいと思います。

Winならばコマンドプロンプト、Macならターミナルを起動し、以下のようにコマンドを書いてリターンキーを押します(ドメインは置き換えてください)

nslookup example.com

すると、私の環境では以下のように表示されました(ドメインおよびIPアドレスは仮のものです)。

Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: example.com
Address:192.0.2.15

前半2行はざっくり言うと「どのDNSに問い合わせを行ったか」を表し、後半3行はDNSから返ってきた回答を表しています。

「example.comは192.0.2.15というIPアドレスに結び付けられているよ」という回答が返ってきたというわけです。

nslookupには様々なオプションがあり、Aレコードだけでなく他のレコードを参照することもできますし、逆にIPアドレスから結び付けられているドメインを問い合わせることも可能です(これを逆引き、と呼びます。また先ほどの例のようにドメイン名からIPアドレスを引くのは正引き、と呼びます)。

とてもざっくりした説明でしたが、nslookupの詳しいところはぜひ検索して確認してみてください。

TTLってなんだろう

DNSさんは問い合わせがあるたびに、いちいち手元のメモ(設定)を参照してサーバを案内してくれる…というわけではありません。手元のメモをソラで覚えておいて問い合わせがあるとメモを見ずに答えを返します。この「ソラで覚えたデータ」のことを「キャッシュ」と呼びます。こうしてキャッシュを持っておくことで、リクエストに対する負荷を軽減しているというわけです。

しかしレコードを書き換えてもDNSはキャッシュを使ってリクエストに応えるわけで、すぐに書き換えた設定内容が反映されるわけではないことに注意が必要です。DNSがキャッシュを保持する時間はDNSで設定することが可能であり、それが先ほど登場したTTL(Time to live)です。Dozensでは7200と設定されていますが、これは「秒数」です。7200秒ですので2時間ということになります。つまり、レコードの値をいじっても、その内容の反映には最大2時間がかかると、そういうことです。

このTTL、Dozensでは有料会員でないと値を変更することができません。TTLを短く設定すればそれだけDNSに負荷がかかりますので「そこはお金で支えてね、ヨロシク」というわけです。納得ですね。

DNS設定の実際

この記事ではAレコードとMXレコードのみを取り扱いましたが、他にも様々な種類のレコードが存在しておりドメインに対して様々な情報を与えることができます。実際に送信用のメールサーバを扱う際にはSPFレコードというものの登録が必要だったり、CNAMEレコードというもので、あるサブドメインからあるドメインに転送させたり…といった工夫も必要になってくるでしょう。

DOZENSの無料で登録できるレコード数は12と言いましたが、案外レコード数というのは多くなるもので気づけば有料コースに変えなきゃいうこともあります。というかしっかり使うようになったらお金を払いましょうねということですね。

以上、DNSの入門編ということで簡単に書かせていただきました。最後に僕が利用したことがあるDNSサービスをご紹介して締めくくりとします。

いろいろなDNSサービス(というか筆者が利用したことがあるDNSサービス)

各ドメインサービス業者の提供するDNS

さくらインターネットお名前.comなどのドメイン登録業者(レジストラ)の他、「ムームードメイン」などのサービスブランドがレジストラと契約することでドメイン登録サービスを提供したりしています。これらのサービスは標準でDNSを提供している場合がほとんどであり、サービスの管理画面からレコード等の設定を行うことができるようになっています。通常こうしたサービスでドメインを取得した場合、まずデフォルトのDNSとして登録されている場合が多く、知らずのうちに利用している方も多いのではないかと思います。
一部設定項目が制限されていたり、TTLは長い時間に制限されてたりします。またDNSがダウンした時のスペアのサーバの数がひとつだけだったりする場合も多く、少し安定性に不安が出てくる場合があるかもしれません。

Route53

Amazon Web Servicesが提供するDNS。有料。

DNSへのクエリ(平たく言うと注文)数に対する課金制です。TTLは自由に設定できますが、短くするとその分クエリが増えてたくさんお金がかかると、そういう仕組みになっていたりします。ですが、切り替えのときだけTTLを短くし通常運用の時は長くするなどして費用を抑えれば問題ないでしょう。AWSゆえの堅牢性・安定性も魅力です。

Amazon Route 53(ドメインネームサーバー、DNS サービス) | AWS 

DOZENS

今回とりあげたDOZENSはレコード数さえ抑えれば無料で使え、かつTTLやALIASレコードを除けばかなり自由に設定が可能である点から入門用に最適と考え、この記事で紹介しました。また先に書いたように、スペアのサーバが3つ(計4台構成)となっており、安定した運用が期待できます。有料プランではTTLの自由な設定や日本語による技術サポートも提供されています(国内発のサービスです)。

DNSを自由に簡単に。Dozens(ダズンズ)

One Reply to “はじめてさわる人のためのDNS(ドメインネームシステム)入門”

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください