RHEL 6.9 で、再接続時に TCP 3 ウェイハンドシェイクが失敗し、NFS クライアントが誤って大量の SYN を送信するため、nfs または lockd サーバーが応答しない
Issue
- RHEL 6.9 クライアントが NFS サーバーに再接続できず、server not responding メッセージが表示されます。TCP レベルでは、TCP 3 ウェイハンドシェイクの 2 番目のステップ (SYN,ACK) が失敗し、NFS クライアントから
ICMP 102 Destination unreachable (Host administratively prohibited)
が送られます。 - TCP 3 ウェイハンドシェイクが失敗したため、NFS 共有を再接続することができません。NFS クライアントが同じ TCP ポートから複数の SYN パケットを誤って送信しますが、シーケンス番号は異なります。NFS サーバーは、その 1 つの SYN に SYN,ACK で応答しますが、その他の SYN には応答しません。これにより、NFS クライアントとサーバーの TCP スタックで混乱が発生します。その結果、NFS クライアントが最終 ACK を送信しないため、NFS 共有が再接続できず、NFS 共有の DoS が発生します。
Environment
- Red Hat Enterprise Linux 6.9
- kernels 2.6.32-696.el6 以降
- NFS
- NFSv3 と lockd トラフィックで発生
- 現時点では、NFSv4.0 または NFS4.1 では報告されていない
- iptables / nf_conntrack で発生
- 注意: iptables がなくてもこの問題が発生する可能性があります。また、iptables に関係しない別の失敗モードが存在する可能性があります。
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.