サイトアイコン ITC Media

【ネットワークの基本】DNSとは?その種類やリスク、対策を徹底解説

(最終更新月:2023年2月)

✔このような方へ向けて書かれた記事となります

「DNSとは何だろうか?」

「DNSの仕組みってどうなっているの?」

「DNSサーバーのセキュリティリスクと対策について知りたい」

✔当記事を通じてお伝えすること

当記事では、DNSについての基本はもちろん、DNSサーバーの仕組みやそのセキュリティ上のリスクなどについても徹底的に解説していきます。

筆者プロフィール

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

DNSについての基礎知識5選

DNSについての基本事項を見ていきましょう。

ご紹介するのはDNSだけでなく、DNSと関係の深い用語など。

DNSとは?

DNSとは、Domain Name Systemの略称で、インターネット上でドメイン名とIPアドレスを対応付けるためのシステムです。

人間が覚えやすいドメイン名を入力することで、そのドメイン名に対応するIPアドレスで通信をがしやすくなります。

DNSサーバーは、ドメイン名をIPアドレスに変換するための情報を持っており、クライアントがドメイン名を入力すると、DNSサーバーに問い合わせて対応するIPアドレスを取得します。

このIPアドレスを使って、クライアントとサーバー間で通信がおこなわれるのです。

ドメイン名とは?

ドメイン名とは、インターネット上で特定のウェブサイトやメールアドレスを識別するための文字列のこと。

例えば、”itc.tokyo”や”yahoo.co.jp”などがドメイン名にあたります。

IPアドレスは単なる数字の羅列で覚えにくいので、人が覚えやすいようドメインを使っているのです。

ドメイン名とIPアドレスの関係とは?

ドメイン名は、端末やサーバーのIPアドレスと紐付けられています。

その紐付いている情報をDNSサーバーで管理するのです。

我々ユーザー(クライアント)がドメイン名を入力すると、DNSサーバーがそのドメイン名に応じたIPアドレスを教えてくれています。

クライアントとサーバー間の通信は、IPアドレスによっておこなわれます。

DNSの仕組み

DNSでは以下のような流れになります。

DNSの役割

DNSサーバーの役割は、インターネット上のドメイン名をIPアドレスに変換し、通信を行うための情報を提供すること。

DNSサーバーは別名でネームサーバと呼ばれることもあり、例えばムームードメインでは、以下のような箇所で問い合わせ先としてのDNSサーバを設定できます。

2種類のDNSサーバー

DNSサーバーの種類についても見ていきましょう。

なぜならDNSサーバーは、大きく分けて2つの種類があるからです。

オーソリティDNSサーバー

オーソリティDNSサーバーは、ドメイン名とIPアドレスの対応情報を持っているDNSサーバーです。

クライアントからの問い合わせに対して、正確な情報を提供するのが役割。

それぞれの独自ドメインにひとつは対応しているオーソリティDNSサーバーが存在します。

キャッシュDNSサーバー

キャッシュDNSサーバーは、一般ユーザーとオーソリティDNSサーバーの間に位置するDNSサーバーといえます。

キャッシュサーバーの役割が、頻度の高い問い合わせに対して、高速で返答することだからです。

仕組みとしては、オーソリティDNSサーバー上の情報を一定期間保持し、過去と同じ問い合わせがある場合にはキャッシュから情報を返します。

一般的に、インターネットサービスプロバイダー(ISP)が提供するDNSサーバーはキャッシュDNSサーバーです。

そのため、クライアントがWebサイトにアクセスする際には、まずISPのDNSサーバーに問い合わせが行われるのです。

DNSレコード全8種

DNSレコードの種類を見ていきましょう。

DNSレコードにより、ドメインとIPアドレスが紐づいているのです。

Aレコード

ドメイン名とIPv4アドレスを紐付けるレコードです。

AAAAレコード

ドメイン名とIPv6アドレスを紐付けるレコードです。

MXレコード

メールを受け取るメールサーバーの情報を記録するレコードです。

CNAMEレコード

別のドメイン名と紐付けるレコードです。

一つのIPアドレスに複数のドメイン名を紐付けたい場合に使用します。

NSレコード

ドメイン名とDNSサーバーの情報を紐付けるレコードです。

DNSサーバーに問い合わせる際に使用します。

TXTレコード

任意のテキスト情報を格納することができるレコードです。

主にセキュリティや認証に使用されます。

