NFSクライアントを使用してNFSクラスタに接続しています。サーバーが利用できない場合のデフォルトの動作は、同じソースTCPポートでTCP接続を再試行することです。これはtcpdumpで確認されます(多数のSYNパケット、異なるシーケンス番号、同じソースポート)。デフォルトでは、NFSは特権ポート(<1024)を使用します。私の場合はポート940です。
何らかの理由で、Azure Load Balancer(他のロードバランサー)に問題が発生します。質問)。ただし、オプションを使用してnoresvport
(およびエクスポートを使用して)共有insecure
をマウントすると、NFSクライアントはポート> 1024を使用するため、すべての再接続試行は別のTCPポートで行われます。
NFSクライアントはSLES12 SP4であり、Oracle Linux 7.7と同じ動作をします。
NFSサーバーは、SLES12 SP4に基づくHAEクラスターです。
この動作はどこかに文書化されていますか?デフォルトでは、毎回同じポートが使用されますが、使用するときにそうでないのはなぜですかnoresvport
?
ベストアンサー1
途中にL4(f5、ファイアウォール、セキュリティアプライアンス)デバイスがあり、接続が切断されず、SYNが同じソースポートから来たときに接続テーブルにまだ存在する状況がありました。クライアントはソースポートをランダムに指定せず、接続テーブルエントリをアクティブに保ちます。
通常、NFS サーバーがクラッシュして RST がホストに送信されない場合に発生します。私たちは、すべてのためにルートeqとしてハードリンクを使用し、なぜ問題が引き続き発生するのか疑問に思います。