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を使用してこれを達成することは可能ですか?
DNSサーバーの負荷を分散する必要はありません。クライアント側に2つのDNSサーバーを構成するだけで十分であり、それだけです。
ロードバランサーとして機能する別のマシンがない場合は、DNSサービスの単一障害点が作成されます。
これは serverfault の同様の投稿です。
それは完全にうまく見えます。 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要求をリッスンしており、後続のサーバーに転送する準備ができていることを示しています。