Google系のサービスなどと連携する場合に使われることが多いです。

SRVレコード

特定のサービスがどのようなポート番号で提供されているかを示すレコードです。

主にVoIPやインスタントメッセンジャーなどのアプリケーションで使用されます。

PTRレコード

IPv4アドレスまたはIPv6アドレスとドメイン名を対応付けるレコードです。

主に逆引きDNSに使用されます。

DNSサーバーを高速化する方法

DNSサーバーを高速化する方法をみていきます。

専門的なことも多いですが、Webサービス構築を検討しているのであれば、概要は知っておくべきです。

キャッシュの最適化

キャッシュDNSサーバーは、一度問い合わせた情報を一定期間保持します。

キャッシュDNSを使えば、アクセスの多いサイトへのレスポンスを早められるのです。

ただしデメリットとしては、情報が古い場合があること。

キャッシュの保存期間を短くし、更新頻度を高め、正確な情報を提供することも大切です。

グローバルDNSサービスの利用

グローバルDNSサービスは、世界中に分散されたサーバーを利用して、高速で信頼性の高いDNSサービスを提供します。

このサービスを利用することで、クライアントが近くのサーバーに問い合わせることができ、通信速度を向上させることができるのです。

DNSキャッシュの配置

DNSキャッシュをクライアント側に配置することで、より高速な通信が実現可能。

この方法を利用する場合、キャッシュの更新頻度が低下することがあるため、更新頻度の設定を正しくおこないましょう。

DNSサーバーにおけるセキュリティリスク

DNSサーバーにおけるセキュリティリスクについてみていきましょう。

DNSサーバーには知っておくべきセキュリティ上のリスクが存在するのです。

キャッシュポイズニング攻撃

キャッシュポイズニング攻撃とは、悪意のある攻撃者がDNSサーバーに不正な情報を送信し、情報を置き換えてしまう攻撃のこと。

この攻撃によって、アクセスを試みたユーザーが意図しないWebサイトへ飛ばされたりしたり、悪意のあるWebサイトに誘導されたりすることがあります。

DNSサーバーの乗っ取り

攻撃者がDNSサーバーを乗っ取り、不正な情報を提供します。

キャッシュポイズニング攻撃と同様の被害を引き起こす可能性があるリスクです。

ドメイン名のハイジャック

攻撃者がドメイン名を不正に登録し、DNSサーバーに登録された情報を改ざんします。

灯篭情報を改ざんすることでドメイン名を乗っ取ることができるのです。

この攻撃によって、ユーザーが意図しないWebサイトにアクセスしたり、機密情報を盗まれたりすることがあります。

DNSサーバーにおけるセキュリティリスクへの対策

DNSサーバーへのセキュリティリスクに対する対応策をご紹介します。

Webサービスの運営では、できる限り対策を施すことがおすすめです。

DNSSEC

DNSSECは、Domain Name System Security Extensionsの略称で、DNSサーバーにおける情報の改ざんを防止するための技術です。

どのように防止するのかというと、オーソリティDNSサーバーに対しての情報にデジタル署名を付与し、情報が正しいことを証明します。

キャッシュサーバー上でのリスクには対応しづらいものの、キャッシュポイズニング攻撃などの被害を防止し、情報漏洩や不正アクセスを防止できる技術です。

ファイアウォール

ファイアウォールを利用することで、外部からの不正なアクセスを防止することができます。

なぜならファイアウォールは、ネットワーク通信の出入り口を見張り、意図しないアクセスをブロックできるから。

具体的にはアクセス元のIPアドレスやアクセスできるポート(出入口)を指定できる技術のこと。

ファイアウォールを使うことで、不正なアクセスが防げるようになります。

DNSキャッシュ

キャッシュの最適化をおこなうことで、正確な情報を提供することができます。

最適化により情報の更新頻度を高めて、正確な情報を把握するのです。

不正の早期発見につなげることができ、キャッシュポイズニング攻撃などへの対策に有効な方法のひとつといえます。

まとめ:DNSの仕組みを知り、Webアプリ運営をスムーズに使用

当記事の内容をまとめます。

DNSとはよく聞くけど、なんとなく聞き流していた人も多いのではないでしょうか。

実はDNSは我々の身近なところで、せっせと働いていたのです。

ぜひDNSについての概要を理解して、Web制作に役立ててください。

モバイルバージョンを終了