ネットワーク ロード バランサー レイヤー 3/レイヤー 4 (IP プロトコル) による LDAPS の負荷分散

ネットワーク ロード バランサー レイヤー 3/レイヤー 4 (IP プロトコル) による LDAPS の負荷分散

レイヤー 3/レイヤー 4 (IP プロトコル) データに基づいてトラフィックを正常なサーバーに誘導するネットワーク ロード バランサーを設定しようとしています。

質問: これは LDAP over SSL (LDAPS) でも機能しますか?(レイヤー 7 では必要に応じて TLS/SSL 復号化が実行されることを認識しています)

ネットワーク ロード バランサーがあり、2 つのバックエンド サーバーで LDAP サービスを実行しています。次の結果で
実行できます。ldapsearch

目標 クエリ 状態
バックエンドサーバー1 ldapsearch -x -H ldap://<Backend1> 成功
バックエンドサーバー1 ldapsearch -x -H ldaps://<Backend1> 成功
バックエンドサーバー2 ldapsearch -x -H ldap://<Backend2> 成功
バックエンドサーバー2 ldapsearch -x -H ldaps://<Backend2> 成功
ネットワークロードバランサー ldapsearch -x -H ldap://<NLB> 成功
ネットワークロードバランサー ldapsearch -x -H ldaps://<NLB> ない成功

これを解決する方法について何か提案はありますか?

編集: 実行時にldapsearch -x -H ldaps://<NLB>次のエラーが発生します:

ldap_sasl_interactive_bind: Can't contact LDAP server (-1)
        additional info: (unknown error code)

オプションの追加-d1:

ldap_url_parse_ext(ldaps://ipa.example.com)
ldap_create
ldap_url_parse_ext(ldaps://ipa.example.com:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ipa.example.com:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.141.4.23:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect success
TLS: hostname (ipa.example.com) does not match common name in certificate (ipa2.exmaple.com).
TLS: can't connect: (unknown error code).
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

つまり、証明書に ipa1 と ipa2 の両方が含まれる証明書を NLB に添付する必要があるようです。これがクラウド プロバイダーでサポートされているかどうかはわかりません。

注記:NLB はマネージド サービスであるため、SSH で接続できません。

答え1

It seems like I need to attach a certificate to the NLB containing both ipa1 and ipa2 in the certificate?

いいえ、ipa.example.comロードバランサーに使用していると思われる名前の が付いた証明書が必要です。

LDAP サーバーに直接接続できるようにする場合 (ロード バランサーをバイパス)、複数の SAN を含む証明書が必要になります。

いずれにしても、ロード バランサはレイヤー 4 で動作しており、SSL 接続を終了せず、トラフィックをいずれかのサーバーに転送するだけなので、証明書を LDAP サーバーに直接インストールする必要があります。

答え2

TLS: hostname (ipa.example.com) does not match common name in certificate

使用している証明書には、クライアントが接続している SAN の名前がありません。

関連情報