負荷分散(DNSラウンドロビン、DNSゾーン転送ほか)
更新日:
用語解説
DNSを利用した負荷分散は、一つのサービス名へ複数のIPアドレスを対応付け、DNS応答によって利用者を異なる接続先へ誘導する方式です。単純なDNSラウンドロビンでは複数のA/AAAAレコードの順序などを変えて返しますが、DNSゾーン転送は権威DNSサーバ間でゾーン情報を複製する別の機能です。
■ 試験で押さえるポイント
DNSラウンドロビンは同じ名前に複数のA又はAAAAレコードを登録し、応答順を巡回させるなどして接続先候補を分散します。専用ロードバランサーを通信経路へ置かずに構成できますが、最終的にどのアドレスを使うかはリゾルバやクライアントの実装にも依存します。
DNS応答はキャッシュされるため、問い合わせ件数と実際の接続件数は一致しません。一つのキャッシュDNS配下の多数利用者が同じ応答を使うこともあり、単純な順番変更だけではサーバ負荷を厳密に均等化できません。
標準的なDNSラウンドロビン自体は実サーバのCPU、接続数又は業務処理の正常性を認識しません。停止サーバのレコードを監視連動で除外する、地域・遅延・重み・稼働状態に基づく権威DNSサービスを使うなどの追加制御が必要です。
TTLを短くすると障害時の接続先変更を比較的早く反映できますが、DNS問い合わせと権威サーバ負荷が増えます。キャッシュがTTLや順序を必ず期待どおり扱うとは限らないため、切替時間をゼロにはできません。
DNS方式は接続開始前に宛先候補を示すため、接続確立後のセッションを別サーバへ移しません。L4/L7ロードバランサーは通信経路上で接続又は要求を振り分け、詳細なヘルスチェックやセッション維持を行える点が異なります。
AXFRはゾーン全体、IXFRは変更差分を、プライマリからセカンダリ等へ転送して権威情報を同期する仕組みです。複数DNSサーバの可用性には寄与しますが、Web要求を複数Webサーバへ振り分ける方式ではありません。
ゾーン転送を無制限に許すと、名前、アドレス及び構成情報を第三者に列挙されるおそれがあります。転送先をACLやTSIG等で認証・制限し、必要なら転送路の保護と監査を行います。
■ 過去問での着眼点
DNSラウンドロビンは利用者へ複数の接続先を返す負荷分散、ゾーン転送は権威DNSサーバ間でゾーン情報を複製する仕組みです。DNSキャッシュ、TTL、クライアントのアドレス選択及びサーバ状態監視の有無によって、実際の負荷と障害切替えが変わります。ゾーン転送はWebアクセスの負荷分散ではないことを明確に区別します。
例: www.example.jpへとを返せば接続先を分散できますが、前者が停止してもキャッシュ済み利用者はTTL満了まで接続を試みる場合があります。AXFRでこのゾーンをセカンダリDNSへ複製しても、停止したWebサーバは自動除外されません。