ロードバランス

ソース

loadbalance は、A、AAAA、および MX レコードの順序をランダム化します。

説明

loadbalance は、応答内の A、AAAA、および MX レコードの順序をランダム化することにより、ラウンドロビン DNS ロードバランサーとして機能します。

このセットアップの長所と短所については、Wikipedia を参照してください。一部のスタブリゾルバ実装(glibc など)はその点にこだわるため、アドレスレコードの前に CNAME をソートします。

構文

loadbalance [round_robin | weighted WEIGHTFILE] {
			reload DURATION
}
  • round_robin ポリシーは、一様確率分布を適用して A、AAAA、および MX レコードの順序をランダム化します。これはデフォルトのロードバランシングポリシーです。

  • weighted ポリシーは、IP に加重値を割り当てて、特定の IP が応答内の最初の(トップ)A/AAAA レコードとして返される相対的な蓋然性を制御します。応答内のすべてのレコードがシャッフルされるわけではないことに注意してください。応答内で最初に返される A/AAAA レコードのみが対象です。

  • WEIGHTFILE は、さまざまなドメイン名に割り当てられた加重値を含むファイルです。相対パスである場合、root プラグインからのパスがその前に付加されます。形式については、加重ファイルセクションで説明します。

  • ファイルを更新し、ファイルに変更があれば加重割り当てを更新するDURATION インターバル。デフォルト値は 30s です。0s の値は、変更をスキャンしてリロードしないことを意味します。

加重ファイル

一般的な加重ファイル構文

# Comment lines are ignored

domain-name1
ip11 weight11
ip12 weight12
ip13 weight13

domain-name2
ip21 weight21
ip22 weight22
# ... etc.

ここで ipXYdomain-nameX の IP アドレスであり、weightXY はその IP に関連付けられた加重値です。加重値は [1,255] の範囲です。

weighted ポリシーは、結果リスト内のアドレスレコードの 1 つを選択して、リスト内の最初の(トップ)位置に移動します。ランダム選択では、加重ファイル内のアドレスに割り当てられた加重値が考慮されます。結果リスト内のアドレスが加重ファイル内で加重値と関連付けられていない場合、選択が実行されるときにデフォルトの加重値「1」が割り当てられます。

Google パブリック DNS から返される応答のロードバランス

. {
    loadbalance round_robin
    forward . 8.8.8.8 8.8.4.4
}

weighted 戦略を使用して、file プラグインによって提供される応答をロードバランスします。IP 100.64.1.1100.64.1.2、および 100.64.1.3 に加重値 31、および 2 を割り当てます。これらの IP は、./db.example.com ゾーンファイルで定義されたドメイン名 www.example.com の A レコード内のアドレスです。100.64.1.1100.64.1.2100.64.1.3 がトップ(最初の)A レコードになる応答の数の比率は 3 : 1 : 2 に収束するはずです。(たとえば、100.64.1.3 がトップの A レコードにある応答は、100.64.1.2 がある応答の 2 倍になります)。Corefile

example.com {
        file ./db.example.com {
                reload 10s
        }
        loadbalance weighted ./db.example.com.weights {
                    reload 10s
        }
}

加重ファイル ./db.example.com.weights

www.example.com
100.64.1.1 3
100.64.1.2 1
100.64.1.3 2