特定の期間内にプールとサーバが稼動中の状態であっても、NSX Advanced Load Balancer ログに 470 エラーが記録されます。このトピックでは、このエラーのトラブルシューティングと解決の手順について説明します。
次の 470 エラーが発生する可能性があります。
要求が異常終了しました。使用可能なサーバがありません
これは、コンテンツ切り替えポリシーが関連付けられている仮想サービスでのみ発生します。仮想サービス ログには、次の動作が記録されます。
失敗した POST 要求は、HTTP 要求ポリシーだけでなく、ネットワーク セキュリティ ポリシーでも検出されますが、NSX Advanced Load Balancer は、そのトラフィックをコンテンツ スイッチ プールで指定されているようにはバックエンド サーバに送信できません。
要求データは、仮想サービス ログや Wireshark キャプチャにも見られる、失敗シナリオと稼動シナリオと似ています。
解決方法
この問題は、コンテンツ スイッチングが使用されているが、仮想サービスの接続の多重化が無効になっている場合に発生します。
この問題を解決するには、関連するコンテンツ スイッチング仮想サービスの接続の多重化を有効にします。
エラーの理由
コンテンツ スイッチング(接続の多重化がオフ)は、基本的にフロントエンドとバックエンドの接続が固定されることを意味します。フロントエンド接続に最初の要求が到着すると、該当するポリシーまたはその他の設定に基づいてサーバが選択され、サーバへの接続が確立されます。バックエンド接続が確立されると、FE 接続と BE 接続がバインドされます。後で別の要求が受信され、ポリシーによって別のプールが選択された場合、要求はバインドされたバックエンド接続に送信されず、新しい接続を確立する必要があるため、接続の切り替えが発生します。その結果、接続の多重化がオフの場合にコンテンツ スイッチングが機能しません。
一部のインスタンスでは、要求がそのフロントエンド接続の最初の要求で、既存のバックエンド接続が存在しないために、コンテンツ スイッチングが使用されている場合でも機能することがあります。
観測
トラブルシューティング中に確認されたポイントは次のとおりです。
Safari ブラウザから、NSX Advanced Load Balancer でホストされている Web サイトに初めてアクセスしてログインしようとすると、ログインに失敗しましたというエラーが表示されて失敗します。仮想サービス ログに次のエラーが記録されました。
Req Policy Rule: redirect_apiNetwork Security Rule: permit1Significance:Request ended abnormally: no available serversRequest ended abnormally: response code 4xx.
しかし、ブラウザが 1 回または 2 回更新されると、動作するようになります。
Chrome ブラウザでも同じパターンが見られますが、最初の 2 つの POST は失敗します。動作する場合は自動的に機能し、Chrome ブラウザを更新する必要はありません。
バックエンド サーバは安定しています。
パケット キャプチャでは、NSX Advanced Load Balancer は POST 要求を受信していますが、接続を終了し、バックエンド サーバへの接続を開始しません。
ブラウザが更新されると、機能するようになります。別の同様の POST 要求が送信されると、NSX Advanced Load Balancer はバックエンド サーバへの接続を開きます。