DNSラウンドロビン
読み:ディーエンエス-ラウンドロビン
外語:DNS round robin
一つのドメイン名に対して複数のIPアドレスを割り当てる、負荷分散技術の一つ。
概要
例えばトラフィックの多いWebサーバーがあり、処理を一台では裁ききれない場合、DNSラウンドロビンを用いると、トラフィックを複数のIPアドレス、つまり複数のWebサーバーに振り分けることが出来る。
目的とする機能が用意に実現できるメリットがあるが、同時に様々なデメリットも存在する。
特徴
ゾーンファイル
ゾーンファイルに、例えば次のように設定する。
hoge IN A 192.0.2.1
hoge IN A 192.0.2.2
hoge IN A 192.0.2.3
同じドメイン名hogeに対し、三つのIPアドレスが定義されたことになる。
実際の運用では、更にTTLを短めに設定し、リクエストに対する応答を頻繁に変更させることが多い。
欠点
簡単な反面、問題も多い。
- 接続ごとに接続先が変わってしまう問題
- セッション管理をしている場合は、この問題の解決が必要である。
- 暗号化通信などをしている場合、IPアドレスが変わってしまうと通信に支障が発生することがある。
- 均等な分散は不可能
- DNSラウンドロビンは簡易的な負荷分散を実現するが、均等な分散はできず、一ヶ所に偏ることもある。
- より本格的な負荷分散はロードバランサーが必要である。簡易な経穴方法としてはリバースプロクシーという方法もある。
- DNSキャッシュ時間
- TTLが長く設定されていると、以前の情報が参照される時間が長くなるため効率が落ちる。
- サーバー障害検知は不可能
- 過負荷等でサーバーがダウンしていたとしても、DNSのレベルではそれを検知できないため、応答不可能なアドレスを分散先として返してしまう。
- 512バイト
- 同じドメイン名に対して割り当てるIPアドレス数が多すぎると、その分応答パケットも肥大化する。このとき応答が512バイトを超えると、通常はUDPのところ、TCPにフォールバックしようとするが、家庭用の市販ルーターはじめ多くのソフトウェアがこれに対応していないため正常に動作しない。
- 従って、プロトコルのレベルでUDPに収まらなくなる規模のアドレスを扱うことはできない。
再検索