NFS4(Linuxサーバー)を理解する


26

Linux上のNFS4に少し悩まされました。「そこに」ある情報は他の情報と矛盾するようで、他の情報は見つけにくいようです。だから、ここに私の注意を引いたいくつかの事柄があります。うまくいけば、そこにいる誰かがこれに光を当てることができます。

この質問は、Kerberosなどを使用しないNFS4のみに焦点を当てています。

1.輸出

exports/ etc / exportsの構造に関するマンページにあいまいな情報があります。

から引用するにはexports(5)

また、各行には、オプション名が後に続くダッシュ( "-")の形式で、パス名の後にデフォルトオプションの1つ以上の指定がある場合があります。

オプションリストは、その行の後続のすべてのエクスポートにのみ使用されます。

「その行での後続のエクスポートのみ」とはどういう意味ですか?

1.2 fsid=0不要になりましたか?

linux-nfsリストに fsid = 0が不要になったというコメントを見つけたとき、fsidを探していました。今、私はただ混乱している、私はnfs4でそれを必要とするかどうか?!

2.エクスポートされていないディレクトリはまだマウント可能

次のツリーがあるとします。

/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian

このfstabエントリには次のエントリがあります。

/dev/disk/by-label/users  /mnt/users  ext4  defaults  0  0
/dev/disk/by-label/distr  /mnt/distr  ext4  defaults  0  0
/mnt/users                /exp/users  none  bind      0  0
/mnt/distr                /exp/distr  none  bind      0  0

そして、私のエクスポートはまさにこれです:

/exp       192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)

そしてexportfs -arv示しています:

exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp

次に、なぜこれを行うことができ、クライアントでエラーが発生しないのですか:

mount -t nfs4 server:/exp/users /tmp/test

にもかかわらず/exp/users輸出されていませんか?このディレクトリはエクスポートしませんでした。/dev/disk/by-label/users指定しない限り、の内容は表示されませんcrossmntが、まだディレクトリに書き込むことができます。基礎となるディレクトリにそこに行くためにすべて私の書き込みがで/exp/usersたとき、私を見ることができますumount /exp/users; ls /exp/users。..

3.の奇妙なケース showmount -d server

で述べたようにrpc.mountd(8)、このコマンドは、現在クライアントによってマウントされているディレクトリ、またはの古いエントリ/var/lib/nfs/rmtabを表示できるはずです:

rpc.mountdデーモンは、/ var / lib / nfs / rmtabファイルにエントリを追加することにより、成功したすべてのMNT要求を登録します。NFSクライアントからUMNT要求を受信すると、rpc.mountdは、そのエクスポートのアクセス制御リストでその送信者がエクスポートにアクセスできる限り、/ var / lib / nfs / rmtabから一致するエントリを削除するだけです。

(...)

ただし、/ var / lib / nfs / rmtabの内容が正確であることを保証するものはほとんどないことに注意してください。クライアントは、UMNTを呼び出した後でもエクスポートへのアクセスを継続できます。クライアントがUMNT要求を送信せずに再起動すると、そのクライアントの/ var / lib / nfs / rmtabに古いエントリが残ります。

これを読んだ後、私は確かに疑問に思う:

  1. このタイプのクライアント情報を公開することは、ひどく安全ではありません。
  2. サーバー管理者が多くの古いクライアントを持つrmtabに縛られていることに気付いていませんか。
  3. これは、nfs4ディレクトリをマウントするクライアントがmount -v、何かマウントされていても「何もマウントされていない」などの出力を取得する理由ですか?

nfs4に関しては他にも多くの質問がありますが、当面はこれを続けます。:)


エクスポートリストは、奇妙なバインドマウントされたファイルシステムを好まないかもしれません。最初に/ mnt / usersを試してください
...-ジリブ

これは、「擬似ファイルシステム」、つまり1つのツリーファイルシステム階層が必要なnfs4についてです。意味を明確にしてください。
ドラムファイア

このwikiページもFSID = 0はもう必要とされていないことを主張:wiki.linux-nfs.org/wiki/index.php/...を、しかし「男の輸出」まだそれが必要とされる意味
SystemParadox

1
この質問を支持したいと思います。あなたのように、私は同じことの多くを観察し、同じ質問などを持っています。それはf * ing混乱のようです。
サイクロン

1
1つの投稿で質問が多すぎます。@drumfire、それを別のより単純な質問投稿に分解してください。
ビクターヤレマ

回答:


7

素晴らしい質問です。ドキュメントIMOの大きなポイントを強調しています。完全な答えの試みはここにあります:

「その行での後続のエクスポートのみ」とはどういう意味ですか?

ここでの例はおそらく最も簡単です:

/export/stuff -rw 10.0.0.54 10.0.0.55

以下と同等です:

/export/stuff 10.0.0.54(rw) 10.0.0.55(rw)

されfsid=0、もはや必要ではありませんか?

これはユースケースに依存します。クエリの残りから通常のディスクベースのファイルシステムをエクスポートしているように見えますが、その場合はドロップするのが最善ですfsid=0(nfsv4では、エクスポートのルートファイルシステムを参照するように動作を変更します)。

この動作を変更するには、no_subtree_checkオプションを削除します


rmtab関連のもの

  • rmtabセキュリティリスクの取り扱いはありますか?
    私のネットワークでは信頼できる情報漏えいはありませんが、潜在的に可能性があるケースを見ることができると答えるのはあなたのユースケースに依存すると思います。
  • rmtab古いエントリでいっぱいになりませんか?
    可能であれば、展開シナリオ/ユースケースにもよります。
  • これは、実行中の一部のクライアントmount -vが「何もマウントされていません」と誤って表示する理由ですか?
    私はまだこれに遭遇していません
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.