タイトルはそれを言います。 mountは、安全でないポートからNFSマウント/アンマウント要求を行うことがあります。この問題は、非常に高いマウントアクティビティ(AMD)が発生した後、すべてのセキュアポートがTIME_WAITでスタックしていることが原因であると考えられます。この動作を変更する方法はありますか?利用可能な安全なポートがあるかどうかに関係なく、安全でないポートからリクエストが送信されることは望ましくありません。安全なポートを待っている間、マウントをハングさせたいです。 NFSサーバーの安全でないポートからの要求を許可することはオプションではありません。
これを制御するためのmount、nfs、またはmount.nfsのマニュアルページには何も表示されませんでした。この問題を軽減するために、net.ipv4.tcp_tw_reuse = 1を試しましたが、役に立たなかったようです。
前もって感謝します。
Iptablesを使用して、使用したくないこれらのポート(範囲)をブロックしてみませんか。ドロップしないで拒否ルールにするようにしてください。後者の場合、接続の試行がタイムアウトになるため、時間がかかる場合があります。
典型的なルールは次のようになります。
/sbin/iptables -I OUTPUT -d 0/0 -j REJECT --reject-with icmp-net-prohibited -p tcp --dport XX -o ethX
/sbin/iptables -I OUTPUT -d 0/0 -j REJECT --reject-with icmp-net-prohibited -p udp --dport XX -o ethX
ポート範囲の使用:
--dport XX:YY
着信の場合:
/sbin/iptables -I INPUT -s 0/0 -j REJECT --reject-with icmp-net-prohibited -p tcp --dport XX -i ethX
/sbin/iptables -I INPUT -s 0/0 -j REJECT --reject-with icmp-net-prohibited -p udp --dport XX -i ethX
更新:マニュアルから、rpc.mountdに適切なオプションを追加するとうまくいくかもしれません:
-p or --port num
Force rpc.mountd to bind to the specified port num, instead of using the random port number assigned by the portmapper.
Debianでは、/ etc/default/nfs-kernel-serverでこれを行い、次の行にオプションを追加します。
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS
RPCMOUNTDOPTS=--manage-gids