Розуміння NFS4 (сервер Linux)


26

Мене трохи турбує NFS4 в Linux. Частина інформації "там", здається, суперечить іншій інформації, а іншу інформацію, здається, важко знайти. Ось ось кілька речей, які привернули мою увагу, сподіваюся, хтось там може пролити трохи світла на це.

Це питання зосереджується виключно на NFS4 без Kerberos тощо.

1. Експорт

На сторінці розміщена неоднозначна інформація exportsпро структуру / тощо / експорту.

Цитувати з exports(5):

Крім того, кожен рядок може мати одну або більше специфікацій для параметрів за замовчуванням після назви шляху у вигляді тире ("-"), а потім списку опцій.

Список опцій використовується лише для всіх наступних експортів на цій лінії.

Що означає "лише наступний експорт на цій лінії"?

1.2 fsid=0більше не потрібно?

Я шукав fsid, коли знайшов коментар до списку linux-nfs із зазначенням, що fsid = 0 більше не потрібен. Тепер я просто розгублений, мені це потрібно з 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 реєструє кожен успішний запит MNT, додаючи запис у файл / var / lib / nfs / rmtab. Отримуючи запит UMNT від клієнта NFS, 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 ...
jirib

Йдеться про nfs4, який вимагає "псевдофайлової системи", тобто ієрархії файлової системи одного дерева. Чи можете ви уточнити, що ви маєте на увазі, будь ласка?
барабанне багаття

Ця вікі-сторінка також стверджує, що fsid = 0 більше не потрібен: wiki.linux-nfs.org/wiki/index.php/… , але "експорт чоловіка" все ж означає, що це потрібно
SystemParadox

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помилково, бачать, що "нічого не встановлено"?
    Я ще не стикався з цим
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.