インターネットと World Wide Web は、データや情報を検索して共有するためにコンピューター言語、コード、Web ブラウザーに依存する未開のフロンティアです。インターネットの最も基本的な手段の 1 つは、ドメイン ネーム システム ( DNS)です。 (多くの人は「DNS」が「Domain Name Server」の略だと思っていますが、実際には「Domain Name System」の略です。)
DNS は、コンピューターがインターネットや多くのプライベート ネットワーク上でデータを交換する方法に関する一連の標準内のプロトコルであり、TCP/IP プロトコル スイートとして知られています。その目的は、「 computerbasic.click 」のようなわかりやすいドメイン名を、コンピュータがネットワーク上で相互に識別するために使用する 70.42.251.42 などのインターネット プロトコル (IP) アドレスに変換するのに役立つため、極めて重要です。簡単に言えば、名前と数字を照合するシステムです。
DNS の概念は、インターネットの電話帳のようなものです。この種の方法検索システムがなければ、世界中のインターネット上に散在するデータの仮想的な平原や密集した都市をふるい分けるために、はるかに複雑で難解な手段に頼らなければならなくなるでしょう…そして、それができないことは賭けてもいいでしょう。特に現在では何億ものドメイン名が存在するので、同じくらい楽しいです 。
DNS サーバーがなければ、インターネットはすぐにシャットダウンしてしまいます。しかし、コンピューターはどの DNS サーバーを使用するかをどのようにして知るのでしょうか?通常、ホーム ネットワーク、インターネット サービス プロバイダー (ISP)、または WiFi ネットワークに接続すると、コンピュータのネットワーク アドレスを割り当てるモデムまたはルーターも、重要なネットワーク構成情報をコンピュータまたはモバイル デバイスに送信します。この構成には、デバイスが DNS 名を IP アドレスに変換するときに使用する 1 つ以上の DNS サーバーが含まれています。
ここまで、DNS の重要な基本について説明しました。この記事の残りの部分では、ドメイン ネーム サーバーと名前解決について詳しく説明します。独自の DNS サーバーの管理の概要も含まれています。まずは、IP アドレスがどのように構成されているか、そしてそれが名前解決プロセスにとってどのように重要であるかを見てみましょう。
DNS サーバーと IP アドレス
ドメイン ネーム サーバー (DNS サーバー) の主な仕事は、ドメイン名を IP アドレスに解決 (変換) することであることを学びました。これは簡単な作業のように思えますが、次の点を除けば実際はそうなのです。
- 現在、何十億ものIP アドレスが使用されており、ほとんどのマシンには人間が読める名前も付けられています。
- DNS サーバーは、インターネット上で常に数十億の DNS クエリを (累積的に) 処理しています。
- 毎日何百万人もの人々がドメイン名や IP アドレスを追加したり変更したりしています。
処理すべきことが非常に多いため、DNS サーバーはネットワーク効率とインターネット プロトコルに依存しています。 IP の効果の一部は、ネットワーク上の各マシンが、Internet Assigned Numbers Authority (IANA) によって管理される IPV4 および IPV6 標準の両方で一意の IP アドレスを持つことです。 IP アドレスを認識する方法は次のとおりです。
- IPV4 標準の IP アドレスは、70.74.251.42 のように、3 つの小数点で区切られた 4 つの数字で構成されます。
- IPV6 標準の IP アドレスは、2001:0cb8:85a3:0000:0000:8a2e:0370:7334 のように、コロンで区切られた 8 つの 16 進数 (基数 16) で構成されます。 IPV6 はまだ非常に新しい標準であるため、この記事ではより一般的な IPV4 に焦点を当てます。
- IPV4 番号の各数値は「オクテット」と呼ばれます。これは、ネットワーク トラフィックのルーティングに使用される 8 桁の基数 2 (2 進数) の数値に相当する基数 10 であるためです。たとえば、42 と書かれたオクテットは 00101010 を表します。2 進数の各桁は、右から左に読むと、2 から 27 までの特定の 2 のべき乗のプレースホルダです。つまり、00101010 には、21、23、25 が 1 つずつあることになります。したがって、10 進数の同等の値を取得するには、21 + 23 + 25 = 2 + 8 + 32 = 42 を加算するだけです。
- 各オクテクトの値の可能性は 0 から 255 までの 256 通りだけです。
- 特定のアドレスと範囲は、IANA によって予約済み IP アドレスとして指定されています。これは、それらが IP における特定の役割を担っていることを意味します。たとえば、IP アドレス 127.0.0.1 は、現在使用しているコンピュータを識別するために予約されています。したがって、127.0.0.1 と会話することは、単に自分自身と会話していることになります。
一貫した連絡先を必要とするWeb サーバーおよびその他のコンピューターは、静的 IP アドレスを使用します。これは、システムがオンラインの場合、そのシステムのネットワーク インターフェイスに常に同じ IP アドレスが割り当てられることを意味します。インターフェイスが常に同じ IP アドレスを取得できるようにするために、IP はそのアドレスをそのネットワーク インターフェイスのメディア アクセス コントロール (MAC) アドレスに関連付けます。有線と無線の両方のすべてのネットワーク インターフェイスには、メーカーによって固有の MAC アドレスが埋め込まれています。
ここで、DNS の方程式のもう一方の側面、つまりドメイン名を見てみましょう。
以下は、コンピュータの IP アドレスを見つける方法に関するヒントです。静的 IP の使用を選択しない限り、アドレスは定期的に変更されることに注意してください (エンドユーザーにとってはまれです)。
- Windows — ユーザー インターフェイスをクリックしてネットワーク インターフェイス設定を見つけることもできますが、IP アドレスを簡単に見つける方法の 1 つは、アクセサリからコマンド プロンプト アプリケーションを開き、次のコマンドを入力することです: ipconfig
- Mac — [システム環境設定] を開き、[ネットワーク] をクリックし、現在のネットワーク接続 (横にある緑色の点) が選択されていることを確認し、[詳細設定] をクリックして、[TCP/IP] タブをクリックします。
- Linux または UNIX — コマンド プロンプトをまだ持っていない場合は、XTERM や iTerm などのターミナル アプリケーションを開きます。コマンド プロンプトで、次のコマンドを入力します: ifconfig
- WiFi を使用しているスマートフォン— 携帯電話のネットワーク設定を確認してください。これは、電話機のオペレーティング システムのバージョンによって異なります。
ホーム ネットワークまたは小規模なローカル ネットワークを使用している場合、アドレスはおそらく 192.168.xx、172.16.xx、または 10.xxx (x は 0 ~ 255 の数字) の形式になることに注意してください。これらは各ローカル ネットワークで使用される予約アドレスであり、そのネットワーク上のルーターがインターネットに接続します。
ドメイン名
お気に入りの Web サイトすべてのIP アドレスを覚えなければならないとしたら、おそらく気が狂ってしまうでしょう。人間は数字の列を覚えるのがそれほど得意ではありません。しかし、私たちは単語を覚えるのが得意なので、そこでドメイン名が役に立ちます。おそらく、次のような何百ものドメイン名が頭の中に保存されているでしょう。
- computerbasic.click — 私たちのお気に入りのドメイン名
- google.com — 世界で最も使用されているドメイン名の 1 つ
- mit.edu — 一般的な EDU 名
- bbc.co.uk — 国コード UK を使用した 3 つの部分からなるドメイン名
ドメイン名は、ドット (ピリオド) で区切られた文字列として認識されます。ドメイン名の最後の単語はトップレベル ドメインを表します。これらのトップレベル ドメインは、ルート ゾーン データベースと呼ばれるもので IANA によって管理されています。これについては後ほど詳しく調べます 。トップレベル ドメインは 1,000 以上ありますが、最も一般的なもののいくつかを以下に示します。
- COM — 商用 Web サイトですが、誰でも利用できます
- NET — 誰でも利用できるネットワーク Web サイト
- ORG — 非営利団体の Web サイトですが、誰でも利用できます
- EDU — 学校および教育機関に限定
- MIL — 米軍に限定
- GOV — 米国政府に限定
- 米国、英国、RU、およびその他の 2 文字の国コード– それぞれがそれぞれの国のドメイン名当局に割り当てられます
ドメイン名では、トップレベル ドメインの前に追加する各単語とドットの組み合わせが、ドメイン構造のレベルを示します。各レベルは、そのドメイン レベルを管理するサーバーまたはサーバーのグループを指します。たとえば、ドメイン名の「howstuffworks」は、COM トップレベル ドメインの 2 番目のレベル ドメインです。
組織は、CO に基づく BBC のドメインである「bbc.co.uk」のように、そのインターネット プレゼンスをさらに組織化するサブドメインの階層を持っている場合があります。これは、英国の国コードを担当するドメイン名当局によって作成された追加レベルです。
www や mail など、ドメイン名の左端の単語はホスト名です。これは、ドメイン内の特定のマシン (特定の IP アドレスを持つ) の名前を指定します。通常は特定の目的専用です。特定のドメインには、すべてがそのドメインに固有である限り、数百万のホスト名が含まれる可能性があります。
「http」部分は Hypertext Transfer Protocol の略で、ユーザーが訪問している Web サイトに情報を送信するときに使用するプロトコルです。最近では、情報が暗号化された安全なプロトコルで送信されていることを示す「https」を目にする機会が増えています。これは、ウェブサイトにクレジット カード番号を提供する場合に特に重要です 。
後でドメイン名の作成方法を見てみると、ドメインの登録の一部で、そのドメイン内のホスト名とサブドメインを解決する権限を持つ 1 つ以上のネーム サーバー (DNS サーバー) を特定する必要があることがわかります。 。通常、これは独自の DNS サーバーを持つホスティング サービスを通じて行います。次に、これらの DNS サーバーがドメインをどのように管理するか、またインターネット上の DNS サーバーがどのように連携して IP アドレス間でトラフィックが適切にルーティングされるかを見ていきます。
分散システム
すべてのドメインにはリクエストを処理するドメイン ネーム サーバーがあり、その DNS サーバーのデータベース内の記録を管理する担当者または IT チームがいます。 DNS サーバーほど多くのリクエストを受け取るデータベースは地球上に他にありません。DNS サーバーはこれらすべてのクエリを処理しながら、毎日何百万もの人々からのデータ更新も処理します。これは、DNS の最も驚くべき部分の 1 つです。DNS は、世界中の数百万台のマシン上に完全に分散され、何百万人もの人々によって管理されているにもかかわらず、単一の統合されたデータベースのように動作します。
DNS の管理は非常に大仕事のように思えるため、ほとんどの人は IT プロフェッショナルに任せる傾向があります。ただし、DNS の仕組みと、DNS サーバーがインターネット上にどのように分散されるかについて少し学ぶことで、自信を持って DNS を管理できるようになります。最初に知っておくべきことは、DNS サーバーが存在するネットワーク上での DNS サーバーの目的は何かということです。 DNS サーバーは、主なタスクとして次のいずれかを実行します。
- 独自のネットワークで最も頻繁に使用されるドメイン名と IP アドレスの小規模なデータベースを維持し、他のすべての名前の名前解決をインターネット上の他の DNS サーバーに委任します。
- IP アドレスを、その DNS サーバーが権限を持つすべてのホストおよびサブドメインとペアにします。
最初のタスクを実行する DNS サーバーは、通常、インターネット サービス プロバイダー (ISP) によって管理されます。前述したように、ISP の DNS サーバーは、オンラインになるとすぐに DHCP から取得されるネットワーク構成の一部です。これらのサーバーは ISP のデータ センターに常駐し、リクエストを次のように処理します。
- データベースにドメイン名と IP アドレスがある場合は、名前自体を解決します。
- データベースにドメイン名と IP アドレスがない場合は、インターネット上の別の DNS サーバーに接続します。これを複数回行う必要がある場合があります。
- 別の DNS サーバーに接続する必要がある場合は、同じドメイン名に対する後続のリクエストを迅速に解決できるように、ルックアップ結果を一定期間キャッシュします。
- 適切な検索を行ってもドメイン名が見つからなかった場合は、その名前が無効であるか存在しないことを示すエラーが返されます。
上記の 2 番目のカテゴリの DNS サーバーは、通常、Web、メール、その他のインターネット ドメイン ホスティング サービスに関連付けられています。熱心な IT 専門家の中には、独自の DNS サーバーをセットアップして管理する人もいますが、ホスティング サービスのおかげで、技術に詳しくない人でも DNS 管理がはるかに簡単になりました。
特定のドメインを管理する DNS サーバーは、そのドメインの Start of Authority (SOA) と呼ばれます。時間の経過とともに、SOA でのホストの検索結果が他の DNS サーバーに伝播し、さらにその DNS サーバーが他の DNS サーバーに伝播するというように、インターネット全体に伝播していきます。
この DNS サーバーの偉大な Web には、特定のトップレベル ドメインのドメイン階層の最上位から始まるルート ネーム サーバーが含まれています。各トップレベル ドメインに対して選択できるルート ネーム サーバーは数百あります。 DNS ルックアップはルート ネーム サーバーで開始する必要はありませんが、ドメインの SOA を追跡するための最後の手段としてルート ネーム サーバーに接続できます。
名前解決プロセスを向上させるために DNS サーバーがどのように相互接続されるかがわかったので、次に、DNS サーバーをドメインの認証局として構成する方法を見てみましょう。
新しいドメイン名の作成
新しいドメイン名を作成する場合は、次のことを行う必要があります。
- Whois データベースを使用して、まだ登録されていない一意のドメイン名を見つけます。 Network Solutions など、無料の Whois データベース検索を提供するサイトがいくつかあります。検索結果が空の場合は、ドメイン名が使用可能であることがわかります。
- ドメイン名をレジストラに登録します。選択できるレジストラは多数あり、ドメインの COM、NET、ORG バージョンを同時に登録したり、2 年以上登録したり、同じ会社でドメインをホスティングしたりする場合に特別価格を提供するレジストラもあります。 。
- レジストラとは別の会社でドメインをホストしている場合は、ドメイン名がホスティング会社の正しいホスト名またはIP アドレスを指すようにレジストラを構成します (A レコードに関する以下の情報を参照してください) 。
SOA が別の場所にある場合でも、独自のシステム上にある場合でも、DNS 設定を拡張および変更して、サブドメインを追加したり、電子メールをリダイレクトしたり、他のサービスを制御したりできます。この情報は、DNS サーバー上のゾーン ファイルに保存されます。独自のサーバーを実行している場合は、おそらくテキスト エディターでゾーン ファイルを手動で編集する必要があります。現在、多くのレジストラは、ドメインの DNS を管理するために使用できる Web インターフェイスを備えています。追加する新しい設定はそれぞれレコードと呼ばれ、DNS サーバー用に設定できる最も一般的なタイプのレコードは次のとおりです 。
- ホスト (A) — これは、IP アドレスからホスト名への基本的なマッピングであり、あらゆるドメイン名に不可欠なコンポーネントです。
- 正規名 (CNAME) — これはドメインのエイリアスです。そのエイリアスにアクセスする人は誰でも、A レコードに示されているサーバーに自動的にリダイレクトされます。
- Mail Exchanger (MX) — 電子メール トラフィックを特定のサーバーにマッピングします。別のホスト名または IP アドレスを示す可能性があります。たとえば、ドメインの電子メールに Google を使用している人は、ghs.google.com を指す MX レコードを作成します。
- ネーム サーバー (NS) — これには、ゾーンのネーム サーバー情報が含まれます。これを構成すると、世界中の他の DNS サーバーからドメインのルックアップ情報をキャッシュするときに、サーバーは他の DNS サーバーに、自分のドメインがそのドメインの最終認証局 (SOA) であることを知らせます。
- Start of Authority (SOA) — これは、ゾーンのプライマリ ネーム サーバーおよびその他の情報を含む、各ゾーン ファイルの先頭にある 1 つの大きなレコードです。レジストラまたはホスティング会社が DNS サーバーを実行している場合、これを管理する必要はありません。独自の DNS を管理している場合は、DNS SOA レコードの構造に関するこの記事を使用して、そのためのヒントを確認することができます 。
以下は、ゾーン ファイルをテキスト エディタで直接編集している場合にどのように見えるかを示す例です。中央の列 (各行の 2 番目の項目) には、上記のレコード タイプが含まれていることに注意してください。左の列に「@」が表示されている場合は、特に指定されていない限り、レコードがすべてのケースに適用されることを意味します。
@ NS auth-ns1.computerbasic.click
@ NS auth-ns2.computerbasic.click
@MX10メール
メール A 209.170.137.42
vip1A 216.183.103.150
www CNAME vip1
一般的なユーザーは、おそらく MX レコードと CNAME レコードを最大限に活用するでしょう。ドメインに Google Apps などを使用することを選択した場合、MX レコードを使用すると、メール サービスをホスティング会社以外の場所に指定できます。 CNAME レコードを使用すると、ドメインのホスト名が他のさまざまな場所を指すようにできます。これには、google.com にリダイレクトするように google.example.com を設定することや、独自の IP アドレスを持つ専用のゲーム サーバーをセットアップして gameserver.example.com のようなものを指すことが含まれます。
DNS は常に進化しています
DNS は静的な概念ではないことを理解する必要があります。 2018 年後半、ICANN はついに DNS の新しいセキュリティ機能を公開しました。つまり、これらの変更は、技術者の間ではルート ゾーン キー署名キー (KSK) として知られる、ドメイン ネーム システム セキュリティ拡張機能 (DNSSEC) プロトコルで使用される暗号キーに影響を与えました。 ICANN によれば、セキュリティの改善が必要だったのは、何百万もの新しい相互接続デバイスをインターネットの中に持ち込むIoT の影響もあり、ネットワークが急速に変化し拡大しているためです 。
犯罪を志向するハッカーは、DNS システムに侵入して個人情報を盗んだり、DNS ハイジャックなどの攻撃で単純に大混乱を引き起こそうとすることが多いため、これらの安全対策は非常に重要です。つまり、防御を重視するコンピュータ ユーザーも IT プロフェッショナルも同様に、DNS ポイズニング攻撃やサービス拒否攻撃などを防ぐための予防策について最新の情報を入手する必要があります 。