DNS(Domain Name Server)はコンピュータのホスト名とIPアドレスを紐付けてくれるネットワークには欠かせない仕組みですね。PCやスマホからインターネットのWebサーバにアクセスする時にURLからWebサーバのIPアドレスを裏でDNSに問合せてます。
「そんなことは知っている!」という方も多いかと思いますが、実際にDNSでどのようにホスト名とIPアドレスが管理されているのか?他にDNSは何を管理しているのか?そんな疑問を解決したいです。
今回はDNSで管理している「資源レコード」と資源レコードを使った「DNSラウンドロビン」の仕組みに関して学んでみましょう!
DNSとは?
最初に記載した通り、DNSとは「 URL(FQDN)のIPアドレスを教えてくれるシステム 」のことで、階層構造(ドメインツリー)なども重要な仕組みとしてあります。
詳細は以下の記事でまとめているので、ご参照ください!
DNSの資源レコードとは?
DNSに登録されている情報のことをDNSの資源レコードと言います。DNSには、ホスト名からのIPアドレス問合せ以外にも様々な内容の問合せを行います。その問い合わせる内容を資源レコードで区別します。
資源レコードはDNSサーバの管理する範囲(ゾーンと呼びます)の管理情報が記載されたゾーンファイルに保存され、その内容を問合せに対して応答します。
以下に代表的なDNSの資源レコードを記載致します。
色々な資源レコードの種類がありますが、Aレコードや、CNAMEはDNSのベースとなるレコードなので覚えておくと良いですね。
DNSKEYはDNSキャッシュポイズニングというDNSの応答を書き換えて 悪意あるサイトへ 誘導されてしまう攻撃に対してのセキュリティ対策の一つ(DNSSEC)として使われます。DNSSECでは、DNSKEYの公開鍵を使って、DNSから応答があった署名を複合し、問い合わせているDNSが正しいものであるか判断することができます。
DNSラウンドロビンとは?
DNSでは、複数のレコードを対応させることもできます。一つのホストにAレコードとして複数のIPアドレスを割り付けるイメージです。
www.sample.com IN A 192.168.0.1
www.sample.com IN A 192.168.0.2
www.sample.com IN A 192.168.0.3
この仕組みを使うと複数のWebサーバに対して負荷分散を行うことができます。これがDNSラウンドロビンの仕組みです!
DNSラウンドロビンはDNSの問合せに対してDNSが順番にIPアドレスを返信していきます。この仕組みを使うと複数のWebサーバに対して負荷分散を行うことができます。
但し、DNSラウンドロビンはWebサーバの負荷状態(応答時間やデータ通信量)やセッション状態などを考慮できる訳では無いので、DNSラウンドロビン先に更にロードバランサ―(LB)などを指定して、ロードバランサ―がWebサーバの負荷状態やセッション状態を管理して、最適なWebサーバに接続を振り分けたりします。
まとめ
今回はDNSにおける資源レコードの種類とDNSラウンドロビンの関係に関して調べてみました。DNSで管理されている様々な情報(レコード)を使うことで、インターネットの世界が成立しているのですね。
DNSの管理をしっかりやらないとWebサーバまで繋がらなくなってしまうので、正しく管理していくことが重要なんですね。
以上です!
参照URL)