
- 現在、RHEL 8.8およびRHEL 9.xの場合、最新のNFSバージョンは4.2です。
- NFS 4がリリースされたとき、NFS3からいくつかのことが削除され、そのうちの1つは複数のポート番号でした。
- ネットワークファイルシステム4承認する今、すべてのトラフィックはTCPです。よく知られているシングルポート2049を使用してください。。
- https://www.snia.org/sites/default/files/SNIA_An_Overview_of_NFSv4-3_0.pdf
- 同じ内容に言及するより有名な記事を見つけることができます。
- RHEL 7.9のNFS 4.1ファイアウォールでTCP 2049のみを開いてこれを確認しました。
/etc/nfs.conf
デフォルト設定を変更しない限り、ポート111または他のポートは使用しません/etc/sysconfig/nfs
。実際、rdmaが動作するようになったとき(ポート20049を介して)、rdmaプロトコルは特にファイアウォールをバイパスしました。これはrdmaがcpyサイクルを節約し、より速い理由だと思います。
国有林庁不安定オプション
/etc/exports
すべてのポートでクライアントからの要求をリッスンするようにサーバーを設定します。これをセキュリティ(デフォルト)に変更すると、サーバーはクライアントポート1-1024からの要求のみを受信します。したがって、クライアントの権限のないユーザーはNFS会話を開始できません。参考までに:https://security.stackexchange.com/questions/246527/what-is-insecure-about-the-insecure-option-of-nfs-exports
デフォルトは安全そして不安定NFS4エクスポートを実行するとき/etc/exports
。
そして安全ルール人々はしばしば言います。 NFSサーバーで安全でないファイルロックオプションを有効にしてはいけません。。
まず/etc/exports
secure
、オプションを使用すると、NFS4はポート2049で実行されるため、デフォルトでは1024未満のセキュリティポートでのみ実行されるのは完全に間違っているようです。数字2049は1024より大きい。私が何を逃しているのでしょうか?
RDMA
いつものように港で何が起こっているのかを見落とす20049
事実があるようです。明らかに氏名不安定/etc/exports
でオプションを使用したい場合は、そうでなければ表示なしでインストールmount -o rdma
が常に発生します。proto=tcp
proto=rdma
クライアントに表示されるのではなく、インストールされているMLNX_OFED_LINUX-23.04-1.1.3.0-rhel8.8-x86_64.iso
Redhatパッケージを使用してこれを確認しました。InfiniBand Support
mount -o rdma,port=1023
mount
proto=rdma
しかし、(MLNXでのみ?)echo rdma 20049 > /proc/sys/nfsd/portlist
または安全なエクスポートの場合でも実行する必要があります。エコRDMA 1023。これらの値が存在しない理由/方法/proc/sys/nfsd/portlist
と手動で実行する必要がある理由を知っている人はいますか? それでは、この数字をそこに入れる正しい方法は何ですか?それでは、起動後に/etc/fstab
私のデータフォルダのnfsマウントがrdmaで正常に発生しますか? MLNXチュートリアルPDFには欠陥があります。
RDMAが機能するように壁に頭をぶつけたが、通常NFSには多くの欠点があるようです。構成用のRDMAプレースホルダーを持つ有料クラスター管理ソフトウェアがありますが、すべてのマウントは常にproto = tcpです。したがって、誰かが説明した内容に関する情報を提供できれば役に立ち、どんな答えでも差し上げます。
返品:最後に、セキュリティルールを満たすためにいくつかのポート番号1023以下を/etc/exports
選択します。secure
この範囲内で適切な数字を選択するには?誰もが私のものを設定するために1000または1024より低いポート番号を使用してはいけないことを理解していますか?
修正する:/etc/exports
パラメータのようです。安全または不安定関係ありません。重要なのはnfsserverrdma 20049
にあります/proc/fs/nfsd/portlist
。この番号や他の番号で動作するようです。安全ファイルのエクスポート。
答え1
NFS(Network File System)バージョン4、対応するセキュリティオプション、ポート番号、およびRDMA(Remote Direct Memory Access)の使用に関するいくつかの質問と懸念があります。
NFS バージョン 4 では、NFS バージョン 3 で使用される複数のポート番号は必要ありません。したがって、NFSv4 の場合、すべてのトラフィックはポート 2049 の TCP を介して処理されます。
insecure
のオプションは/etc/exports
ポート番号を参照しません。 NFSサーバーがクライアントのすべてのポート(セキュリティなし)またはポート1-1024(セキュリティ)からの要求を受け入れるかどうかを決定します。このオプションは、NFSv4 で使用される既知のポート 2049 とは関係ありません。
NFSエクスポートの「安全でない」オプションのうち、安全でない点は何ですか?
サーバーは「1024未満のセキュリティポートでのみ実行これは、1024より大きいポート2049で実行されるため、NFSv4のコンテキストでは正しくありません。
NFSでRDMAを使用する場合は、RDMAマウントを許可するinsecure
オプションを指定する必要があります。/etc/exports
このオプションがない場合、NFSはデフォルトで(proto=tcp)
RDMAの代わりにTCPを使用します。(proto=rdma)
1024未満のポート番号を選択するには、よく知られているサービスに割り当てられていない1〜1023の範囲のポートを選択してください。
Internet Assigned Numbers Authority(IANA)サービス名とポート番号レジストリを参照して、すでに使用されているポートを選択していないことを確認できます。
/etc/services
サービス名とポート番号のマッピングを確認してください。
cat /etc/services
使用された数字の大きなリストが必要な場合は、nmapパッケージをインストールしてください。
答え2
/proc/fs/nfsd/portlist
これが大きな問題です
https://patchwork.kernel.org/project/linux-nfs/patch/[Eメール保護]/
この/etc/nfs.conf
ファイルは RHEL 8 で次のように解釈されます。金型#rdma=n
中です。したがって、論理的にコメントを削除してrdma=y
... where is toを実行することをお勧めしますy
。これはまったく機能しません。
rdma=nfsrdma
。代わりに行う必要がありますrdma=y
。それから。または.または。で指定した内容がrdma 20049
表示されます。これにより、MLNXがインストールされた状態でNFS RDMAが機能します。完了後、procの変更を観察するのに1分かかります。/proc/fs/nfsd/portlist
rdma-port
/etc/nfs.conf
service nfs-server restart
答え3
最新のLinuxシステムには、解決すべき2つの問題があります。
- サーバーとクライアントの両方がrpcrdmaカーネルモジュールをロードする必要があります。
- ポートに関連するrdma(どのポートに関係なく)が必要です。
/proc/fs/nfsd/portlist
これらの最初のものを完了するには、以下をrpcrdma
追加してください。/etc/modules-load.d/modules.conf
/usr/sbin/rpc.nfsd
2番目のタスクを実行するには、このパラメータがコマンドラインにある必要があります--rdma=2049
。 Ubuntuでは、次の行を追加すると最も簡単に実行できます/etc/default/nfs-kernel-server
。
RPCNFSDOPTS="--rdma=2049"
(将来の潜在的なファイアウォールの問題を回避するために、20049の代わりに通常のNFSv4ポートを使用しました。)
完全性を期すために、残りのすべての構成はNFSサーバー設定の標準構成にすぎないことを追加する必要があります。