web-dev-qa-db-ja.com

DNS負荷分散-HAPROXYを使用

2つのDNSサーバー(マスターとスレーブ)を備えたネットがありますが、クライアントがそれらに直接要求することを望んでいません。したがって、同じネット内に、haproxy 1.7.5がインストールされたdebianマシンがあります。クライアントに/ etc/resolv.confファイルにプロキシのIPを持たせたい。プロキシが2つのサーバー間の負荷を分散するようにしたい。

IP DNS master = 10.10.24.2
IP DNS slave  = 10.10.24.4
IP PROXY      = 10.10.24.5

ファイルの最後に/ etc/haproxy/haproxy.cfgを追加しました:

resolvers mydns
    nameservers dns1 10.10.24.2:53
    nameservers dns2 10.10.24.4:53

次に、haproxyを開始します。

haproxy -f /etc/haproxy/haproxy.cfg

プロキシで実行する場合:

netstat -tuna

私はこれらの2つの新しい行を取得します:

udp    0    0    10.10.24.5:35000    10.10.24.2:53    ESTABLISHED
udp    0    0    10.10.24.5:35000    10.10.24.4:53    ESTABLISHED

しかし、私はこのようなものを受け取ることを期待していました:

udp    0    0    10.10.24.5:53    10.10.24.2:53    ESTABLISHED
udp    0    0    10.10.24.5:53    10.10.24.4:53    ESTABLISHED

明らかに、クライアントからプロキシへのDNS要求は機能していません...

Haproxyを使用してこれを達成することは可能ですか?

1
sergio

DNSサーバーの負荷を分散する必要はありません。クライアント側に2つのDNSサーバーを構成するだけで十分であり、それだけです。

ロードバランサーとして機能する別のマシンがない場合は、DNSサービスの単一障害点が作成されます。

これは serverfault の同様の投稿です。

1
Khaled

それは完全にうまく見えます。 IP接続の発信部分(10.10.24.5から10.10.24.2)は通常、ランダムポート(またはセミランダム)を使用します。ターゲットマシンと同じポート番号である必要はありません。

さらに重要なことは、次のような行もあるということです。

udp        0      0 10.10.24.5:53      0.0.0.0:*               LISTEN

これは、HAProxyが実際にUDPポート53でDNS要求をリッスンしており、後続のサーバーに転送する準備ができていることを示しています。

0
Sven