再接続時のNFSクライアントソースポート

再接続時のNFSクライアントソースポート

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としてハードリンクを使用し、なぜ問題が引き続き発生するのか疑問に思います。

関連情報