NFS4'ü (Linux sunucusu) anlama


26

Linux NFS4 tarafından biraz rahatsız oldum. “Dışarıda” bulunan bazı bilgiler diğer bilgilerle çakışıyor gibi görünüyor ve diğer bilgilerin bulunması zor görünüyor. İşte dikkatimi çeken birkaç şey var, umarım dışarıdaki biri buna ışık tutabilir.

Bu soru yalnızca Kerberos vb. Olmadan NFS4'e odaklanır.

1. İhracat

Bu exportssayfada / etc / export yapısı ile ilgili belirsiz bilgiler bulunmaktadır .

Şundan alıntı yapmak için exports(5):

Ayrıca, her satır, yol adından sonra varsayılan seçenekler için bir çizgi ("-") ve ardından bir seçenek listesi şeklinde bir veya daha fazla belirtime sahip olabilir.

Seçenek listesi, yalnızca bu satırdaki müteakip tüm ihracatlar için kullanılır.

"Sadece bu hattan sonra gelen ihracat" ne demek

1.2 fsid=0artık gerekli değil mi?

Linux-nfs listesinde bir yorum bulduğumda fsid = 0 ifadesine gerek kalmadı. Şimdi kafam karıştı, nfs4'e ihtiyacım var mı yok mu ?!

2. İhraç edilmeyen dizin hala takılabilir

Diyelim ki aşağıdaki ağacım var:

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

Ve bu fstab girişinde aşağıdaki girişler var:

/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

Ve ihracatım tam olarak bu:

/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)

Ve exportfs -arvgösterir:

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

Öyleyse neden bunu yapabiliyorum ve bir müşteride hata alamıyorum:

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

/exp/usersİhraç edilmese bile ? Bu dizini dışa aktarmadım ve /dev/disk/by-label/usersbelirtmediğim sürece içeriğini göremiyorken crossmntyine de dizine yazabiliyorum. Oraya yazdığım her şey, altında /exp/usersolduğumda görülebilen temel dizine gider umount /exp/users; ls /exp/users.

3. Tek vaka showmount -d server

Tarafından belirtildiği gibi rpc.mountd(8), bu komut şu anda istemciler tarafından takılmış olan dizinleri veya /var/lib/nfs/rmtabokunabilecek şekilde eski girişleri göstermelidir :

Rpc.mountd daemon, her başarılı MNT isteğini / var / lib / nfs / rmtab dosyasına bir girdi ekleyerek kaydeder. Bir NFS istemcisinden bir UMNT isteği aldığında, rpc.mountd, eşleşen öğeyi dışa aktarma erişim listesinin dışa aktarmaya erişmesine izin verdiği sürece / var / lib / nfs / rmtab'den eşleşen girişi kaldırır.

(...)

Ancak, / var / lib / nfs / rmtab içeriğinin doğru olduğunu garanti etmenin çok az olduğuna dikkat edin. Bir müşteri UMNT'yi çağırdıktan sonra bile bir dışa aktarmaya erişmeye devam edebilir. İstemci UMNT isteği göndermeden yeniden başlatılırsa, söz konusu müşteri için / var / lib / nfs / rmtab öğesinde eski girdiler kalır.

Bunu okuduktan sonra kesinlikle merak ediyorum:

  1. Bu tür bir müşteri bilgisini sadece açığa vurmak çok güvensiz değil mi;
  2. Habersiz sunucu yöneticilerinin çok sayıda eski istemciye sahip bir rmtab'a sahip olma zorunluluğu yoktur ;
  3. Bununla NFS4 mountlamak istemciler nedeni mi mount -v"monte edilmiş bir şey" olsun gibi çıktı görmeye bile bir şey olsa edildi monte?

Nfs4 ile ilgili başka birçok sorum var, ancak şu anda bunu devam edeceğim .. :)


Belki ihracat listesi garip bağlama bağlı dosya sistemlerini beğenmez. Önce / mnt / users ile deneyin ...
jirib

Bu bir "sözde dosya sistemi", yani bir ağaç dosya sistemi hiyerarşisi gerektiren nfs4 ile ilgilidir. Ne demek istediğini açıklayabilir misin lütfen?
davul ateşi

Bu wiki sayfası da fsid = 0 artık gerekli olmadığını iddia: wiki.linux-nfs.org/wiki/index.php/... ama 'adam ihracatı' hala gereklidir ima
SystemParadox

1
Bu soruyu desteklediğimi söylemek istiyorum. Senin gibi aynı şeylerin çoğunu gözlemledim, aynı soruya ve daha fazlasına sahibim. Bir f * ing karmaşa gibi görünüyor.
siklon

1
Bir yayında çok fazla soru var. @drumfire, lütfen daha basit soru-yazılarına ayırır mısınız?
Victor Yarema

Yanıtlar:


7

Harika sorular, IMO belgeleriyle daha büyük bir noktayı vurgulamaktadır. İşte tam bir cevapta bir girişim:

"Sadece bu hattan sonra gelen ihracat" ne demek

Bir örnek muhtemelen burada en kolay olanıdır:

/export/stuff -rw 10.0.0.54 10.0.0.55

eşittir:

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

Is fsid=0artık gerekli değildir?

Bu kullanım durumunuza bağlıdır. Sorgunuzun geri kalanından düzenli disk tabanlı dosya sistemlerini dışa fsid=0aktarıyorsunuz , bu durumda bırakmanız en iyisidir (nfsv4'te dışa aktarmanın kök dosya sistemine başvurma davranışını değiştirir).

Bu davranışı değiştirmek için no_subtree_check seçeneğini kaldırın


rmtabile ilgili şeyler

  • İşlenmesidir rmtabbir güvenlik riski?
    Sanırım cevap vermek sizin kullanımınıza bağlı, ağımda güvenilir bir bilgi sızıntısı göstermiyor, ancak potansiyel olarak nerede olabileceği vakalarını görebiliyorum.
  • rmtabBayat girişlerle dolu olmayacak mı?
    Potansiyel olarak evet, tekrar dağıtım senaryonuza / kullanım durumuna bağlı olarak.
  • Bu nedenle mi mount -vyanlış çalışan bazı müşteriler "hiçbir şey monte edilmedi" görüyorlar?
    Henüz buna rastlamadım
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.