ネットワーク

DNSの資源レコードとDNSラウンドロビンの関係を学ぼう!

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の資源レコードを記載致します。

DNSの代表的な資源レコード

色々な資源レコードの種類がありますが、Aレコードや、CNAMEはDNSのベースとなるレコードなので覚えておくと良いですね。

DNSKEYDNSキャッシュポイズニングという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ラウンドロビンの仕組み
(シンプルにするためLAN内のイメージにしてます)

但し、DNSラウンドロビンはWebサーバの負荷状態(応答時間やデータ通信量)やセッション状態などを考慮できる訳では無いので、DNSラウンドロビン先に更にロードバランサ―(LB)などを指定して、ロードバランサ―がWebサーバの負荷状態やセッション状態を管理して、最適なWebサーバに接続を振り分けたりします。

まとめ

今回はDNSにおける資源レコードの種類とDNSラウンドロビンの関係に関して調べてみました。DNSで管理されている様々な情報(レコード)を使うことで、インターネットの世界が成立しているのですね。

DNSの管理をしっかりやらないとWebサーバまで繋がらなくなってしまうので、正しく管理していくことが重要なんですね。

以上です!

参照URL)

・DNSSEC(JPNIC)

-ネットワーク