Linux NFS HOWTO
 Nicolai Langfeldt [email protected]
 v1.0, 1er octobre 1999

 (30 novembre 1999. Adaptation fran�aise par Christophe Deleuze,
 [email protected]).  HOWTO d�crivant l'installation de
 serveurs et clients NFS.
 ______________________________________________________________________

 Table des mati�res
























































 1. Pr�ambule

    1.1 Blabla l�gal
    1.2 D�n�gation
    1.3 Retour
    1.4 Autre blabla

 2. LISEZMOI.d_abord

 3. Installer un serveur NFS

    3.1 Conditions pr�alables
    3.2 Premiers pas
    3.3 Le portmapper
    3.4 Mountd et nfsd

 4. Installer un client NFS

    4.1 Options de montage
    4.2 Optimisation de NFS

 5. NFS sur les lignes � faible d�bit

 6. NFS et la s�curit�

    6.1 S�curit� du client
    6.2 S�curit� du serveur : nfsd
    6.3 S�curit� du serveur : le portmapper
    6.4 NFS et les coupent-feu (firewalls)
    6.5 R�sum�

 7. ``Checklist'' mount

 8. FAQ

 9. Exporter un syst�me de fichiers

    9.1 IRIX, HP-UX, Digital-UNIX, Ultrix, SunOS 4 (Solaris 1), AIX
    9.2 Solaris 2

 10. NFS sous Linux 2.2

    10.1 Le client
    10.2 Le serveur

 11. Serveur NFS sur une disquette

    11.1 Introduction
    11.2 Attentes
    11.3 Mat�riel n�cessaire
    11.4 Configuration du serveur
       11.4.1 D�marrer le serveur NFS temporaire
       11.4.2 Monter la disquette et le c�d�rom
       11.4.3 Configurer le r�seau sur le serveur provisoire
       11.4.4 Configurer le volume NFS
    11.5 Lancer le serveur NFS
       11.5.1 Pr�t, commencez l'installation
    11.6 Probl�mes
       11.6.1 Rien ici pour l'instant
    11.7 � faire
       11.7.1 Disquette DOS
       11.7.2 Commandes RPC

 12. PC-NFS


 ______________________________________________________________________

 11..  PPrr��aammbbuullee

 11..11..  BBllaabbllaa ll��ggaall

 (C)opyright 1997-1999 Nicolai Langfeldt et Ron Peters. Si vous
 modifiez ce document signalez le dans le copyright, sa distribution
 est libre � condition de conserver ce paragraphe. La section FAQ est
 bas�e sur la FAQ NFS compil�e par Alan Cox. La section _C_h_e_c_k_l_i_s_t est
 bas�e sur une _c_h_e_c_k_l_i_s_t des probl�mes de mount compil�e par IBM
 Corporation. La section ``NFS serveur sur disquette'' a �t� �crite par
 Ron Peters.

 (C)opyright 1997-1999 Christophe Deleuze pour la version fran�aise. Si
 vous lisez ce document sous le pont de l'Alma, veillez � respecter les
 limitations de vitesse.


 11..22..  DD��nn��ggaattiioonn

 Ni Nicolai Langfeldt, ni Ron Peters ni leurs employeurs, ni qui que ce
 soit, n'assume de responsabilit� pour les cons�quences que les
 instructions de ce document peuvent avoir. Si vous choisissez de
 suivre ces instructions, bonne chance !



 11..33..  RReettoouurr

 Ce document ne sera jamais termin�, merci de m'envoyer par mail vos
 probl�mes et r�ussites, cela pourra am�liorer ce HOWTO. Envoyez
 argent, commentaires et questions � [email protected], ou
 [email protected] pour ce qui concerne les serveurs NFS sur
 disquette. Si vous m'envoyez un mail, par piti�, _v_�_r_i_f_i_e_z que
 l'adresse de retour soit correcte et fonctionne. Vous ne vous imaginez
 pas combien de mes r�ponses sont revenues � cause d'une adresse
 incorrecte.


 11..44..  AAuuttrree bbllaabbllaa

 Si vous voulez traduire ce HOWTO merci de me le signaler, que je
 puisse savoir en quels langages j'ai �t� publi� :-). [Ndt : c'est
 fait...]

 Remerciements � Olaf Kirch pour m'avoir convaincu d'�crire ceci, puis
 fourni de bonnes suggestions.

 Les commentaires sur la traduction sont � envoyer � Christophe
 Deleuze, [email protected].



 22..  LLIISSEEZZMMOOII..dd__aabboorrdd

 NFS, le syst�me de fichiers par r�seau, a trois caract�ristiques
 importantes :


 �  il permet le partage de fichiers sur un r�seau ;

 �  il marche suffisamment bien ;

 �  il cr�e tout un tas de probl�mes de s�curit� bien connus des
    crackers qui peuvent facilement les exploiter pour obtenir l'acc�s
    (lecture, �criture et effacement) � tous vos fichiers.


 Je parlerai de ces deux aspects dans ce HOWTO. Lisez bien la section
 s�curit� et vous supprimerez quelques risques stupides. Ne dites pas
 que je ne vous ai pas pr�venus. Les passages sur la s�curit� sont
 parfois assez techniques et demandent quelques connaissances en r�seau
 IP. Si vous ne connaissez pas les termes utilis�s vous pouvez soit
 consulter le HOWTO r�seau, improviser ou vous procurer un livre sur
 l'administration de r�seau TCP/IP pour vous familiariser avec TCP/IP.
 C'est une bonne id�e de toutes fa�ons si vous administrez des machines
 UNIX/Linux. Un tr�s bon livre sur le sujet est _T_C_P_/_I_P _N_e_t_w_o_r_k
 _A_d_m_i_n_i_s_t_r_a_t_i_o_n par Craig Hunt, publi� par O'Reilly & Associates, Inc.
 Et quand vous l'aurez lu et compris, vous vaudrez plus cher sur le
 march� du travail, vous ne pouvez qu'y gagner :-)


 Il y a deux sections pour vous aider � r�gler vos probl�mes NFS, la
 _M_o_u_n_t _C_h_e_c_k_l_i_s_t et les _F_A_Q_s. Jetez-y un oeil si quelque chose ne
 marche pas comme pr�vu.


 Si vous voulez/avez besoin de le r�cup�rer et compiler vous m�me, le
 site de r�f�rence pour le nfsd Linux 2.0 est ftp.mathematik.th-
 darmstadt.de:/pub/linux/okir.


 � propos de NFS sous Linux 2.2 voir ``la section sur Linux 2.2''.



 33..  IInnssttaalllleerr uunn sseerrvveeuurr NNFFSS

 33..11..  CCoonnddiittiioonnss pprr��aallaabblleess

 Avant de continuer � lire ce HOWTO, vous aurez besoin de pouvoir faire
 des telnet dans les deux sens entre les machines que vous utiliserez
 comme serveur et client. Si cela ne fonctionne pas, voyez le HOWTO
 r�seau (NET-3) et configurez correctement le r�seau.


 33..22..  PPrreemmiieerrss ppaass

 Avant de faire quoi que ce soit d'autre, il nous faut un serveur NFS
 install�. Si vous faites partie d'un d�partement r�seau d'une
 universit� ou autre, il y a probablement un grand nombre de serveurs
 NFS qui tournent d�j�. Si votre but est d'utiliser un serveur d�j�
 install� alors vous pouvez sauter � ``la section sur l'installation
 d'un client NFS''.

 Si vous devez installer un serveur sur une machine non Linux vous
 devrez lire les pages de manuel du syst�me pour trouver comment
 configurer le serveur NFS et l'exportation des syst�mes de fichiers
 par NFS. Ce HOWTO contient une section d�crivant les manipulations
 n�cessaires sur divers syst�mes. Ceci fait, vous pourrez passer � la
 section suivante. Ou continuer � lire cette section vu que certaines
 des choses que je vais dire sont pertinentes quel que soit le type de
 machine que vous utilisez comme serveur.

 Si vous utilisez Linux 2.2, voyez ``la section sur Linux 2.2'' avant
 de passer � la suite.

 Nous allons maintenant configurer tout un tas de programmes.



 33..33..  LLee ppoorrttmmaappppeerr

 Le portmapper de Linux est appel� soit portmap soit rpc.portmap. La
 page de manuel sur mon syst�me dit que c'est un convertisseur de port
 DARPA vers num�ro de programme RPC. C'est l� que se trouve la premi�re
 faille de s�curit�. La gestion de ce probl�me est d�crite � la section
 ``sur la s�curit�'', que, encore une fois, je vous invite tr�s
 fortement � lire.

 Lancez le portmapper. Il devrait �tre dans le r�pertoire /usr/sbin
 (sur quelques machines il est appel� rpcbind). Vous pouvez le lancer �
 la main pour cette fois mais il devra �tre lanc� � chaque d�marrage de
 la machine, il faudra donc cr�er ou �diter les scripts rc. Les scripts
 rc sont d�crits dans la page de manuel init, ils sont g�n�ralement
 dans /etc/rc.d, /etc/init.d ou /etc/rc.d/init.d. S'il y a un script
 qui a un nom du genre inet, c'est probablement le script � �diter.
 Mais ce qu'il faut �crire ou faire sort du cadre de ce HOWTO. Lancez
 portmap, et v�rifiez qu'il tourne avec ps -aux, puis rpcinfo -p. Il y
 est ? Benissimo.



 Encore une chose. L'acc�s distant � votre portmapper est contr�l� par
 le contenu de vos fichiers /etc/hosts.allow et /etc/hosts.deny. Si
 rcpinfo -p �choue alors que le portmapper tourne, v�rifiez ces
 fichiers. Voyez la section ``sur la s�curit�'' pour les d�tails
 concernant ces fichiers.


 33..44..  MMoouunnttdd eett nnffssdd

 Les prochains programmes � lancer sont mountd et nfsd. Mais d'abord il
 faut �diter un autre fichier, /etc/exports. Disons que je veux que le
 syst�me de fichiers /mn/eris/local qui est sur la machine eris soit
 disponible sur la machine apollon. Je l'indique dans /etc/exports sur
 eris :


 ______________________________________________________________________
 /mn/eris/local  apollon(rw)
 ______________________________________________________________________



 La ligne ci-dessus donne � apollon un acc�s en lecture/�criture sur
 /mn/eris/local. Au lieu de rw on pourrait mettre ro pour _r_e_a_d _o_n_l_y
 (lecture seule, c'est la valeur par d�faut). D'autres options
 existent, et je parlerai de quelques unes li�es � la s�curit� plus
 loin. Elles sont toutes d�crites dans la page de manuel exports qu'il
 faut lire au moins une fois dans sa vie. Il y a de meilleures fa�ons
 de faire que de lister tous les hosts dans le fichier exports. Peuvent
 �tre autoris�s � monter un syst�me de fichiers NFS, des groupes
 r�seaux (_n_e_t _g_r_o_u_p_s) si vous utilisez NIS (ou NYS, auparavant connu
 sous le nom YP), des noms de domaines avec jokers et des sous r�seaux
 IP. Mais il faudra v�rifier qui peut obtenir un acc�s au serveur avec
 ce type d'autorisations group�es.


 Note : ce fichier exports n'utilise pas la m�me syntaxe que d'autres
 Unix. Ce HOWTO contient une section sur la fa�on dont les autres Unix
 exportent leurs fichiers.

 Maintenant nous sommes pr�ts � lancer mountd (ou peut-�tre s'appelle-
 t-il rpc.mountd), puis nfsd (qui s'appelle peut-�tre rpc.nfsd). Ils
 liront tous deux le fichier exports.

 Si vous modifiez /etc/exports, vous devrez vous assurer que nfsd et
 mountd savent que le fichier a chang�. La fa�on traditionnelle est de
 lancer exportfs. Beaucoup de distributions Linux n'ont pas le
 programme exportfs. Si c'est le cas sur votre machine, vous pouvez
 installer ce script :


 ______________________________________________________________________
 #!/bin/sh
 killall -HUP /usr/sbin/rpc.mountd
 killall -HUP /usr/sbin/rpc.nfsd
 echo Volumes NFS r�export�s
 ______________________________________________________________________



 Sauvez le dans /usr/sbin/exportfs par exemple, et n'oubliez pas de lui
 appliquer chmod a+rx. D�sormais, chaque fois que vous changez votre
 fichier exports, lancez ensuite exportfs en root.

 Maintenant, v�rifiez que mountd et nfsd fonctionnent correctement.
 D'abord avec rpcinfo -p. Il devrait donner quelque chose du genre :


 ______________________________________________________________________
    program vers proto   port
     100000    2   tcp    111  portmapper
     100000    2   udp    111  portmapper
     100005    1   udp    745  mountd
     100005    1   tcp    747  mountd
     100003    2   udp   2049  nfs
     100003    2   tcp   2049  nfs
 ______________________________________________________________________



 On voit que le portmapper a annonc� ses services, de m�me que mountd
 et nfsd.

 Si vous obtenez : rpcinfo: can't contact portmapper: RPC: Remote
 system error - Connection refused, RPC_PROG_NOT_REGISTERED ou quelque
 chose du style c'est que le portmapper ne tourne pas. OU, vous avez
 quelques chose dans /etc/hosts.{allow,deny} qui interdit au portmapper
 de r�pondre, voyez ``la section s�curit�'' � ce propos. Si vous
 obtenez No remote programs registered alors soit le portmapper ne veut
 pas vous parler, soit quelque chose ne marche pas. Tuez nfsd, mountd
 et le portmapper et essayez de recommencer.

 Apr�s avoir v�rifi� que le portmapper rend compte des services vous
 pouvez v�rifier aussi avec ps. Le portmapper continuera � afficher les
 services m�me si les programmes qui les offrent ont crash�. Il vaut
 donc mieux v�rifier par ps si quelque chose ne marche pas.

 Bien sur, vous devrez modifier vos fichiers syst�mes rc pour lancer
 mountd et nfsd au d�marrage de la m�me fa�on que le portmapper. Il y a
 de tr�s fortes chances que les scripts existent d�j� sur votre
 machine, vous aurez juste � d�commenter les bonnes lignes ou les
 activer pour les bons _r_u_n_l_e_v_e_l_s (pardon niveaux d'ex�cution) d'init.

 Quelques pages de manuel avec lesquelles vous devriez �tre familier :
 portmap, mountd, nfsd et exports.

 Bon, si vous avez tout fait exactement comme j'ai dit vous �tes pr�ts
 � encha�ner sur le client NFS.


 44..  IInnssttaalllleerr uunn cclliieenntt NNFFSS

 Tout d'abord il faudra compiler un noyau avec le syst�me de fichiers
 NFS, soit compil� dans le noyau, soit disponible sous forme de module.
 Si vous n'avez encore jamais compil� un noyau vous aurez peut �tre
 besoin de consulter le HOWTO du noyau. Si vous utilisez une
 distribution tr�s cool (comme Chapeau Rouge) et que vous n'avez jamais
 trifouill� le noyau (pas toucher toucher) il y a des chances que NFS
 soit automagiquement disponible.

 Vous pouvez maintenant, � l'invite (prompt) du root, entrer la
 commande mount appropri�e et le syst�me de fichiers appara�tra.
 Continuons avec l'exemple de la section pr�c�dente, nous voulons
 monter /mn/eris/local depuis eris. La commande est :


 ______________________________________________________________________
 mount -o rsize=1024, wsize=1024 eris:/mn/eris/local /mnt
 ______________________________________________________________________



 Nous reviendrons plus tard sur les options rsize et wsize. Le syst�me
 de fichiers est maintenant disponible sous /mnt et vous pouvez faire
 un cd sur lui, puis un ls et regarder les fichiers individuellement.
 Vous remarquerez que ce n'est pas aussi rapide qu'avec un syst�me de
 fichiers local, mais beaucoup plus pratique que ftp. Si, au lieu de
 monter le syst�me de fichiers, mount renvoie un message d'erreur comme
 mount: eris:/mn/eris/local failed, reason given by server: Permission
 denied alors le fichier exports est incorrect, ou vous avez oubli� de
 lancer exportfs apr�s avoir modifi� le fichier exports. S'il dit
 mount: clntudp_ipdate: RPC: Program not registered cela signifie que
 nfsd ou mountd ne tourne pas sur le serveur, ou que vous avez le
 probl�me avec les fichiers hosts.{allow,deny} mentionn� plus haut.

 Pour vous d�barrasser du syst�me de fichiers, vous pouvez faire :


 ______________________________________________________________________
 umount /mnt
 ______________________________________________________________________



 Pour que le syst�me monte automatiquement un syst�me de fichiers NFS
 au d�marrage, �ditez /etc/fstab de la fa�on habituelle. Par exemple
 avec une ligne comme celle-ci :


 ______________________________________________________________________
 # device       mountpoint    fs-type    options           dumps  sfckorder
 ...
 eris:/mn/eris/local   /mnt   nfs     rsize=1024,wsize=1024   0   0
 ...
 ______________________________________________________________________



 C'est presque tout ce qu'il y a � savoir. Vous pouvez jeter un coup
 d'oeil � la page de manuel nfs. Continuons plize.






 44..11..  OOppttiioonnss ddee mmoonnttaaggee

 Il y a trois comportements principaux des clients NFS en cas de chute
 du serveur qui sont sp�cifi�s par les options de montage :


    ssoofftt
       Le client NFS renverra une erreur au processus concern� si apr�s
       quelques essais le serveur NFS persiste � ne pas r�pondre. Si
       vous voulez utiliser cette option, vous devez v�rifier que votre
       logiciel la g�re correctement. Je ne recommande pas ce r�glage,
       c'est un bon moyen de perdre des donn�es et corrompre des
       fichiers. En particulier, n'utilisez pas �a pour les disques o�
       sont stock�s vos mails (si vous tenez � vos mails).


    hhaarrdd
       Le client NFS r�essaiera infiniment jusqu'� ce qu'il soit tu�.
       Les op�rations reprendront normalement si le serveur NFS se
       r�tablit ou red�marre. Le client ne pourra pas �tre interrompu
       ou tu�.


    hhaarrdd,,iinnttrr
       Comme hard, mais Ctrl-C tuera le processus bloqu�. Dans quelques
       cas, notament un disque /usr/spool/mail mont� par NFS cela ne
       changera rien car le shell ignore le Ctrl-C quand il teste si
       vous avez du mail. Je recommande cette option pour ttoouuss les
       syst�mes de fichiers NFS, y compris le _s_p_o_o_l du mail.



 Reprenons l'exemple pr�c�dent, votre entr�e fstab est maintenant :


 ______________________________________________________________________
 # device       mountpoint   fs-type    options            dumps  sfckorder
 ...
 eris:/mn/eris/local   /mnt  nfs   rsize=1024,wsize=1024,hard,intr 0   0
 ...
 ______________________________________________________________________





 44..22..  OOppttiimmiissaattiioonn ddee NNFFSS

 Normalement, si les options rsize et wsize ne sont pas pr�cis�es, NFS
 �crira et lira par blocs de 4096 ou 8192 octets. Mais certaines
 combinaisons de noyau Linux et cartes r�seau ne peuvent pas
 fonctionner avec ces valeurs, de plus, m�me si cela marche, cela peut
 ne pas �tre optimal du tout. Il nous faudra donc exp�rimenter et
 trouver les valeurs de rsize et wsize qui fonctionnent et donnent les
 transferts les plus rapides. Vous pouvez tester la vitesse obtenue
 avec diff�rentes valeurs des options avec des commandes simples. La
 commande mount ci-dessus ayant �t� ex�cut�e, si vous avez l'acc�s en
 �criture sur le disque vous pouvez tester les performances en �criture
 s�quentielle :


 ______________________________________________________________________
 time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
 ______________________________________________________________________


 Ceci cr�e un fichier de 64 Mo ne contenant que des 0. Faites le
 quelques (5-10?) fois et prenez la moyenne des temps. C'est le temps
 `elapsed' ou `wall clock' qui est le plus int�ressant. Ensuite vous
 pouvez tester les performances en lecture en relisant le fichier :


 ______________________________________________________________________
 time dd if=/mnt/testfile of=/dev/null bs=16k
 ______________________________________________________________________



 faites le quelques fois et prenez la moyenne. Puis d�montez (umount)
 et remontez (mount) avec des valeurs plus grandes pour rsize et wsize.
 Il vaut mieux prendre des multiples de 1024, et probablement pas plus
 grand que 16384 octets, car les gros blocs ralentissent les acc�s
 al�atoires. Imm�diatement apr�s avoir remount� avec une taille
 sup�rieure, placez vous (cd) dans le syst�me de fichiers et faites des
 trucs comme ls, explorez un peu pour v�rifier que tout est bien
 normal. Si la valeur de rsize/wsize est trop grande, les sympt�mes
 sont _v_r_a_i_m_e_n_t bizarres et pas �vidents. Un sympt�me typique est une
 liste de fichiers donn�e par ls incompl�te sans aucun message
 d'erreur. Ou la lecture de fichier qui �choue myst�rieusement et sans
 message d'erreur. Apr�s vous �tre assur�s que les wsize/rsize choisis
 fonctionnent, vous pouvez faire les tests de rapidit�. Diff�rentes
 plateformes de serveur auront peut-�tre des tailles optimales
 diff�rentes. SunOS et Solaris sont r�put�s pour �tre beaucoup plus
 rapides avec une taille de 4096 octets.


 Les noyaux Linux r�cents (depuis 1.3) font parfois des lectures
 anticip�es (_r_e_a_d _a_h_e_a_d) pour des rsizes sup�rieurs ou �gaux � la
 taille de page de la machine. Sur les processeurs Untel la taille de
 la page est de 4096 octets. La lecture anticip�e augmentera
 _s_e_n_s_i_b_l_e_m_e_n_t les performances en lecture. Sur une machine Untel on
 devrait donc choisir un rsize de 4096 si c'est possible.


 Un truc pour augmenter les performances d'�criture de NFS est
 d'invalider les �critures synchrones sur le serveur. Les
 sp�cifications de NFS disent que les requ�tes d'�criture de NFS ne
 doivent pas �tre consid�r�es comme termin�es avant que les donn�es ne
 soient sur un m�dium non versatile (normalement le disque). Ceci
 r�duit les performances � l'�criture, les �critures asynchrones sont
 plus rapides. Le nfsd Linux ne fait pas d'�critures synchrones car
 l'impl�mentation du syst�me de fichiers ne s'y pr�te pas, mais sur les
 serveurs non Linux vous pouvez augmenter les performances de cette
 fa�on dans votre fichier exports :


 ______________________________________________________________________
 /dir    -async, access=linuxbox
 ______________________________________________________________________




 ou quelque chose du genre. R�f�rez vous � la page de manuel exports de
 la machine concern�e. Notez que ceci augmente les risques de perte de
 donn�es.






 55..  NNFFSS ssuurr lleess lliiggnneess �� ffaaiibbllee dd��bbiitt

 Les lignes lentes (� faible d�bit) comprennent les modems, RNIS et
 aussi sans doute les autres connexions longue distance.


 Cette section est bas�e sur la connaissance des protocoles utilis�s
 mais pas sur des exp�rimentations. Faites moi savoir si vous essayez
 ceci ;-)


 La premi�re chose � retenir est que NFS est un protocole lent. Il a un
 grand _o_v_e_r_h_e_a_d (sur-co�t en bande passante). Utiliser NFS, c'est
 presque comme utiliser kermit pour transf�rer des fichiers. Il est
 _l_e_n_t. Presque tout est plus rapide que NFS. FTP est plus rapide. HTTP
 est plus rapide. rcp est plus rapide. ssh est plus rapide.


 Vous voulez toujours l'essayer ? Ok.


 Par d�faut NFS est param�tr� pour des lignes rapides et � faible
 latence. Si vous utilisez les param�tres par d�faut sur des lignes �
 grande latence cela peut provoquer des erreurs, des annulations, des
 r�tr�cissements de fichiers, et des comportements bizarres.


 La premi�re chose � faire est de ne _p_a_s utiliser l'option de montage
 soft. Les temporisations retourneront des erreurs au logiciel, qui,
 dans l'immense majorit� des cas, ne saura pas quoi en faire. C'est une
 bonne fa�on d'avoir des probl�mes bizarres. Utilisez plut�t l'option
 de montage hard. Quand hard est actif les temporisations d�clenchent
 des essais infinis au lieu d'annuler ce que le logiciel �tait en train
 de faire (quoi que ce soit). C'est ce que vous voulez. Vraiment.


 La deuxi�me chose � faire est d'ajuster les options de montage timeo
 et retrans. Elles sont d�crites dans la page de manuel nfs(5), en
 voici un extrait (version fran�aise) :



























 ______________________________________________________________________
        timeo=n        La valeur,  en  dixiemes  de  secondes,  du
                       delai   avant  de  declencher  la  premiere
                       retransmission d'une RPC.   La  valeur  par
                       defaut  est 7/10 de seconde. Apres une pre�
                       miere expiration, le delai  est  double  et
                       l'on recommence les retransmissions jusqu'a
                       ce que le delai atteigne la valeur maximale
                       de 60 secondes, ou que le nombre maximal de
                       retransmission soit depasse.  Il se produit
                       alors  une  erreur  d'expiration majeure de
                       delai.  Si le systeme est monte  "en  dur",
                       les  retransmissions  reprendront a nouveau
                       indefiniment.

                       On peut ameliorer les performances en  aug�
                       mentant  le delai sur un  reseau charge, si
                       le serveur est un  peu  lent,  ou  si  l'on
                       traverse plusieurs routeurs ou passerelles.

        retrans=n      Le  nombre  d'expirations  mineures  et  de
                       retransmissions  qui  doivent  se  produire
                       avant de declencher une expiration majeure.
                       La  valeur  par  defaut  est  3 expirations
                       mineures.  Quand  une  erreur  d'expiration
                       majeure  se  produit,  soit l'operation est
                       abandonnee, soit  un  message  "server  not
                       responding" est affiche sur la console.
 ______________________________________________________________________




 En d'autres mots : si une r�ponse n'est pas re�ue avant la
 temporisation de 0,7 seconde (700 ms), le client NFS r�p�tera la
 requ�te et doublera la temporisation � 1,4 seconde. Si la r�ponse
 n'arrive pas dans les 1,4 seconde, la requ�te est r�p�t�e � nouveau et
 la temporisation est doubl�e � 2,8 secondes.


 La vitesse de la ligne peut �tre mesur�e avec un ping ayant vos
 valeurs de rsize/wsize comme taille de paquet.


 ______________________________________________________________________
 $ ping -s 8192 lugulbanda
 PING lugulbanda.uio.no (129.240.222.99): 8192 data bytes
 8200 bytes from 129.240.222.99: icmp_seq=0 ttl=64 time=15.2 ms
 8200 bytes from 129.240.222.99: icmp_seq=1 ttl=64 time=15.9 ms
 8200 bytes from 129.240.222.99: icmp_seq=2 ttl=64 time=14.9 ms
 8200 bytes from 129.240.222.99: icmp_seq=3 ttl=64 time=14.9 ms
 8200 bytes from 129.240.222.99: icmp_seq=4 ttl=64 time=15.0 ms

 --- lugulbanda.uio.no ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max = 14.9/15.1/15.9 ms
 ______________________________________________________________________




 Le temps indiqu� est celui que le paquet du ping a pris pour aller et
 revenir de lugulbanda. 15 ms, c'est assez rapide. Sur une ligne � 28
 800 bps vous pouvez vous attendre � une valeur de l'ordre de 4000-5000
 ms, et si la ligne est charg�e ce temps sera encore plus �lev�,
 facilement le double. En g�n�ral, la latence augmente avec la taille
 des paquets et la charge de la ligne. Si vous comptez utiliser FTP et
 NFS en m�me temps il faudra mesurer les temps du ping pendant un
 transfert FTP et augmenter timeo en accord avec la latence de votre
 ligne.


 66..  NNFFSS eett llaa ss��ccuurriitt��

 Je ne suis en aucun cas un expert en s�curit� informatique. Mais j'ai
 tra�n� dans le secteur et j'ai un _p_e_t_i_t conseil pour ceux qui se
 pr�occupent de la s�curit�. Mais attention. Ce n'est pas absolument
 pas une liste compl�te des probl�mes li�s � NFS et si vous pensez �tre
 en s�curit� une fois que vous avez lu et mis en pratique tout ceci
 alors j'ai un pilier de pont (presque neuf) � vous vendre.


 Cette section n'a probablement pas d'int�r�t si vous �tes sur un
 r�seau _f_e_r_m_� o� vous avez confiance en tous les utilisateurs, et que
 personne en qui vous n'avez pas confiance ne peut obtenir un acc�s sur
 les machines du r�seau. I.e., il ne devrait y avoir aucun moyen de se
 connecter � votre r�seau depuis l'ext�rieur et il ne devrait �tre
 reli� � aucun autre r�seau o� vous n'avez pas confiance en tous les
 utilisateurs et en sa s�curit�. Vous pensez que je suis parano ? Pas
 du tout. C'est un conseil de s�curit� _d_e _b_a_s_e. Et rappelez-vous que
 c'est juste le commencement. Un site _s_�_r n�cessite un administrateur
 consciencieux et bien inform� qui sait o� trouver l'information sur
 les probl�mes de s�curit� existants ou potentiels.


 Un probl�me de base de NFS est que le client, si on ne lui demande pas
 le contraire, fera confiance au serveur NFS et vice versa. �a peut
 �tre mauvais. Cela signifie que si le compte root du serveur est cass�
 (_b_r_o_k_e_n _i_n_t_o) il peut �tre tr�s facile de casser le compte root du
 client. Et vice versa. Il y a quelques moyens de g�rer ce probl�me sur
 lesquels nous reviendrons.


 Les documents consultatifs (_a_d_v_i_s_o_r_i_e_s) du CERT sur NFS sont une bonne
 source d'information, la plupart des probl�mes (et des solutions)
 �voqu�es ci-dessous sont trait�s dans ces documents. Voyez
 ftp.cert.org:/01-README pour une liste � jour. En voici quelques-uns
 li�s � NFS (il n'y a pas � ma connaissance de version fran�aise) :


 ______________________________________________________________________
 CA-91:21.SunOS.NFS.Jumbo.and.fsirand                            12/06/91
      Vulnerabilities concerning Sun Microsystems, Inc. (Sun) Network
      File System (NFS) and the fsirand program.  These vulnerabilities
      affect SunOS versions 4.1.1, 4.1, and 4.0.3 on all architectures.
      Patches are available for SunOS 4.1.1.  An initial patch for SunOS
      4.1 NFS is also available. Sun will be providing complete patches
      for SunOS 4.1 and SunOS 4.0.3 at a later date.

 CA-94:15.NFS.Vulnerabilities                                    12/19/94
      This advisory describes security measures to guard against several
      vulnerabilities in the Network File System (NFS). The advisory was
      prompted by an increase in root compromises by intruders using tools
      to exploit the vulnerabilities.

 CA-96.08.pcnfsd                                                 04/18/96
      This advisory describes a vulnerability in the pcnfsd program (also
      known as rpc.pcnfsd). A patch is included.
 ______________________________________________________________________



 66..11..  SS��ccuurriitt�� dduu cclliieenntt

 Du c�t� client il y a quelques options de mount qui permettent de ne
 pas faire trop confiance au serveur. L'option nosuid interdit le
 d�marrage de programmes suid depuis le syst�me de fichiers NFS. C'est
 une option � utiliser syst�matiquement, car elle emp�che le root du
 serveur de cr�er un fichier suid sur le syst�me de fichiers NFS, puis
 de se loger dans le client en utilisateur et de lancer le programme
 suid pour devenir root sur le client. Il est aussi possible
 d'interdire l'ex�cution des fichiers du syst�me de fichiers NFS avec
 l'option noexec. Mais ceci est beaucoup moins utile que nosuid car le
 syst�me de fichiers contiendra tr�s probablement au moins _q_u_e_l_q_u_e_s
 scripts ou programmes � ex�cuter. Ces options se rentrent dans la
 colonne d'options, avec wsize et rsize, s�par�es par des virgules.



 66..22..  SS��ccuurriitt�� dduu sseerrvveeuurr :: nnffssdd

 Du c�t� serveur on peut ne pas faire confiance au root du client, avec
 l'option root_squash (rembarrage du root :-) dans le fichier exports :


 ______________________________________________________________________
 /mn/eris/local apollon(rw, root_squash)
 ______________________________________________________________________



 Dans ce cas, si un utilisateur du client avec l'UID 0 essaye d'acc�der
 (en lecture, �criture ou effacement) au syst�me de fichiers, le
 serveur remplace l'UID par celui de l'utilisateur `nobody' du serveur.
 Ceci signifie que l'utilisateur root du client ne peut
 acc�der/modifier les fichiers du serveur que seul le root du serveur
 peut acc�der/modifier. C'est bien, et vous aurez probablement �
 utiliser cette option sur tous les syst�mes de fichiers que vous
 exportez. J'en entends un qui me dit : ``Mais l'utilisateur root du
 client peut toujours utiliser 'su' pour devenir n'importe qui et
 acc�der � ses fichiers !'' Et l� je r�ponds : ``Oui, c'est comme �a,
 c'est Unix''. Ceci a une cons�quence importante : tous les fichiers et
 binaires importants devraient appartenir � root, et pas bin ou un
 compte autre que root, car le seul compte auquel le root du client ne
 peut pas acc�der est le compte root du serveur. Plusieurs autres
 options permettant de ne pas faire confiance � qui ne vous plait pas
 sont �num�r�es dans la page de manuel nfsd. Il y a aussi des options
 pour rembarrer (_t_o _s_q_u_a_s_h) des intervalles d'UID ou GID.

 Il est important aussi de s'assurer que nfsd v�rifie que toutes les
 requ�tes viennent d'un port privil�gi�. S'il accepte les requ�tes de
 n'importe quel port du client, un utilisateur quelconque peut ex�cuter
 un programme qu'il est facile de se procurer sur l'Internet. Il parle
 le protocole NFS et pourra pr�tendre �tre n'importe qui et �tre cru.
 �a fait peur hein ? Le nfsd Linux effectue cette v�rification par
 d�faut, sur d'autres syst�mes d'exploitation il faut la valider. �a
 devrait �tre d�crit dans les pages du manuel de ce syst�me.


 Autre chose. N'exportez jamais un syst�me de fichiers vers `localhost'
 ou 127.0.0.1.  Croyez-moi.



 66..33..  SS��ccuurriitt�� dduu sseerrvveeuurr :: llee ppoorrttmmaappppeerr

 Le portmapper de base, en combinaison avec nfsd pr�sente un probl�me
 de conception qui rend possible de r�cup�rer les fichiers d'un serveur
 NFS sans avoir aucun privil�ge. Heureusement le portmapper utilis� par
 la plupart des distributions Linux est relativement s�r vis � vis de
 cette attaque, et peut �tre s�curis� en configurant les listes d'acc�s
 au moyen de deux fichiers.


 Toutes les distributions de Linux ne sont pas �gales. Certaines
 apparemment � jour n'incluent _p_a_s un portmapper sur, m�me aujourd'hui,
 alors que le probl�me est connu depuis plusieurs ann�es. Au moins une
 distribution contient m�me la page de manuel pour un portmapper s�r
 alors que le portmapper effectivement install� n'est _p_a_s s�r. Pour
 d�terminer simplement si votre portmapper est le bon ou pas, lancez
 strings(1) et voyez s'il lit les fichiers appropri�s /etc/hosts.deny
 et /etc/hosts.allow. Si votre portmapper est /usr/sbin/portmap
 ex�cutez la commande strings /usr/sbin/portmap | grep hosts. Sur ma
 machine cela donne :


 ______________________________________________________________________
 /etc/hosts.allow
 /etc/hosts.deny
 @(#) hosts_ctl.c 1.4 94/12/28 17:42:27
 @(#) hosts_access.c 1.20 96/02/11 17:01:27
 ______________________________________________________________________



 Tout d'abord, �ditons /etc/hosts.deny. Il devrait contenir la ligne :


 ______________________________________________________________________
 portmap: ALL
 ______________________________________________________________________



 qui refusera l'acc�s � _q_u_i_c_o_n_q_u_e. Maintenant qu'il est ferm�, lancez
 rpcinfo -p pour v�rifier qu'il lit et se conforme au contenu du
 fichier. rpcinfo ne devrait rien renvoyer, ou peut �tre un message
 d'erreur. Il ne devrait _p_a_s y avoir besoin de relancer le portmapper.


 Fermer le portmapper � tous le monde est peut �tre un peu excessif,
 nous r�-ouvrons donc quelque peu l'acc�s en �ditant le fichier
 /etc/hosts.allow. Mais il faut d'abord savoir ce qu'on va y mettre. �
 la base, il devrait contenir les noms de toutes les machines qui
 doivent avoir acc�s � votre portmapper. Sur le syst�me Linux moyen  il
 y a tr�s peu de machines qui ont une bonne raison de demander cet
 acc�s. Le portmapper administre nfsd, mountd, ypbind/ypserv, pcnfsd et
 les services ``en r'' comme ruptime et rusers. Parmis ceux-ci, seuls
 nfsd, mountd, ypbind/ypserv et peut-�tre pcnfsd ont de l'importance.
 Toutes les machines qui ont besoin d'acc�der � ces services sur votre
 machine devraient y �tre autoris�es. Disons que votre machine est
 129.240.223.254 et que tout ce qui vit sur le sous r�seau
 129.240.223.0 doit pouvoir y acc�der (si ceci n'est pas clair pour
 vous, voyez le HOWTO r�seau). On �crit :


 ______________________________________________________________________
 portmap: 129.240.223.0/255.255.255.0
 ______________________________________________________________________



 dans hosts.allow. C'est l'adresse de r�seau que vous donnez aussi � la
 commande route et le masque de r�seau que vous donnez � ifconfig. Pour
 le p�rif�rique eth0 sur cette machine ifconfig devrait donner :


 ______________________________________________________________________
 ...
 eth0      Link encap:10Mbps Ethernet  HWaddr 00:60:8C:96:D5:56
           inet addr:129.240.223.254  Bcast:129.240.223.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:360315 errors:0 dropped:0 overruns:0
           TX packets:179274 errors:0 dropped:0 overruns:0
           Interrupt:10 Base address:0x320
 ...
 ______________________________________________________________________



 et netstat -rn devrait donner :


 ______________________________________________________________________
 Kernel routing table
 Destination     Gateway         Genmask         Flags Metric Ref Use    Iface
 ...
 129.240.223.0   0.0.0.0         255.255.255.0   U     0      0   174412 eth0
 ...
 ______________________________________________________________________



 (Adresse r�seau dans la premi�re colonne)

 Les fichiers hosts.deny et hosts.allow sont d�crits dans les pages de
 manuel de m�mes noms.

 IIMMPPOORRTTAANNTT : ne _r_i_e_n mettre d'autre que des adresses IP (num�riques)
 dans les lignes portmap de ces fichiers. Les _h_o_s_t _n_a_m_e _l_o_o_k_u_p
 (recherche d'adresse IP (num�rique) � partir de l'adresse
 alphanum�rique ex. ftp.lip6.fr donne 132.227.77.2) peuvent
 indirectement d�clencher une activit� portmap qui d�clenchera un _h_o_s_t
 _n_a_m_e _l_o_o_k_u_p qui d�clenchera...

 Ceci fait, votre serveur devrait �tre un peu plus solide. Le dernier
 probl�me (mais oui !) est que quelqu'un casse le compte root (ou boute
 MS-DOS) sur une machine de confiance et utilise ce privil�ge pour
 envoyer des requ�tes depuis un port s�r en se faisant passer pour
 n'importe quel utilisateur.




 66..44..  NNFFSS eett lleess ccoouuppeenntt--ffeeuu ((ffiirreewwaallllss))

 C'est une tr�s bonne id�e de bloquer les ports NFS et portmap dans
 votre routeur ou firewall. nfsd utilise le port 2049, que ce soit avec
 tcp ou udp. Le portmapper est au port 749 (tcp et udp) et mountd aux
 port 745 et 747 (tcp et udp). V�rifiez les ports avec la commande
 rpcinfo -p.

 Si au contraire vous voulez que NFS traverse un firewall, il existe
 des options sur les nfsd et mountd r�cents pour leur sp�cifier le port
 � utiliser. Vous pouvez donc choisir un port qui ne soit pas bloqu�
 par le firewall.




 66..55..  RR��ssuumm��

 Si vous configurez correctement votre installation portmapper/NFS avec
 hosts.allow/deny, root_squash, nosuid et les ports privil�gi�s, vous
 �vitez beaucoup des bogues connues de NFS et pouvez presque vous
 sentir en s�curit� au moins pour _�_a. Mais de toutes fa�ons : quand un
 intrus obtient l'acc�s � votre r�seau, il/elle peut faire appara�tre
 des commandes bizarres dans votre .forward ou lire votre mail quand
 /home ou /var/spool/mail sont export�s. Pour la m�me raison, vous ne
 devriez jamais acc�der � votre cl� priv�e PGP par NFS. Ou au moins
 vous devez savoir quel est le risque. Et maintenant vous savez un peu.

 NFS et le portmapper constituent un syst�me complexe et il n'est donc
 pas totalement exclu que de nouvelles bogues soient d�couvertes, soit
 dans la conception soit dans l'impl�mentation que nous utilisons. Il
 pourrait m�me y avoir des d�fauts de s�curit� connus, que quelqu'un
 utilise. Mais c'est la vie. Pour vous tenir au courant, vous devriez
 au moins lire les forums comp.os.linux.announce et
 comp.security.announce comme minimum absolu (en fran�ais, consultez
 fr.comp.os.linux.annonces).



 77..  ````CChheecckklliisstt'''' mmoouunntt

 Cette section est bas�e sur la _m_o_u_n_t _c_h_e_c_k_l_i_s_t (liste des probl�mes
 li�s � mount) de IBM Corp. Je les remercie de m'autoriser � l'utiliser
 dans ce HOWTO. Si vous avez un probl�me en montant un syst�me de
 fichiers NFS, consultez cette liste avant de poster votre probl�me sur
 les niouzes. Chaque point d�crit un type de probl�me et sa solution.


 1. Mount r�p�te RPC: Program not registered


    Le portmapper tourne ?

    SSoolluuttiioonn :: lancez-le.

    mountd tourne ?

    SSoolluuttiioonn :: lancez-le.

    nfsd tourne ?

    SSoolluuttiioonn :: lancez-le.

    /etc/hosts.deny emp�che le portmapper de r�pondre ?

    SSoolluuttiioonn :: vous pouvez enlever la r�gle en question dans hosts.deny
    ou en ajouter une dans hosts.allow de fa�on que le portmapper soit
    autoris� � vous parler.


 2. Syst�me de fichier non export�, ou non export� au client en
    question.


    SSoolluuttiioonn :: exportez le [Ndt : merci IBM !]


 3. La r�solution de noms ne s'accorde pas avec la liste des exports.


    e.g.: la liste des exports dit d'exporter vers johnmad mais le nom
    de johnmad est r�solu en johnmad.austin.ibm.com. La permission de
    monter est refus�e.


    SSoolluuttiioonn :: exportez vers les deux formes du nom.


    Cela peut aussi arriver si le serveur a deux interfaces avec des
    noms diff�rents et que les exports n'en sp�cifient qu'un.


    SSoolluuttiioonn :: exportez les deux interfaces.


    Cela peut aussi se produire si le serveur ne peut pas faire un
    lookuphostbyname ou lookuphostbyaddr (ce sont des fonctions de
    biblioth�que) sur le client. Assurez-vous que le client peut faire
    host <name>; host <ip_addr>; et que les deux donnent la m�me
    machine.


    SSoolluuttiioonn :: mettez de l'ordre dans la r�solution de noms.


 4. Le syst�me de fichiers a �t� mont� apr�s que NFS soit lanc� (sur ce
    serveur). Dans ce cas le serveur exporte le point de montage sous-
    jacent, pas le syst�me de fichiers.


    SSoolluuttiioonn :: �teignez nfsd et relancez le.


    NNoottee :: les clients qui avaient mont� le point de montage sous-
    jacent auront des probl�mes pour y acc�der apr�s le red�marrage.



 5. La date est tr�s d�cal�e sur une ou sur les deux machines (cela
    peut mettre la pagaille pour make)


    SSoolluuttiioonn :: r�glez correctement la date.


    L'auteur du HOWTO recommande d'utiliser NTP pour synchroniser les
    horloges. Vu qu'il y a des restrictions � l'exportation (au sens
    commercial !) de NTP aux �.U., vous devez vous procurer NTP pour
    Debian, Redhat ou Slakware depuis
    ftp://ftp.hacktic.nl/pub/replay/pub/linux ou un miroir.


 6. Le serveur ne peut pas utiliser un mount d'un utilisateur qui est
    dans plus de 8 groupes.

    SSoolluuttiioonn :: diminuez le nombre de groupes auxquels l'utilisateur
    appartient ou montez depuis un autre utilisateur.


 88..  FFAAQQ

 Voici la section FAQ. Elle est en partie bas�e sur une vieille FAQ NFS
 �crite par Alan Cox.

 Si vous avez un probl�me pour monter un syst�me de fichier, voyez si
 votre probl�me est d�crit dans la section ``Checklist mount''.


 1. J'obtiens un tas d'erreurs ``stale nfs handle'' quand j'utilise
    Linux comme serveur NFS.


    Cela est d� � une bogue dans quelques vieilles versions de nfsd.
    Elle est corrig�e � partir de nfs-server2.2beta16.


 2. Quand j'essaye de monter le syst�me de fichiers j'obtiens



          can't register with portmap: system error on send







 Vous utilisez probablement un syst�me Caldera. Il y a une bogue dans
 les scripts rc. Contactez Caldera pour obtenir la solution.


 3. Pourquoi ne puis-je pas ex�cuter un fichier apr�s l'avoir copi� sur
    le serveur NFS ?


    La raison est que nfsd cache les manipulations de fichiers pour des
    raisons de performances (rappelons qu'il fonctionne dans l'espace
    utilisateur). Ainsi, apr�s une �criture le fichier peut ne pas �tre
    ferm� tout de suite, et tant qu'il est ouvert le noyau ne vous
    autorisera pas � l'ex�cuter. Les nfsd plus r�cents que le printemps
    95 [Ndt : hum...] ferment les fichiers ouverts apr�s quelques
    secondes, les plus vieux pouvaient ne pas les rel�cher avant
    plusieurs jours...


 4. Mes fichiers NFS sont tous en lecture seule.


    Le serveur NFS Linux est par d�faut en lecture seule. Voyez les
    sections ``Mountd et nfsd'' et ``Exporter des syst�mes de fichier''
    dans ce HOWTO et r�f�rez vous aux pages de manuel ``exports'' et
    ``nfsd''. Vous devrez modifier /etc/exports.


 5. Je monte depuis un serveur NFS Linux, ls marche et pourtant je ne
    peux pas lire ou �crire de fichiers.


    Sur les anciennes versions de Linux il faut monter un serveur NFS
    avec rsize=1024, wsize=1024.


 6. Je monte depuis un serveur NFS Linux avec une taille de bloc
    comprise entre 3500 et 4000 et Linux crashe r�guli�rement.


    Bah alors ne le faites pas. Cela ne se produit pas avec les noyaux
    2.0 et 2.2 ni, autant que je sache avec les 1.2.


 7. Est-ce que Linux peut utiliser NFS sur TCP ?


    Non, pas pour le moment.


 8. J'ai des tonnes d'erreurs bizarres en essayant de monter depuis un
    serveur Linux.


    Assurez-vous que vos utilisateurs sont dans 8 groupes au maximum.
    C'est une limitation des vieux serveurs.


 9. Quand je red�marre ma machine elle se bloque parfois en essayant de
    d�monter un serveur NFS bloqu� (_h_u_n_g).


    Ne d�montez ppaass les serveurs NFS en red�marrant ou arr�tant la
    machine, �a ne cr�era pas de probl�mes si vous ne le faites pas. La
    commande est umount -avt nonfs.


 10.
    Les clients NFS Linux sont tr�s lents quand ils �crivent sur des
    syst�mes Sun ou BSD.


    Normalement les �critures NFS sont synchrones (vous pouvez le
    d�sactiver si vous ne craignez pas de perdre des donn�es). Les
    noyaux d�riv�s de BSD ont tendance � ne pas savoir travailler avec
    des petits blocs. Ainsi quand vous �crivez 4K de donn�es depuis un
    client Linux dans des paquets de 1K, BSD fait ceci :



                      lit une page de 4K
                      traite 1K
                      �crit 4K sur le disque
                      lit une page de 4K
                      traite 1K
                      �crit 4K sur le disque
                      ...






 11.
    Quand je connecte de nombreux clients � un serveur NFS Linux, la
    performance diminue soudainement.


    Le protocole NFS utilise les paquets UDP fragment�s. Le noyau ne
    conserve qu'un nombre limit� de fragments de paquets incomplets
    avant de commencer � jeter des paquets. En 2.2, ce param�tre est
    r�glable � l'ex�cution au moyen du syst�me de fichier /proc :
    /proc/sys/net/ipv4/ipfrag_high_tresh et ipfrag_low_tresh. En 2.0 ce
    sont des constantes d�finies � la compilation dans
    .../linux/net/ipv4/ip_fragment.c, IPFRAG_HIGH_TRESH et
    IPFRAG_LOW_THRESH. La signification des ces valeurs est que quand
    la m�moire consomm�e par les fragments UDP non r�assembl�s atteint
    ``ipfrag_high_thresh'' (en octets, 256K par d�faut en 2.2.3 et
    2.0.36) elle est ramen�e � ``ipfrag_low_tresh'' d'un coup, en
    jetant des fragments. Ainsi, si la borne sup�rieure (high_tresh)
    est atteinte, la performance de votre serveur diminue
    drastiquement.

    256K est suffisant pour 30 clients. Si vous en avez 60, doublez la
    valeur. Et doublez aussi la borne inf�rieure (low_tresh).


 12.
    J'utilise Linux 2.2 (ou suivant) avec knfsd et ma machine AIX,
    IRIX, Solaris, DEC-Unix, ... n'arrive pas � monter de volume.


    knfsd annonce qu'il impl�mente NFS version 3, alors que ce n'est
    pas vrai. Utilisez l'option qui permet de stopper ces annonces, ou
    mettez "vers=2" dans la liste d'options de montage de votre client.


 13.
    Ma machine AIX 4 n'arrive pas � monter depuis mon serveur NFS
    Linux. Elle dit quelque chose du genre :



              mount: 1831-011 access denied for server:/dir
              mount: 1831-008 giving up on:
              server:/dir
              The file access permissions do not allow the specified action.







 AIX 4.2 utilise des ports r�serv�s (<1024) pour NFS. AIX 4.2.1 et 4.3
 peuvent utiliser d'autres ports, et essaient de monter par NFS3,
 NFS/TCP et finalement NFS/UDP.


 Ajouter


 ______________________________________________________________________
 nfso -o nfs_use_reserved_ports=1
 ______________________________________________________________________




 � la fin de rc.tcpip la forcera � utiliser les ports r�serv�s (truc
 fourni par Brian Gorka).





 99..  EExxppoorrtteerr uunn ssyysstt��mmee ddee ffiicchhiieerrss

 Bien sur, la fa�on d'exporter les syst�mes de fichiers par NFS n'est
 pas toujours la m�me sur toutes les plate-formes. Linux et Solaris 2
 sont les plus d�viants. Cette section liste de mani�re superficielle
 la fa�on de proc�der sur la plupart des syst�mes. Si votre syst�me
 n'est pas trait� ici, cherchez dans vos pages de manuel. Les mot-cl�s
 sont : nfsd, system administration tool, rc scripts, boot scripts,
 boot sequence, /etc/exports, exportfs. J'utiliserai le m�me exemple
 tout au long de cette section : comment exporter /mn/eris/local vers
 apollon en lecture/�criture.


 99..11..  IIRRIIXX,, HHPP--UUXX,, DDiiggiittaall--UUNNIIXX,, UUllttrriixx,, SSuunnOOSS 44 ((SSoollaarriiss 11)),, AAIIXX

 Ces syst�mes utilisent le format export traditionnel de Sun. Dans
 /etc/exports, �crivez :


 ______________________________________________________________________
 /mn/eris/local -rw=apollon
 ______________________________________________________________________



 La documentation compl�te se trouve dans la page de manuel exports.
 Apr�s avoir �dit� le fichier, lancez exportfs -av pour exporter les
 syst�mes de fichiers.


 La rigueur de la syntaxe demand�e par exportfs varie. Sur certains
 syst�mes vous verrez que la ligne pr�c�dente peut �tre :


 ______________________________________________________________________
 /mn/eris/local apollon
 ______________________________________________________________________



 ou m�me quelque chose de d�g�n�r� comme :


 ______________________________________________________________________
 /mn/eris/local rw=apollon
 ______________________________________________________________________



 Je recommande d'utiliser la syntaxe stricte. Il se peut que la
 prochaine version de exportfs soit plus exigeante vis � vis de la
 syntaxe et ne fonctionne plus.


 99..22..  SSoollaarriiss 22

 Sun ont compl�tement r�invent� la roue quand ils ont fait Solaris 2,
 et donc c'est compl�tement diff�rent des autres syst�mes. Il faut
 �diter le fichier /etc/dfs/dfstab et y placer les commandes de partage
 (_s_h_a_r_e) document�es dans la page de manuel share(1M), comme ceci :


 ______________________________________________________________________
 share -o rw=apollon -d "Eris Local" /mn/eris/local
 ______________________________________________________________________



 Lancez ensuite le programme shareall pour exporter les syst�mes de
 fichiers.



 1100..  NNFFSS ssoouuss LLiinnuuxx 22..22

 Au moment o� j'�cris, la version courante du noyau est 2.2.12 et
 utiliser NFS peut �tre assez p�nible. Ou pas. J'ignore ce qu'il en
 sera pour Linux 2.4.

 La grosse nouveaut� dans Linux 2.2 c'est le support d'un serveur nfs
 dans le noyau, appel� knfsd 2.2. Ce type d'impl�mentation a des
 avantages, principalement la rapidit�, une machine Linux 2.2 avec
 knfsd est un serveur NFS respectable. Vous pouvez cependant toujours
 utiliser l'ancien nfsd avec Linux 2.2, et cela pr�sente quelques
 avantages aussi, dont la simplicit�.

 Si vous utilisez un paquetage noyau source ou binaire fabriqu� par
 quelqu'un comme RedHat (6.0 et suivantes), SuSE (6.1 et suivantes il
 me semble) ou un autre int�grateur de syst�me professionnel ils auront
 probablement int�gr� compl�tement ``knfsd'' et vous n'avez pas de
 soucis � vous faire, cela marchera. Pour l'essentiel. Jusqu'� ce que
 vous vouliez compiler un noyau vous m�me. Si vous utilisez un noyau
 2.2 standard (au moins jusqu'� 2.2.12) knfsd ne fonctionnera pas.

 Pour le faire fonctionner vous m�me il vous faut le paquetage knfsd de
 H.J. Lu. C'est un ensemble de patchs avec les utilitaires requis pour
 2.2 que Lu maintient b�n�volement. R�cup�rez le depuis votre miroir de
 noyau local, le site ma�tre est ftp.kernel.org:/pub/linux/devel/gcc/.
 CCee nn''eesstt ppaass ddeessttiinn�� aauu ggrraanndd ppuubblliicc. Si vous trouvez que c'est trop
 compliqu�, n'insistez pas et attentez qu'un paquetage noyau soit
 disponible aupr�s de votre int�grateur (Redhat, SuSE...).

 Ne m'envoyez pas de question � ce sujet, je ne peux pas vous aider, je
 n'ai aucun serveur bas� sur knfsd qui tourne. Si vous trouvez des
 erreurs ou omissions dans la documentation, �crivez-moi et je
 corrigerai ce HOWTO.

 Toujours l� ? Ok. H.J. Lu annonce les nouvelles versions de son
 paquetage sur la liste de diffusion linux-kernel, o� il passe d'autres
 choses li�es � NFS dans Linux 2.2. Lisez-la.



 1100..11..  LLee cclliieenntt

 Le client est presque simple. Afin que les verrous (_l_o_c_k_s) marchent
 correctement il faut que statd (du paquetage knfsd) soit compil�,
 install� et lanc� depuis vos scripts de d�marrage. Statd a besoin d'un
 r�pertoire appel� /var/lib/nfs qu'il vous faudra cr�er avant de le
 lancer (sans quoi il se termine imm�diatement sans message d'erreur).

 Une fois que statd tourne vous pouvez utiliser le programme testlk
 (dans tools/locktest) pour tester si un verrou sur un fichier d'un
 volume mont� par NFS fonctionne. �a devrait. S'il affiche _N_o _l_o_c_k_s
 _a_v_a_i_l_a_b_l_e, statd ne fonctionne pas.

 En fait, vous pouvez aussi vous passer des verrous (ce que je ne
 recommande pas) en mettant "nolock" dans la liste des options de
 montage.

 Autant que je sache, c'est tout ce qu'il faut pour faire fonctionner
 correctement le client.

 Ah, si vous avez un serveur NFS Alpha ou Sparc vous verrez que le
 client nfs de Linux 2.2 est vraiment de la merde. Les d�bits sont
 extr�mement faibles, bien pire qu'avec Linux 2.0. Bien sur on peut
 corriger le probl�me. Les noyaux 2.2 d'Alan Cox (un petit peu plus
 exp�rimentaux que ceux de Linus) incluent un patch pour am�liorer la
 performance du client 2.2 avec un serveur Alpha ou Sparc. Si vous
 voulez utiliser les noyaux d'Alan Cox, vous devriez lire la liste de
 diffusion linux-kernel, et si c'est le cas vous savez o� les trouver.
 Le site de r�f�rence est  <http://www.uio.no/~trondmy/src/>, au cas o�
 vous voudriez essayer de l'appliquer � un noyau 2.2 standard. Ce patch
 ne sera probablement pas int�gr� dans Linux 2.4, car il demande trop
 de changements dans le noyau pour �tre accept� dans le cycle de
 d�veloppement actuel. Attendez Linux 2.5.

 trondmy propose des patchs pour utiliser NFS version 3 avec Linux, et
 qui permettent aussi d'utiliser TCP comme m�canisme de transport au
 lieu d'UDP. NFSv3 est tr�s bien pour des r�seaux grande distance ou
 avec des taux de pertes non nuls, ou des temps de latence �lev�s.

 Si vous utilisez ces patchs, il vous faut lire linux-kernel, car de
 sales bugs, qui mangent vos fichiers, sont parfois d�couverts. Alors
 ssooyyeezz pprruuddeenntt.


 1100..22..  LLee sseerrvveeuurr

 Le serveur NFS de Linux 2.2 et suivants est appel� "knfsd". Il est
 difficile � configurer. Il faudra vous d�brouiller tout seul ou
 utiliser ce que SuSE, RedHat et autres fournissent dans leurs
 paquetages 2.2. D�sol�, mais vous pouvez toujours utiliser l'ancien
 nfsd. Il est lent mais facile � installer.



 1111..  SSeerrvveeuurr NNFFSS ssuurr uunnee ddiissqquueettttee

 Cette section a �t� �crite par Ron Peters, [email protected]. Elle
 explique comment installer un serveur NFS en d�marrant depuis une
 disquette. L'objectif initial �tait de partager par NFS un c�d�rom
 d'une autre machine pour installer Linux sur une machine sans lecteur
 de c�d�rom.



 1111..11..  IInnttrroodduuccttiioonn

 Ce document a pour but d'aider ceux qui auront le m�me probl�me que
 moi r�cemment. J'installais un serveur Linux sur une machine sans
 lecteur de c�d�rom et sans moyen d'en installer un, � part peut �tre
 un SCSI externe. Ce genre de situations sera sans doute de plus en
 plus rare et ce document perdra donc de son int�r�t, mais j'aurais
 bien aim� l'avoir quand j'essayais d'installer ma machine.

 Vu que la machine n'avait pas de lecteur de c�d�rom, j'ai pens�
 installer un serveur NFS pour Win95 afin de partager le lecteur de
 c�d�rom juste le temps d'installer ma machine et de la mettre sur le
 r�seau. Je n'ai trouv� que deux produits (je ne citerai pas les noms
 mais l'un est un freeware et l'autre avait une licence limit�e � 14
 jours), l'un ne marcha pas ``cl�s en main'' et l'autre n'�tait pas
 capable de g�rer les conventions de nommage Linux suffisamment bien
 pour mener � bien l'installation.

 J'ai donc d�cid� d'essayer de red�marrer ma machine Win95 sous Linux
 avec les disquettes boot/root et d'utiliser une disquette
 suppl�mentaire pour installer un serveur NFS.

 Cela a �t� remarquablement simple, la proc�dure est en fait
 probablement plus simple que de lire cette introduction. Cependant, je
 pense qu'il est int�ressant de rassembler les information n�cessaires
 dans ce document.


 1111..22..  AAtttteenntteess

 J'ai utilis� les disquettes boot/root fournies dans une des
 distributions de Slakware (InfoMagic developpers distributions). Le
 noyau utilis� sur les disquettes �tait un 2.0.34, et les programmes du
 serveur NFS venaient d'un serveur pour 2.0.30. J'ai toujours utilis�
 la m�thode d'installation Slakware, non pas qu'elle soit plus facile
 ou meilleure ou pire, mais simplement qu'elle m'est famili�re et que
 je n'ai jamais pris le temps d'apprendre � en utiliser une autre.

 Je ne pense pas qu'il puisse y avoir beaucoup de probl�mes li�s � la
 version du syst�me. Je recommanderais simplement d'utiliser un syst�me
 relativement r�cent, ce qui devrait �tre le cas si vous utilisez les
 disquettes boot/root de la distribution � installer.


 1111..33..  MMaatt��rriieell nn��cceessssaaiirree


 �  Une machine et une disquette de boot supportant le r�seau. La
    machine devant jouer le r�le du serveur NFS doit avoir une carte
    r�seau reconnue pendant le d�marrage. Pour plus d'informations,
    voir le HOWTO sur le r�seau (NET4-HOWTO).

 �  Une deuxi�me disquette contenant rpc.portmap, rpc.mountd et
    rpc.nfsd. Vous pouvez trouver facilement ces fichiers par un
    ftpsearch sur le ou�be.

 �  Un cd (par exemple) Slakware (ou autre).


 1111..44..  CCoonnffiigguurraattiioonn dduu sseerrvveeuurr



 1111..44..11..  DD��mmaarrrreerr llee sseerrvveeuurr NNFFSS tteemmppoorraaiirree

 D�marrez la machine qui sera serveur NFS depuis la disquette de
 d�marrage et assurez-vous que la carte r�seau est reconnue, de m�me
 que le lecteur de c�d�rom. Dans la suite je suppose que la carte
 r�seau en question est eth0.


 1111..44..22..  MMoonntteerr llaa ddiissqquueettttee eett llee cc��dd��rroomm

 Une fois que le syst�me est d�marr�, vous n'avez plus besoin des
 disquette boot/root, le syst�me �tant compl�tement install� en disque
 m�moire. Remplacez la disquette root par la disquette suppl�mentaire,
 et montez la :

 mount /dev/fd0 /floppy

 Ceci fonctionne pour une disquette avec un syst�me de fichiers ext2.
 J'imagine que la disquette pourrait utiliser un syst�me de fichiers
 MSDOS mais je n'ai pas essay�. Je suppose que cela serait plus simple
 que de faire une image disque. Dans ce cas, il faudrait utiliser mount
 -t msdos ...etc.

 Montez le c�d�rom :

 mount -t iso9660 /dev/hdc /cdrom

 J'ai utilis� les p�riph�riques disquette et c�d�rom, on peut en
 utiliser d'autres selon ce que l'on veut faire. Les points de montage
 /floppy et /cdrom doivent exister sur l'image de la disquette root. Si
 ce n'est pas le cas, cr�ez-les, ou bien vous pouvez utiliser n'importe
 quels autres points de montage.





 1111..44..33..  CCoonnffiigguurreerr llee rr��sseeaauu ssuurr llee sseerrvveeuurr pprroovviissooiirree

 Il faut maintenant configurer le serveur NFS et le r�seau. Il n'y a
 que quelques commandes � lancer, et quelques informations qu'il vous
 faudra rassembler auparavant (je donne ici des valeurs d'exemple) :


 IPADDR:172.16.5.100    #L'adresse du serveur temporaire.

 NETMASK:255.255.255.0  #Le masque de r�seau (netmask).

 BROADCAST:172.16.5.255 #L'adresse de diffusion sur le r�seau

 ETHNETWORK:172.16.5.0  #L'adresse r�seau

 GATEWAY:172.16.5.251 #N�cessaire seulement si vous avez une
 passerelle. Si c'est le cas, vous le savez. La plupart des r�seau ``�
 la maison'' n'en ont pas.


 Les commandes pour se connecter au r�seau (utiliser les valeurs
 donn�es ci-dessus) :


 ifconfig eth0 inet IPADDR arp netmask NETMASK broadcast BROADCAST

 route add -net ETHNETWORK netmask NETMASK eth0

 Celle-ci uniquement si vous avez une passerelle et que vous devrez la
 traverser :

 route add default gw GATEWAY netmask 0.0.0.0 eth0


 Si tout va bien, vous �tes maintenant sur le r�seau et devriez pouvoir
 faire des ping sur les autres machines.


 1111..44..44..  CCoonnffiigguurreerr llee vvoolluummee NNFFSS

 Choisissez le r�pertoire � partager. Dans mon exemple, c'�tait
 /cdrom/slakware. Placez-le dans le fichier /etc/exports :

 echo "/cdrom/slakware" > /etc/exports




 1111..55..  LLaanncceerr llee sseerrvveeuurr NNFFSS

 Allez dans /floppy/usr/bin et lancez :

 ./rpc.portmap

 ./rpc.mountd

 ./rpc.nfsd



 1111..55..11..  PPrr��tt,, ccoommmmeenncceezz ll''iinnssttaallllaattiioonn

 Normalement, le r�pertoire /cdrom/slakware est maintenant partageable.
 D�marrez votre machine (celle � installer) depuis les disquettes
 boot/root (j'ai utilis� les m�mes qui ont servi � d�marrer le serveur)
 et commencez l'installation.
 Quand il faut choisir le m�dia source � utiliser, choisissez ``serveur
 NFS''. Il vous demandera l'adresse IP du serveur, qui est celle que
 vous avez appel� IPADDR pour le serveur. Il vous faut aussi donner le
 r�pertoire � monter, qui est celui que vous avez indiqu� dans le
 fichier /etc/exports du serveur.

 Le volume NFS devrait maintenant �tre mont�, surveillez l'apparition
 de messages d'erreur. Si tout va bien, continuez l'installation.


 1111..66..  PPrroobbll��mmeess



 1111..66..11..  RRiieenn iiccii ppoouurr ll''iinnssttaanntt

 Je n'ai rien � dire � ce sujet pour le moment. Peut �tre si des gens
 utilisent cette proc�dure, on aura des choses � ajouter.


 1111..77..  �� ffaaiirree



 1111..77..11..  DDiissqquueettttee DDOOSS

 Voir si la disquette suppl�mentaire peut �tre au format DOS.


 1111..77..22..  CCoommmmaannddeess RRPPCC

 V�rifiez l'ordre dans lequel lancer les commandes rpc.* et si toutes
 sont n�cessaires.



 1122..  PPCC--NNFFSS

 Vous ne voulez pas utiliser PC-NFS, mais plut�t samba.

 Samba est bien meilleur que PC-NFS, il fonctionne avec ``Windows3 for
 Workgroups'' et les versions suivantes de Windows. Il est plus rapide
 et plus sur. Utilisez plut�t samba.